diff --git a/.gitignore b/.gitignore index e05acefd2..f7b512ec5 100644 --- a/.gitignore +++ b/.gitignore @@ -21,4 +21,6 @@ src/main/antlr4/.antlr *.so examplesold/ src/test/scala/dump/ -src/test/analysis/dump/ \ No newline at end of file +src/test/analysis/dump/ +*.gtirb +*.json \ No newline at end of file diff --git a/build.sbt b/build.sbt index ed7059c4a..34e8b69bf 100644 --- a/build.sbt +++ b/build.sbt @@ -25,11 +25,20 @@ lazy val root = project libraryDependencies += scalactic, libraryDependencies += scalaTests, libraryDependencies += sourceCode, - libraryDependencies += mainArgs + libraryDependencies += mainArgs, + libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test ) scalacOptions ++= Seq("-deprecation", "-feature") +Compile / PB.targets := Seq( + scalapb.gen() -> (Compile / sourceManaged).value / "scalapb" +) +libraryDependencies ++= Seq( + "com.thesamet.scalapb" %% "scalapb-runtime" % scalapb.compiler.Version.scalapbVersion % "protobuf" +) +libraryDependencies += "io.spray" %% "spray-json" % "1.3.6" + lazy val updateExpected = taskKey[Unit]("updates .expected for test cases") updateExpected := { diff --git a/examples/clz/clz.adt b/examples/clz/clz.adt new file mode 100644 index 000000000..ee42cee65 --- /dev/null +++ b/examples/clz/clz.adt @@ -0,0 +1,951 @@ +Project(Attrs([Attr("filename","/tmp/tmp9yusjqlu/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 1840 20 1840)\n(code-region 1536 304 1536)\n(code-region 1440 96 1440)\n(code-region 1416 24 1416)\n(code-start 1588)\n(code-start 1536)\n(code-start 1812)\n(entry-point 1536)\n(external-reference 131032 _ITM_deregisterTMCloneTable)\n(external-reference 131040 __cxa_finalize)\n(external-reference 131048 __gmon_start__)\n(external-reference 131064 _ITM_registerTMCloneTable)\n(external-reference 130992 __libc_start_main)\n(external-reference 131000 __cxa_finalize)\n(external-reference 131008 __gmon_start__)\n(external-reference 131016 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 1416 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 1416 24)\n(llvm:elf-program-header 08 64904 632)\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 64920 512)\n(llvm:elf-program-header 03 64904 648)\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 130440 632)\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 130456 512)\n(llvm:elf-virtual-program-header 03 130440 656)\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 131016 abort)\n(llvm:name-reference 131008 __gmon_start__)\n(llvm:name-reference 131000 __cxa_finalize)\n(llvm:name-reference 130992 __libc_start_main)\n(llvm:name-reference 131064 _ITM_registerTMCloneTable)\n(llvm:name-reference 131048 __gmon_start__)\n(llvm:name-reference 131040 __cxa_finalize)\n(llvm:name-reference 131032 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 330 68991)\n(llvm:section-entry .strtab 0 543 68448)\n(llvm:section-entry .symtab 0 2208 66240)\n(llvm:section-entry .debug_line_str 0 120 66120)\n(llvm:section-entry .debug_str 0 162 65958)\n(llvm:section-entry .debug_line 0 83 65875)\n(llvm:section-entry .debug_abbrev 0 100 65775)\n(llvm:section-entry .debug_info 0 132 65643)\n(llvm:section-entry .debug_aranges 0 48 65595)\n(llvm:section-entry .comment 0 43 65552)\n(llvm:section-entry .bss 131088 8 65552)\n(llvm:section-entry .data 131072 16 65536)\n(llvm:section-entry .got 130968 104 65432)\n(llvm:section-entry .dynamic 130456 512 64920)\n(llvm:section-entry .fini_array 130448 8 64912)\n(llvm:section-entry .init_array 130440 8 64904)\n(llvm:section-entry .eh_frame 1928 164 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 1416 24 1416)\n(llvm:section-entry .rela.plt 1320 96 1320)\n(llvm:section-entry .rela.dyn 1128 192 1128)\n(llvm:section-entry .gnu.version_r 1080 48 1080)\n(llvm:section-entry .gnu.version 1060 18 1060)\n(llvm:section-entry .dynstr 912 147 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 .debug_line_str true false false)\n(llvm:section-flags .debug_str true false false)\n(llvm:section-flags .debug_line true false false)\n(llvm:section-flags .debug_abbrev true false false)\n(llvm:section-flags .debug_info true false false)\n(llvm:section-flags .debug_aranges 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 1416 0 1416 1416)\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 2092 0)\n(mapped 130440 648 64904)\n(named-region 0 2092 02)\n(named-region 130440 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 147 .dynstr)\n(named-region 1060 18 .gnu.version)\n(named-region 1080 48 .gnu.version_r)\n(named-region 1128 192 .rela.dyn)\n(named-region 1320 96 .rela.plt)\n(named-region 1416 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 164 .eh_frame)\n(named-region 130440 8 .init_array)\n(named-region 130448 8 .fini_array)\n(named-region 130456 512 .dynamic)\n(named-region 130968 104 .got)\n(named-region 131072 16 .data)\n(named-region 131088 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 48 .debug_aranges)\n(named-region 0 132 .debug_info)\n(named-region 0 100 .debug_abbrev)\n(named-region 0 83 .debug_line)\n(named-region 0 162 .debug_str)\n(named-region 0 120 .debug_line_str)\n(named-region 0 2208 .symtab)\n(named-region 0 543 .strtab)\n(named-region 0 330 .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 1416 _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 147)\n(section 1060 18)\n(section 1080 48)\n(section 1128 192)\n(section 1320 96)\n(section 1416 24)\n(section 1440 96)\n(section 1536 304)\n(section 1840 20)\n(section 1860 4)\n(section 1864 60)\n(section 1928 164)\n(section 130440 8)\n(section 130448 8)\n(section 130456 512)\n(section 130968 104)\n(section 131072 16)\n(section 131088 8)\n(section 0 43)\n(section 0 48)\n(section 0 132)\n(section 0 100)\n(section 0 83)\n(section 0 162)\n(section 0 120)\n(section 0 2208)\n(section 0 543)\n(section 0 330)\n(segment 0 2092 true false true)\n(segment 130440 656 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 1416 1416)\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\xd0\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x22\x00\x21\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\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\x88\xfd\x00\x00\x00\x00\x00\x00\x88\xfd\x01\x00\x00\x00\x00\x00\x88\xfd\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\xfd\x00\x00\x00\x00\x00\x00\x98\xfd\x01\x00\x00\x00\x00\x00\x98\xfd\x01\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x02"), +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\xd0\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x22\x00\x21\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\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\x88\xfd\x00\x00\x00\x00\x00\x00\x88\xfd\x01\x00\x00\x00\x00\x00\x88\xfd\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\xfd\x00\x00\x00\x00\x00\x00\x98\xfd\x01\x00\x00\x00\x00\x00\x98\xfd\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\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\x88\xfd\x00\x00\x00\x00\x00\x00\x88\xfd\x01\x00\x00\x00\x00\x00\x88\xfd\x01\x00\x00\x00\x00"), +Section(".debug_line_str", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x22\x00\x21\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00"), +Section(".debug_str", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x22\x00\x21\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00"), +Section(".debug_line", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x22\x00\x21\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00"), +Section(".debug_abbrev", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x22\x00\x21\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00"), +Section(".debug_info", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x0e\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x22\x00\x21\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00"), +Section(".debug_aranges", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd0\x0e\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\xd0\x0e\x01"), +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\x58\xdf\x8b\x42\xdf\xbd\x96\xdc\x76\xee\x6e\xfd\xb2\xaa\x60\xf8\x0f\x8e\xa0\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\x88\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\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\x4e\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\x6a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\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\x2e\x2f\x6c\x69\x62\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\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", 0x424, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), +Section(".gnu.version_r", 0x438, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\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", 0x468, "\x88\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x07\x00\x00\x00\x00\x00\x00\x90\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x06\x00\x00\x00\x00\x00\x00\xf0\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x07\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\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", 0x528, "\xb0\xff\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xff\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), +Section(".init", 0x588, "\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", 0x5A0, "\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xf0\x00\x00\xf0\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\xf0\x00\x00\xf0\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\xf0\x00\x00\xf0\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\xf0\x00\x00\xf0\x11\xe6\x47\xf9\x10\x22\x3f\x91\x20\x02\x1f\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\x14\x00\x00\x00\x8c\x00\x00\x00\xfc\xfe\xff\xff\x1c\x00\x00\x00\x00\x41\x0e\x10\x45\x0e\x00\x00\x00\x00\x00\x00"), +Section(".fini_array", 0x1FD90, "\xc0\x06\x00\x00\x00\x00\x00\x00"), +Section(".dynamic", 0x1FD98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x88\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\x88\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\x90\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\x93\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\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\x28\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x68\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\x38\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\x24\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", 0x1FF98, "\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\x98\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\x14\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), +Section(".data", 0x20000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00"), +Section(".init_array", 0x1FD88, "\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\xe0\x00\x00\xf0\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\xe0\x00\x00\xf0\x00\xf4\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\x40\x00\x91\x01\x01\x00\x90\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\x40\x00\x91\x01\x01\x00\x90\x21\x40\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\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\x13\x01\x00\x90\x60\x42\x40\x39\x40\x01\x00\x35\xe0\x00\x00\xf0\x00\xf0\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\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\xe1\x03\x00\xf9\xe0\x0f\x40\xb9\x00\x10\xc0\x5a\xff\x43\x00\x91\xc0\x03\x5f\xd6")]), +Memmap([Annotation(Region(0x0,0x82B), Attr("segment","02 0 2092")), +Annotation(Region(0x600,0x633), Attr("symbol","_start")), +Annotation(Region(0x0,0x149), Attr("section",".shstrtab")), +Annotation(Region(0x0,0x21E), Attr("section",".strtab")), +Annotation(Region(0x0,0x77), Attr("section",".debug_line_str")), +Annotation(Region(0x0,0xA1), Attr("section",".debug_str")), +Annotation(Region(0x0,0x52), Attr("section",".debug_line")), +Annotation(Region(0x0,0x63), Attr("section",".debug_abbrev")), +Annotation(Region(0x0,0x83), Attr("section",".debug_info")), +Annotation(Region(0x0,0x2F), Attr("section",".debug_aranges")), +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,0x422), Attr("section",".dynstr")), +Annotation(Region(0x424,0x435), Attr("section",".gnu.version")), +Annotation(Region(0x438,0x467), Attr("section",".gnu.version_r")), +Annotation(Region(0x468,0x527), Attr("section",".rela.dyn")), +Annotation(Region(0x528,0x587), Attr("section",".rela.plt")), +Annotation(Region(0x588,0x59F), Attr("section",".init")), +Annotation(Region(0x5A0,0x5FF), Attr("section",".plt")), +Annotation(Region(0x588,0x59F), 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,0x72F), Attr("symbol","main")), +Annotation(Region(0x714,0x72F), Attr("symbol-info","main 0x714 28")), +Annotation(Region(0x730,0x743), Attr("section",".fini")), +Annotation(Region(0x744,0x747), Attr("section",".rodata")), +Annotation(Region(0x748,0x783), Attr("section",".eh_frame_hdr")), +Annotation(Region(0x788,0x82B), Attr("section",".eh_frame")), +Annotation(Region(0x1FD88,0x2000F), Attr("segment","03 0x1FD88 656")), +Annotation(Region(0x1FD90,0x1FD97), Attr("section",".fini_array")), +Annotation(Region(0x1FD98,0x1FF97), Attr("section",".dynamic")), +Annotation(Region(0x1FF98,0x1FFFF), Attr("section",".got")), +Annotation(Region(0x20000,0x2000F), Attr("section",".data")), +Annotation(Region(0x1FD88,0x1FD8F), Attr("section",".init_array")), +Annotation(Region(0x600,0x72F), Attr("section",".text")), +Annotation(Region(0x600,0x72F), Attr("code-region","()")), +Annotation(Region(0x730,0x743), Attr("code-region","()"))]), +Program(Tid(1_758, "%000006de"), Attrs([]), + Subs([Sub(Tid(1_736, "@__cxa_finalize"), Attrs([Attr("address","0x5D0"), +Attr("stub","()"), Attr("c.proto","signed (*)(void)")]), "__cxa_finalize", + Args([Arg(Tid(1_759, "%000006df"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("__cxa_finalize_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(1_150, "@__cxa_finalize"), Attrs([Attr("address","0x5D0")]), + Phis([]), Defs([Def(Tid(1_398, "%00000576"), Attrs([Attr("address","0x5D0"), +Attr("insn","adrp x16, #126976")]), Var("R16",Imm(64)), Int(126976,64)), +Def(Tid(1_405, "%0000057d"), 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_411, "%00000583"), 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_416, "%00000588"), + Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), +(Indirect(Var("R17",Imm(64))),))]))])), +Sub(Tid(1_737, "@__do_global_dtors_aux"), Attrs([Attr("address","0x6C0"), +Attr("c.proto","signed (*)(void)")]), "__do_global_dtors_aux", + Args([Arg(Tid(1_760, "%000006e0"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), 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, #131072")]), Var("R19",Imm(64)), Int(131072,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_738, "%000006ca"), Attrs([]), + Int(1,1), Direct(Tid(1_095, "%00000447")))])), Blk(Tid(1_095, "%00000447"), + Attrs([Attr("address","0x6D8")]), Phis([]), +Defs([Def(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x6D8"), +Attr("insn","adrp x0, #126976")]), Var("R0",Imm(64)), Int(126976,64)), +Def(Tid(1_105, "%00000451"), 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_111, "%00000457"), Attrs([Attr("address","0x6E0"), +Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), +Direct(Tid(1_109, "%00000455"))), Goto(Tid(1_739, "%000006cb"), Attrs([]), + Int(1,1), Direct(Tid(1_134, "%0000046e")))])), Blk(Tid(1_134, "%0000046e"), + Attrs([Attr("address","0x6E4")]), Phis([]), +Defs([Def(Tid(1_137, "%00000471"), Attrs([Attr("address","0x6E4"), +Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), +Def(Tid(1_144, "%00000478"), 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_149, "%0000047d"), Attrs([Attr("address","0x6EC"), +Attr("insn","bl #-0x11c")]), Var("R30",Imm(64)), Int(1776,64))]), +Jmps([Call(Tid(1_152, "%00000480"), Attrs([Attr("address","0x6EC"), +Attr("insn","bl #-0x11c")]), Int(1,1), +(Direct(Tid(1_736, "@__cxa_finalize")),Direct(Tid(1_109, "%00000455"))))])), +Blk(Tid(1_109, "%00000455"), Attrs([Attr("address","0x6F0")]), Phis([]), +Defs([Def(Tid(1_117, "%0000045d"), Attrs([Attr("address","0x6F0"), +Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1780,64))]), +Jmps([Call(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x6F0"), +Attr("insn","bl #-0xa0")]), Int(1,1), +(Direct(Tid(1_750, "@deregister_tm_clones")),Direct(Tid(1_121, "%00000461"))))])), +Blk(Tid(1_121, "%00000461"), Attrs([Attr("address","0x6F4")]), Phis([]), +Defs([Def(Tid(1_124, "%00000464"), Attrs([Attr("address","0x6F4"), +Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), +Def(Tid(1_132, "%0000046c"), 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_740, "%000006cc"), 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_741, "@__libc_start_main"), + Attrs([Attr("address","0x5C0"), Attr("stub","()"), +Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)")]), + "__libc_start_main", Args([Arg(Tid(1_761, "%000006e1"), + Attrs([Attr("c.data","Top:u64 ptr ptr"), +Attr("c.layout","**[ : 64]"), +Attr("c.type","signed (*)(signed , char** , char** );*")]), + Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), +Arg(Tid(1_762, "%000006e2"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), +Arg(Tid(1_763, "%000006e3"), Attrs([Attr("c.data","Top:u8 ptr ptr"), +Attr("c.layout","**[char : 8]"), Attr("c.type","char**")]), + Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), +Arg(Tid(1_764, "%000006e4"), Attrs([Attr("c.data","{} ptr"), +Attr("c.layout","*[ : 8]"), Attr("c.type","void*")]), + Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), +Arg(Tid(1_765, "%000006e5"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), 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_376, "%00000560"), Attrs([Attr("address","0x5C0"), +Attr("insn","adrp x16, #126976")]), Var("R16",Imm(64)), Int(126976,64)), +Def(Tid(1_383, "%00000567"), 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_389, "%0000056d"), 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_394, "%00000572"), + Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), +(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_742, "@_fini"), + Attrs([Attr("address","0x730"), Attr("c.proto","signed (*)(void)")]), + "_fini", Args([Arg(Tid(1_766, "%000006e6"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("_fini_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(47, "@_fini"), Attrs([Attr("address","0x730")]), Phis([]), +Defs([Def(Tid(53, "%00000035"), 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(59, "%0000003b"), 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(65, "%00000041"), 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(69, "%00000045"), Attrs([Attr("address","0x734"), +Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), +Var("#0",Imm(64))), Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x738"), +Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), +Def(Tid(82, "%00000052"), 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(87, "%00000057"), 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(91, "%0000005b"), 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(96, "%00000060"), + Attrs([Attr("address","0x740"), Attr("insn","ret")]), Int(1,1), +(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_743, "@_init"), + Attrs([Attr("address","0x588"), Attr("c.proto","signed (*)(void)")]), + "_init", Args([Arg(Tid(1_767, "%000006e7"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("_init_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(1_571, "@_init"), Attrs([Attr("address","0x588")]), Phis([]), +Defs([Def(Tid(1_577, "%00000629"), Attrs([Attr("address","0x58C"), +Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), +PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), +Def(Tid(1_583, "%0000062f"), Attrs([Attr("address","0x58C"), +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_589, "%00000635"), Attrs([Attr("address","0x58C"), +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_593, "%00000639"), Attrs([Attr("address","0x58C"), +Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), +Var("#6",Imm(64))), Def(Tid(1_599, "%0000063f"), + Attrs([Attr("address","0x590"), Attr("insn","mov x29, sp")]), + Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_604, "%00000644"), + Attrs([Attr("address","0x594"), Attr("insn","bl #0xa0")]), + Var("R30",Imm(64)), Int(1432,64))]), Jmps([Call(Tid(1_606, "%00000646"), + Attrs([Attr("address","0x594"), Attr("insn","bl #0xa0")]), Int(1,1), +(Direct(Tid(1_748, "@call_weak_fn")),Direct(Tid(1_608, "%00000648"))))])), +Blk(Tid(1_608, "%00000648"), Attrs([Attr("address","0x598")]), Phis([]), +Defs([Def(Tid(1_613, "%0000064d"), Attrs([Attr("address","0x598"), +Attr("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_618, "%00000652"), Attrs([Attr("address","0x598"), +Attr("insn","ldp x29, x30, [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_622, "%00000656"), Attrs([Attr("address","0x598"), +Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), +PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_627, "%0000065b"), + Attrs([Attr("address","0x59C"), Attr("insn","ret")]), Int(1,1), +(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_744, "@_start"), + Attrs([Attr("address","0x600"), Attr("stub","()"), Attr("entry-point","()"), +Attr("c.proto","signed (*)(void)")]), "_start", + Args([Arg(Tid(1_768, "%000006e8"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), 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, #126976")]), + Var("R0",Imm(64)), Int(126976,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_741, "@__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_747, "@abort")),Direct(Tid(1_745, "%000006d1"))))])), +Blk(Tid(1_745, "%000006d1"), Attrs([]), Phis([]), Defs([]), +Jmps([Call(Tid(1_746, "%000006d2"), Attrs([]), Int(1,1), +(Direct(Tid(1_748, "@call_weak_fn")),))]))])), Sub(Tid(1_747, "@abort"), + Attrs([Attr("address","0x5F0"), Attr("stub","()"), Attr("noreturn","()"), +Attr("c.proto","void (*)(void)")]), "abort", Args([]), +Blks([Blk(Tid(475, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), +Defs([Def(Tid(1_442, "%000005a2"), Attrs([Attr("address","0x5F0"), +Attr("insn","adrp x16, #126976")]), Var("R16",Imm(64)), Int(126976,64)), +Def(Tid(1_449, "%000005a9"), 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_455, "%000005af"), 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_460, "%000005b4"), + Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), +(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_748, "@call_weak_fn"), + Attrs([Attr("address","0x634"), Attr("c.proto","signed (*)(void)")]), + "call_weak_fn", Args([Arg(Tid(1_769, "%000006e9"), + Attrs([Attr("c.data","Top:u32"), Attr("c.layout","[signed : 32]"), +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, #126976")]), + Var("R0",Imm(64)), Int(126976,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_749, "%000006d5"), Attrs([]), + Int(1,1), Direct(Tid(1_214, "%000004be")))])), 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(1_214, "%000004be"), Attrs([Attr("address","0x640")]), Phis([]), +Defs([]), Jmps([Goto(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x640"), +Attr("insn","b #-0x60")]), Int(1,1), +Direct(Tid(1_215, "@__gmon_start__")))])), Blk(Tid(1_215, "@__gmon_start__"), + Attrs([Attr("address","0x5E0")]), Phis([]), +Defs([Def(Tid(1_420, "%0000058c"), Attrs([Attr("address","0x5E0"), +Attr("insn","adrp x16, #126976")]), Var("R16",Imm(64)), Int(126976,64)), +Def(Tid(1_427, "%00000593"), 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_433, "%00000599"), 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_438, "%0000059e"), + Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), +(Indirect(Var("R17",Imm(64))),))]))])), +Sub(Tid(1_750, "@deregister_tm_clones"), Attrs([Attr("address","0x650"), +Attr("c.proto","signed (*)(void)")]), "deregister_tm_clones", + Args([Arg(Tid(1_770, "%000006ea"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), 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, #131072")]), + Var("R0",Imm(64)), Int(131072,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, #131072")]), Var("R1",Imm(64)), Int(131072,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_751, "%000006d7"), Attrs([]), + Int(1,1), Direct(Tid(1_184, "%000004a0")))])), Blk(Tid(1_184, "%000004a0"), + Attrs([Attr("address","0x668")]), Phis([]), +Defs([Def(Tid(1_187, "%000004a3"), Attrs([Attr("address","0x668"), +Attr("insn","adrp x1, #126976")]), Var("R1",Imm(64)), Int(126976,64)), +Def(Tid(1_194, "%000004aa"), 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_199, "%000004af"), Attrs([Attr("address","0x670"), +Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), +Direct(Tid(562, "%00000232"))), Goto(Tid(1_752, "%000006d8"), Attrs([]), + Int(1,1), Direct(Tid(1_203, "%000004b3")))])), 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(1_203, "%000004b3"), Attrs([Attr("address","0x674")]), Phis([]), +Defs([Def(Tid(1_207, "%000004b7"), Attrs([Attr("address","0x674"), +Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), +Jmps([Call(Tid(1_212, "%000004bc"), Attrs([Attr("address","0x678"), +Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), +Sub(Tid(1_753, "@frame_dummy"), Attrs([Attr("address","0x710"), +Attr("c.proto","signed (*)(void)")]), "frame_dummy", + Args([Arg(Tid(1_771, "%000006eb"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), 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_755, "@register_tm_clones")),))]))])), Sub(Tid(1_754, "@main"), + Attrs([Attr("address","0x714"), +Attr("c.proto","signed (*)(signed argc, const char** argv)")]), "main", + Args([Arg(Tid(1_772, "%000006ec"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), +Arg(Tid(1_773, "%000006ed"), Attrs([Attr("c.data","Top:u8 ptr ptr"), +Attr("c.layout","**[char : 8]"), Attr("c.type"," const char**")]), + Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), +Arg(Tid(1_774, "%000006ee"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), 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(730, "%000002da"), Attrs([Attr("address","0x714"), +Attr("insn","sub sp, sp, #0x10")]), Var("R31",Imm(64)), +PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), +Def(Tid(738, "%000002e2"), 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(746, "%000002ea"), 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(753, "%000002f1"), Attrs([Attr("address","0x720"), +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_075, "%00000433"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), EQ(Extract(31,31,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(758, "%000002f6"))), Goto(Tid(1_076, "%00000434"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(1_067, "%0000042b")))])), Blk(Tid(1_067, "%0000042b"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(1_069, "%0000042d"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(30,30,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(762, "%000002fa"))), Goto(Tid(1_070, "%0000042e"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(1_061, "%00000425")))])), Blk(Tid(1_061, "%00000425"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(1_063, "%00000427"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(29,29,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(766, "%000002fe"))), Goto(Tid(1_064, "%00000428"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(1_055, "%0000041f")))])), Blk(Tid(1_055, "%0000041f"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(1_057, "%00000421"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(28,28,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(770, "%00000302"))), Goto(Tid(1_058, "%00000422"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(1_049, "%00000419")))])), Blk(Tid(1_049, "%00000419"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(1_051, "%0000041b"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(27,27,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(774, "%00000306"))), Goto(Tid(1_052, "%0000041c"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(1_043, "%00000413")))])), Blk(Tid(1_043, "%00000413"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(1_045, "%00000415"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(26,26,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(778, "%0000030a"))), Goto(Tid(1_046, "%00000416"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(1_037, "%0000040d")))])), Blk(Tid(1_037, "%0000040d"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(1_039, "%0000040f"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(25,25,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(782, "%0000030e"))), Goto(Tid(1_040, "%00000410"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(1_031, "%00000407")))])), Blk(Tid(1_031, "%00000407"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(1_033, "%00000409"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(24,24,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(786, "%00000312"))), Goto(Tid(1_034, "%0000040a"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(1_025, "%00000401")))])), Blk(Tid(1_025, "%00000401"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(1_027, "%00000403"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(23,23,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(790, "%00000316"))), Goto(Tid(1_028, "%00000404"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(1_019, "%000003fb")))])), Blk(Tid(1_019, "%000003fb"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(1_021, "%000003fd"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(22,22,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(794, "%0000031a"))), Goto(Tid(1_022, "%000003fe"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(1_013, "%000003f5")))])), Blk(Tid(1_013, "%000003f5"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(1_015, "%000003f7"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(21,21,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(798, "%0000031e"))), Goto(Tid(1_016, "%000003f8"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(1_007, "%000003ef")))])), Blk(Tid(1_007, "%000003ef"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(1_009, "%000003f1"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(20,20,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(802, "%00000322"))), Goto(Tid(1_010, "%000003f2"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(1_001, "%000003e9")))])), Blk(Tid(1_001, "%000003e9"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(1_003, "%000003eb"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(19,19,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(806, "%00000326"))), Goto(Tid(1_004, "%000003ec"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(995, "%000003e3")))])), Blk(Tid(995, "%000003e3"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(997, "%000003e5"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(18,18,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(810, "%0000032a"))), Goto(Tid(998, "%000003e6"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(989, "%000003dd")))])), Blk(Tid(989, "%000003dd"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(991, "%000003df"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(17,17,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(814, "%0000032e"))), Goto(Tid(992, "%000003e0"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(983, "%000003d7")))])), Blk(Tid(983, "%000003d7"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(985, "%000003d9"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(16,16,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(818, "%00000332"))), Goto(Tid(986, "%000003da"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(977, "%000003d1")))])), Blk(Tid(977, "%000003d1"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(979, "%000003d3"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(15,15,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(822, "%00000336"))), Goto(Tid(980, "%000003d4"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(971, "%000003cb")))])), Blk(Tid(971, "%000003cb"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(973, "%000003cd"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(14,14,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(826, "%0000033a"))), Goto(Tid(974, "%000003ce"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(965, "%000003c5")))])), Blk(Tid(965, "%000003c5"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(967, "%000003c7"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(13,13,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(830, "%0000033e"))), Goto(Tid(968, "%000003c8"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(959, "%000003bf")))])), Blk(Tid(959, "%000003bf"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(961, "%000003c1"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(12,12,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(834, "%00000342"))), Goto(Tid(962, "%000003c2"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(953, "%000003b9")))])), Blk(Tid(953, "%000003b9"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(955, "%000003bb"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(11,11,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(838, "%00000346"))), Goto(Tid(956, "%000003bc"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(947, "%000003b3")))])), Blk(Tid(947, "%000003b3"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(949, "%000003b5"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(10,10,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(842, "%0000034a"))), Goto(Tid(950, "%000003b6"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(941, "%000003ad")))])), Blk(Tid(941, "%000003ad"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(943, "%000003af"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(9,9,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(846, "%0000034e"))), +Goto(Tid(944, "%000003b0"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(935, "%000003a7")))])), +Blk(Tid(935, "%000003a7"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(937, "%000003a9"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), EQ(Extract(8,8,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(850, "%00000352"))), Goto(Tid(938, "%000003aa"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(929, "%000003a1")))])), Blk(Tid(929, "%000003a1"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(931, "%000003a3"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(7,7,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(854, "%00000356"))), +Goto(Tid(932, "%000003a4"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(923, "%0000039b")))])), +Blk(Tid(923, "%0000039b"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(925, "%0000039d"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), EQ(Extract(6,6,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(858, "%0000035a"))), Goto(Tid(926, "%0000039e"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(917, "%00000395")))])), Blk(Tid(917, "%00000395"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(919, "%00000397"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(5,5,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(862, "%0000035e"))), +Goto(Tid(920, "%00000398"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(911, "%0000038f")))])), +Blk(Tid(911, "%0000038f"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(913, "%00000391"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), EQ(Extract(4,4,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(866, "%00000362"))), Goto(Tid(914, "%00000392"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(905, "%00000389")))])), Blk(Tid(905, "%00000389"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(907, "%0000038b"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(3,3,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(870, "%00000366"))), +Goto(Tid(908, "%0000038c"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(899, "%00000383")))])), +Blk(Tid(899, "%00000383"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(901, "%00000385"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), EQ(Extract(2,2,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(874, "%0000036a"))), Goto(Tid(902, "%00000386"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(893, "%0000037d")))])), Blk(Tid(893, "%0000037d"), Attrs([]), + Phis([]), Defs([]), Jmps([Goto(Tid(895, "%0000037f"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), + EQ(Extract(1,1,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(878, "%0000036e"))), +Goto(Tid(896, "%00000380"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(887, "%00000377")))])), +Blk(Tid(887, "%00000377"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(889, "%00000379"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), +Direct(Tid(882, "%00000372"))), Goto(Tid(890, "%0000037a"), + Attrs([Attr("address","0x724"), Attr("insn","clz w0, w0")]), Int(1,1), +Direct(Tid(885, "%00000375")))])), Blk(Tid(885, "%00000375"), Attrs([]), + Phis([]), Defs([Def(Tid(886, "%00000376"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(63,6))]), +Jmps([Goto(Tid(892, "%0000037c"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(888, "%00000378")))])), +Blk(Tid(888, "%00000378"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(898, "%00000382"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(894, "%0000037e")))])), +Blk(Tid(894, "%0000037e"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(904, "%00000388"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(900, "%00000384")))])), +Blk(Tid(900, "%00000384"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(910, "%0000038e"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(906, "%0000038a")))])), +Blk(Tid(906, "%0000038a"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(916, "%00000394"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(912, "%00000390")))])), +Blk(Tid(912, "%00000390"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(922, "%0000039a"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(918, "%00000396")))])), +Blk(Tid(918, "%00000396"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(928, "%000003a0"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(924, "%0000039c")))])), +Blk(Tid(924, "%0000039c"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(934, "%000003a6"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(930, "%000003a2")))])), +Blk(Tid(930, "%000003a2"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(940, "%000003ac"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(936, "%000003a8")))])), +Blk(Tid(936, "%000003a8"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(946, "%000003b2"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(942, "%000003ae")))])), +Blk(Tid(942, "%000003ae"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(952, "%000003b8"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(948, "%000003b4")))])), +Blk(Tid(948, "%000003b4"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(958, "%000003be"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(954, "%000003ba")))])), +Blk(Tid(954, "%000003ba"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(964, "%000003c4"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(960, "%000003c0")))])), +Blk(Tid(960, "%000003c0"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(970, "%000003ca"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(966, "%000003c6")))])), +Blk(Tid(966, "%000003c6"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(976, "%000003d0"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(972, "%000003cc")))])), +Blk(Tid(972, "%000003cc"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(982, "%000003d6"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(978, "%000003d2")))])), +Blk(Tid(978, "%000003d2"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(988, "%000003dc"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(984, "%000003d8")))])), +Blk(Tid(984, "%000003d8"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(994, "%000003e2"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(990, "%000003de")))])), +Blk(Tid(990, "%000003de"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(996, "%000003e4")))])), +Blk(Tid(996, "%000003e4"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_006, "%000003ee"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_002, "%000003ea")))])), +Blk(Tid(1_002, "%000003ea"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_012, "%000003f4"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_008, "%000003f0")))])), +Blk(Tid(1_008, "%000003f0"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_018, "%000003fa"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_014, "%000003f6")))])), +Blk(Tid(1_014, "%000003f6"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_024, "%00000400"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_020, "%000003fc")))])), +Blk(Tid(1_020, "%000003fc"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_030, "%00000406"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_026, "%00000402")))])), +Blk(Tid(1_026, "%00000402"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_036, "%0000040c"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_032, "%00000408")))])), +Blk(Tid(1_032, "%00000408"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_042, "%00000412"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_038, "%0000040e")))])), +Blk(Tid(1_038, "%0000040e"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_048, "%00000418"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_044, "%00000414")))])), +Blk(Tid(1_044, "%00000414"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_054, "%0000041e"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_050, "%0000041a")))])), +Blk(Tid(1_050, "%0000041a"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_060, "%00000424"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_056, "%00000420")))])), +Blk(Tid(1_056, "%00000420"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_066, "%0000042a"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_062, "%00000426")))])), +Blk(Tid(1_062, "%00000426"), Attrs([]), Phis([]), Defs([]), +Jmps([Goto(Tid(1_072, "%00000430"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), 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","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_074, "%00000432")))])), +Blk(Tid(882, "%00000372"), Attrs([]), Phis([]), +Defs([Def(Tid(883, "%00000373"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(0,6))]), +Jmps([Goto(Tid(891, "%0000037b"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(888, "%00000378")))])), +Blk(Tid(878, "%0000036e"), Attrs([]), Phis([]), +Defs([Def(Tid(879, "%0000036f"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(1,6))]), +Jmps([Goto(Tid(897, "%00000381"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(894, "%0000037e")))])), +Blk(Tid(874, "%0000036a"), Attrs([]), Phis([]), +Defs([Def(Tid(875, "%0000036b"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(2,6))]), +Jmps([Goto(Tid(903, "%00000387"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(900, "%00000384")))])), +Blk(Tid(870, "%00000366"), Attrs([]), Phis([]), +Defs([Def(Tid(871, "%00000367"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(3,6))]), +Jmps([Goto(Tid(909, "%0000038d"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(906, "%0000038a")))])), +Blk(Tid(866, "%00000362"), Attrs([]), Phis([]), +Defs([Def(Tid(867, "%00000363"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(4,6))]), +Jmps([Goto(Tid(915, "%00000393"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(912, "%00000390")))])), +Blk(Tid(862, "%0000035e"), Attrs([]), Phis([]), +Defs([Def(Tid(863, "%0000035f"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(5,6))]), +Jmps([Goto(Tid(921, "%00000399"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(918, "%00000396")))])), +Blk(Tid(858, "%0000035a"), Attrs([]), Phis([]), +Defs([Def(Tid(859, "%0000035b"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(6,6))]), +Jmps([Goto(Tid(927, "%0000039f"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(924, "%0000039c")))])), +Blk(Tid(854, "%00000356"), Attrs([]), Phis([]), +Defs([Def(Tid(855, "%00000357"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(7,6))]), +Jmps([Goto(Tid(933, "%000003a5"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(930, "%000003a2")))])), +Blk(Tid(850, "%00000352"), Attrs([]), Phis([]), +Defs([Def(Tid(851, "%00000353"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(8,6))]), +Jmps([Goto(Tid(939, "%000003ab"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(936, "%000003a8")))])), +Blk(Tid(846, "%0000034e"), Attrs([]), Phis([]), +Defs([Def(Tid(847, "%0000034f"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(9,6))]), +Jmps([Goto(Tid(945, "%000003b1"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(942, "%000003ae")))])), +Blk(Tid(842, "%0000034a"), Attrs([]), Phis([]), +Defs([Def(Tid(843, "%0000034b"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(10,6))]), +Jmps([Goto(Tid(951, "%000003b7"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(948, "%000003b4")))])), +Blk(Tid(838, "%00000346"), Attrs([]), Phis([]), +Defs([Def(Tid(839, "%00000347"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(11,6))]), +Jmps([Goto(Tid(957, "%000003bd"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(954, "%000003ba")))])), +Blk(Tid(834, "%00000342"), Attrs([]), Phis([]), +Defs([Def(Tid(835, "%00000343"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(12,6))]), +Jmps([Goto(Tid(963, "%000003c3"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(960, "%000003c0")))])), +Blk(Tid(830, "%0000033e"), Attrs([]), Phis([]), +Defs([Def(Tid(831, "%0000033f"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(13,6))]), +Jmps([Goto(Tid(969, "%000003c9"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(966, "%000003c6")))])), +Blk(Tid(826, "%0000033a"), Attrs([]), Phis([]), +Defs([Def(Tid(827, "%0000033b"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(14,6))]), +Jmps([Goto(Tid(975, "%000003cf"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(972, "%000003cc")))])), +Blk(Tid(822, "%00000336"), Attrs([]), Phis([]), +Defs([Def(Tid(823, "%00000337"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(15,6))]), +Jmps([Goto(Tid(981, "%000003d5"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(978, "%000003d2")))])), +Blk(Tid(818, "%00000332"), Attrs([]), Phis([]), +Defs([Def(Tid(819, "%00000333"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(16,6))]), +Jmps([Goto(Tid(987, "%000003db"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(984, "%000003d8")))])), +Blk(Tid(814, "%0000032e"), Attrs([]), Phis([]), +Defs([Def(Tid(815, "%0000032f"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(17,6))]), +Jmps([Goto(Tid(993, "%000003e1"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(990, "%000003de")))])), +Blk(Tid(810, "%0000032a"), Attrs([]), Phis([]), +Defs([Def(Tid(811, "%0000032b"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(18,6))]), +Jmps([Goto(Tid(999, "%000003e7"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(996, "%000003e4")))])), +Blk(Tid(806, "%00000326"), Attrs([]), Phis([]), +Defs([Def(Tid(807, "%00000327"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(19,6))]), +Jmps([Goto(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_002, "%000003ea")))])), +Blk(Tid(802, "%00000322"), Attrs([]), Phis([]), +Defs([Def(Tid(803, "%00000323"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(20,6))]), +Jmps([Goto(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_008, "%000003f0")))])), +Blk(Tid(798, "%0000031e"), Attrs([]), Phis([]), +Defs([Def(Tid(799, "%0000031f"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(21,6))]), +Jmps([Goto(Tid(1_017, "%000003f9"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_014, "%000003f6")))])), +Blk(Tid(794, "%0000031a"), Attrs([]), Phis([]), +Defs([Def(Tid(795, "%0000031b"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(22,6))]), +Jmps([Goto(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_020, "%000003fc")))])), +Blk(Tid(790, "%00000316"), Attrs([]), Phis([]), +Defs([Def(Tid(791, "%00000317"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(23,6))]), +Jmps([Goto(Tid(1_029, "%00000405"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_026, "%00000402")))])), +Blk(Tid(786, "%00000312"), Attrs([]), Phis([]), +Defs([Def(Tid(787, "%00000313"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(24,6))]), +Jmps([Goto(Tid(1_035, "%0000040b"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_032, "%00000408")))])), +Blk(Tid(782, "%0000030e"), Attrs([]), Phis([]), +Defs([Def(Tid(783, "%0000030f"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(25,6))]), +Jmps([Goto(Tid(1_041, "%00000411"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_038, "%0000040e")))])), +Blk(Tid(778, "%0000030a"), Attrs([]), Phis([]), +Defs([Def(Tid(779, "%0000030b"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(26,6))]), +Jmps([Goto(Tid(1_047, "%00000417"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_044, "%00000414")))])), +Blk(Tid(774, "%00000306"), Attrs([]), Phis([]), +Defs([Def(Tid(775, "%00000307"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(27,6))]), +Jmps([Goto(Tid(1_053, "%0000041d"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_050, "%0000041a")))])), +Blk(Tid(770, "%00000302"), Attrs([]), Phis([]), +Defs([Def(Tid(771, "%00000303"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(28,6))]), +Jmps([Goto(Tid(1_059, "%00000423"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_056, "%00000420")))])), +Blk(Tid(766, "%000002fe"), Attrs([]), Phis([]), +Defs([Def(Tid(767, "%000002ff"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(29,6))]), +Jmps([Goto(Tid(1_065, "%00000429"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_062, "%00000426")))])), +Blk(Tid(762, "%000002fa"), Attrs([]), Phis([]), +Defs([Def(Tid(763, "%000002fb"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(30,6))]), +Jmps([Goto(Tid(1_071, "%0000042f"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_068, "%0000042c")))])), +Blk(Tid(758, "%000002f6"), Attrs([]), Phis([]), +Defs([Def(Tid(759, "%000002f7"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("#4",Imm(6)), Int(31,6))]), +Jmps([Goto(Tid(1_077, "%00000435"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Int(1,1), Direct(Tid(1_074, "%00000432")))])), +Blk(Tid(1_074, "%00000432"), Attrs([]), Phis([]), +Defs([Def(Tid(1_082, "%0000043a"), Attrs([Attr("address","0x724"), +Attr("insn","clz w0, w0")]), Var("R0",Imm(64)), +UNSIGNED(64,SIGNED(32,MINUS(Int(32,7),PLUS(SIGNED(7,Var("#4",Imm(6))),Int(1,7)))))), +Def(Tid(1_088, "%00000440"), 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(1_093, "%00000445"), + Attrs([Attr("address","0x72C"), Attr("insn","ret")]), Int(1,1), +(Indirect(Var("R30",Imm(64))),))]))])), +Sub(Tid(1_755, "@register_tm_clones"), Attrs([Attr("address","0x680"), +Attr("c.proto","signed (*)(void)")]), "register_tm_clones", + Args([Arg(Tid(1_775, "%000006ef"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), 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, #131072")]), + Var("R0",Imm(64)), Int(131072,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, #131072")]), Var("R1",Imm(64)), Int(131072,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_756, "%000006dc"), Attrs([]), + Int(1,1), Direct(Tid(1_154, "%00000482")))])), Blk(Tid(1_154, "%00000482"), + Attrs([Attr("address","0x6A4")]), Phis([]), +Defs([Def(Tid(1_157, "%00000485"), Attrs([Attr("address","0x6A4"), +Attr("insn","adrp x2, #126976")]), Var("R2",Imm(64)), Int(126976,64)), +Def(Tid(1_164, "%0000048c"), 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_169, "%00000491"), Attrs([Attr("address","0x6AC"), +Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), +Direct(Tid(622, "%0000026e"))), Goto(Tid(1_757, "%000006dd"), Attrs([]), + Int(1,1), Direct(Tid(1_173, "%00000495")))])), 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(1_173, "%00000495"), Attrs([Attr("address","0x6B0")]), Phis([]), +Defs([Def(Tid(1_177, "%00000499"), Attrs([Attr("address","0x6B0"), +Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), +Jmps([Call(Tid(1_182, "%0000049e"), 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/examples/clz/clz.c b/examples/clz/clz.c new file mode 100644 index 000000000..b4272251c --- /dev/null +++ b/examples/clz/clz.c @@ -0,0 +1,5 @@ +int main(int argc, char** argv) { + +return __builtin_clz(argc); + +} diff --git a/examples/clz/clz.gts b/examples/clz/clz.gts new file mode 100644 index 000000000..00078e097 Binary files /dev/null and b/examples/clz/clz.gts differ diff --git a/examples/clz/clz.relf b/examples/clz/clz.relf new file mode 100644 index 000000000..f29f4a587 --- /dev/null +++ b/examples/clz/clz.relf @@ -0,0 +1,126 @@ + +Relocation section '.rela.dyn' at offset 0x468 contains 8 entries: + Offset Info Type Symbol's Value Symbol's Name + Addend +000000000001fd88 0000000000000403 R_AARCH64_RELATIVE 710 +000000000001fd90 0000000000000403 R_AARCH64_RELATIVE 6c0 +000000000001fff0 0000000000000403 R_AARCH64_RELATIVE 714 +0000000000020008 0000000000000403 R_AARCH64_RELATIVE 20008 +000000000001ffd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 +000000000001ffe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 +000000000001ffe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 +000000000001fff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 + +Relocation section '.rela.plt' at offset 0x528 contains 4 entries: + Offset Info Type Symbol's Value Symbol's Name + Addend +000000000001ffb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 +000000000001ffb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 +000000000001ffc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 +000000000001ffc8 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: 0000000000000588 0 SECTION LOCAL DEFAULT 11 .init + 2: 0000000000020000 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: 0000000000000424 0 SECTION LOCAL DEFAULT 7 .gnu.version + 8: 0000000000000438 0 SECTION LOCAL DEFAULT 8 .gnu.version_r + 9: 0000000000000468 0 SECTION LOCAL DEFAULT 9 .rela.dyn + 10: 0000000000000528 0 SECTION LOCAL DEFAULT 10 .rela.plt + 11: 0000000000000588 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: 000000000001fd88 0 SECTION LOCAL DEFAULT 18 .init_array + 19: 000000000001fd90 0 SECTION LOCAL DEFAULT 19 .fini_array + 20: 000000000001fd98 0 SECTION LOCAL DEFAULT 20 .dynamic + 21: 000000000001ff98 0 SECTION LOCAL DEFAULT 21 .got + 22: 0000000000020000 0 SECTION LOCAL DEFAULT 22 .data + 23: 0000000000020010 0 SECTION LOCAL DEFAULT 23 .bss + 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment + 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .debug_aranges + 26: 0000000000000000 0 SECTION LOCAL DEFAULT 26 .debug_info + 27: 0000000000000000 0 SECTION LOCAL DEFAULT 27 .debug_abbrev + 28: 0000000000000000 0 SECTION LOCAL DEFAULT 28 .debug_line + 29: 0000000000000000 0 SECTION LOCAL DEFAULT 29 .debug_str + 30: 0000000000000000 0 SECTION LOCAL DEFAULT 30 .debug_line_str + 31: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o + 32: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d + 33: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag + 34: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x + 35: 000000000000079c 0 NOTYPE LOCAL DEFAULT 17 $d + 36: 0000000000000744 0 NOTYPE LOCAL DEFAULT 15 $d + 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o + 38: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x + 39: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn + 40: 0000000000000588 0 NOTYPE LOCAL DEFAULT 11 $x + 41: 0000000000000730 0 NOTYPE LOCAL DEFAULT 14 $x + 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o + 43: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x + 44: 000000000000073c 0 NOTYPE LOCAL DEFAULT 14 $x + 45: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c + 46: 0000000000000650 0 NOTYPE LOCAL DEFAULT 13 $x + 47: 0000000000000650 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones + 48: 0000000000000680 0 FUNC LOCAL DEFAULT 13 register_tm_clones + 49: 0000000000020008 0 NOTYPE LOCAL DEFAULT 22 $d + 50: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux + 51: 0000000000020010 1 OBJECT LOCAL DEFAULT 23 completed.0 + 52: 000000000001fd90 0 NOTYPE LOCAL DEFAULT 19 $d + 53: 000000000001fd90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry + 54: 0000000000000710 0 FUNC LOCAL DEFAULT 13 frame_dummy + 55: 000000000001fd88 0 NOTYPE LOCAL DEFAULT 18 $d + 56: 000000000001fd88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry + 57: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 17 $d + 58: 0000000000020010 0 NOTYPE LOCAL DEFAULT 23 $d + 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS example.c + 60: 0000000000000714 0 NOTYPE LOCAL DEFAULT 13 $x + 61: 0000000000000810 0 NOTYPE LOCAL DEFAULT 17 $d + 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c + 63: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d + 64: 0000000000000828 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ + 65: 0000000000000000 0 FILE LOCAL DEFAULT ABS + 66: 000000000001fd98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC + 67: 0000000000000748 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR + 68: 000000000001ffd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + 69: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x + 70: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 + 71: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable + 72: 0000000000020000 0 NOTYPE WEAK DEFAULT 22 data_start + 73: 0000000000020010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ + 74: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 + 75: 0000000000020018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ + 76: 0000000000020010 0 NOTYPE GLOBAL DEFAULT 22 _edata + 77: 0000000000000730 0 FUNC GLOBAL HIDDEN 14 _fini + 78: 0000000000020018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ + 79: 0000000000020000 0 NOTYPE GLOBAL DEFAULT 22 __data_start + 80: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ + 81: 0000000000020008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle + 82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 + 83: 0000000000000744 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used + 84: 0000000000020018 0 NOTYPE GLOBAL DEFAULT 23 _end + 85: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start + 86: 0000000000020018 0 NOTYPE GLOBAL DEFAULT 23 __end__ + 87: 0000000000020010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start + 88: 0000000000000714 28 FUNC GLOBAL DEFAULT 13 main + 89: 0000000000020010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ + 90: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable + 91: 0000000000000588 0 FUNC GLOBAL HIDDEN 11 _init + \ No newline at end of file diff --git a/examples/cset/cset.adt b/examples/cset/cset.adt new file mode 100644 index 000000000..4adb513fb --- /dev/null +++ b/examples/cset/cset.adt @@ -0,0 +1,529 @@ +Project(Attrs([Attr("filename","/tmp/tmpv5hhaq09/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 1416 24 1416)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 131032 _ITM_deregisterTMCloneTable)\n(external-reference 131040 __cxa_finalize)\n(external-reference 131048 __gmon_start__)\n(external-reference 131064 _ITM_registerTMCloneTable)\n(external-reference 130992 __libc_start_main)\n(external-reference 131000 __cxa_finalize)\n(external-reference 131008 __gmon_start__)\n(external-reference 131016 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 1416 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 1416 24)\n(llvm:elf-program-header 08 64904 632)\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 64920 512)\n(llvm:elf-program-header 03 64904 648)\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 130440 632)\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 130456 512)\n(llvm:elf-virtual-program-header 03 130440 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 131016 abort)\n(llvm:name-reference 131008 __gmon_start__)\n(llvm:name-reference 131000 __cxa_finalize)\n(llvm:name-reference 130992 __libc_start_main)\n(llvm:name-reference 131064 _ITM_registerTMCloneTable)\n(llvm:name-reference 131048 __gmon_start__)\n(llvm:name-reference 131040 __cxa_finalize)\n(llvm:name-reference 131032 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 362 69319)\n(llvm:section-entry .strtab 0 543 68776)\n(llvm:section-entry .symtab 0 2256 66520)\n(llvm:section-entry .debug_rnglists 0 23 66494)\n(llvm:section-entry .debug_loclists 0 155 66339)\n(llvm:section-entry .debug_line_str 0 120 66219)\n(llvm:section-entry .debug_str 0 166 66053)\n(llvm:section-entry .debug_line 0 97 65956)\n(llvm:section-entry .debug_abbrev 0 125 65831)\n(llvm:section-entry .debug_info 0 188 65643)\n(llvm:section-entry .debug_aranges 0 48 65595)\n(llvm:section-entry .comment 0 43 65552)\n(llvm:section-entry .bss 131088 8 65552)\n(llvm:section-entry .data 131072 16 65536)\n(llvm:section-entry .got 130968 104 65432)\n(llvm:section-entry .dynamic 130456 512 64920)\n(llvm:section-entry .fini_array 130448 8 64912)\n(llvm:section-entry .init_array 130440 8 64904)\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 1416 24 1416)\n(llvm:section-entry .rela.plt 1320 96 1320)\n(llvm:section-entry .rela.dyn 1128 192 1128)\n(llvm:section-entry .gnu.version_r 1080 48 1080)\n(llvm:section-entry .gnu.version 1060 18 1060)\n(llvm:section-entry .dynstr 912 147 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 .debug_rnglists true false false)\n(llvm:section-flags .debug_loclists true false false)\n(llvm:section-flags .debug_line_str true false false)\n(llvm:section-flags .debug_str true false false)\n(llvm:section-flags .debug_line true false false)\n(llvm:section-flags .debug_abbrev true false false)\n(llvm:section-flags .debug_info true false false)\n(llvm:section-flags .debug_aranges 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 1416 0 1416 1416)\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 130440 648 64904)\n(named-region 0 2120 02)\n(named-region 130440 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 147 .dynstr)\n(named-region 1060 18 .gnu.version)\n(named-region 1080 48 .gnu.version_r)\n(named-region 1128 192 .rela.dyn)\n(named-region 1320 96 .rela.plt)\n(named-region 1416 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 130440 8 .init_array)\n(named-region 130448 8 .fini_array)\n(named-region 130456 512 .dynamic)\n(named-region 130968 104 .got)\n(named-region 131072 16 .data)\n(named-region 131088 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 48 .debug_aranges)\n(named-region 0 188 .debug_info)\n(named-region 0 125 .debug_abbrev)\n(named-region 0 97 .debug_line)\n(named-region 0 166 .debug_str)\n(named-region 0 120 .debug_line_str)\n(named-region 0 155 .debug_loclists)\n(named-region 0 23 .debug_rnglists)\n(named-region 0 2256 .symtab)\n(named-region 0 543 .strtab)\n(named-region 0 362 .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 1416 _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 147)\n(section 1060 18)\n(section 1080 48)\n(section 1128 192)\n(section 1320 96)\n(section 1416 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 130440 8)\n(section 130448 8)\n(section 130456 512)\n(section 130968 104)\n(section 131072 16)\n(section 131088 8)\n(section 0 43)\n(section 0 48)\n(section 0 188)\n(section 0 125)\n(section 0 97)\n(section 0 166)\n(section 0 120)\n(section 0 155)\n(section 0 23)\n(section 0 2256)\n(section 0 543)\n(section 0 362)\n(segment 0 2120 true false true)\n(segment 130440 656 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 1416 1416)\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\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\x88\xfd\x00\x00\x00\x00\x00\x00\x88\xfd\x01\x00\x00\x00\x00\x00\x88\xfd\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\xfd\x00\x00\x00\x00\x00\x00\x98\xfd\x01\x00\x00\x00\x00\x00\x98\xfd\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"), +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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\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\x88\xfd\x00\x00\x00\x00\x00\x00\x88\xfd\x01\x00\x00\x00\x00\x00\x88\xfd\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\xfd\x00\x00\x00\x00\x00\x00\x98\xfd\x01\x00\x00\x00\x00\x00\x98\xfd\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\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\x88\xfd\x00\x00\x00\x00\x00\x00\x88\xfd\x01\x00\x00\x00\x00\x00\x88\xfd\x01\x00\x00\x00\x00"), +Section(".debug_rnglists", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00"), +Section(".debug_loclists", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00"), +Section(".debug_line_str", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00"), +Section(".debug_str", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00"), +Section(".debug_line", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8"), +Section(".debug_abbrev", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04"), +Section(".debug_info", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00"), +Section(".debug_aranges", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\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\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x38\x10\x01"), +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\x90\x11\x9e\xa8\xc4\x89\x68\x50\x6a\x26\xab\x5e\x6b\xd1\x3a\x4a\xf0\x67\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\x88\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\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\x4e\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\x6a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\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\x2e\x2f\x6c\x69\x62\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\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", 0x424, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), +Section(".gnu.version_r", 0x438, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\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", 0x468, "\x88\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\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", 0x528, "\xb0\xff\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xff\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), +Section(".init", 0x588, "\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", 0x5A0, "\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xf0\x00\x00\xf0\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\xf0\x00\x00\xf0\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\xf0\x00\x00\xf0\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\xf0\x00\x00\xf0\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", 0x1FD90, "\x00\x07\x00\x00\x00\x00\x00\x00"), +Section(".dynamic", 0x1FD98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x88\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\x88\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\x90\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\x93\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\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\x28\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x68\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\x38\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\x24\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", 0x1FD88, "\x50\x07\x00\x00\x00\x00\x00\x00"), +Section(".got", 0x1FF98, "\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\x98\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(".data", 0x20000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00"), +Section(".text", 0x600, "\x21\x1c\x00\x12\x00\x1c\x00\x12\x1f\x00\x01\xeb\xe0\x17\x9f\x9a\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\xe0\x00\x00\xf0\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\xe0\x00\x00\xf0\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\x40\x00\x91\x01\x01\x00\x90\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\x40\x00\x91\x01\x01\x00\x90\x21\x40\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\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\x13\x01\x00\x90\x60\x42\x40\x39\x40\x01\x00\x35\xe0\x00\x00\xf0\x00\xf0\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\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,0x169), Attr("section",".shstrtab")), +Annotation(Region(0x0,0x21E), Attr("section",".strtab")), +Annotation(Region(0x0,0x16), Attr("section",".debug_rnglists")), +Annotation(Region(0x0,0x9A), Attr("section",".debug_loclists")), +Annotation(Region(0x0,0x77), Attr("section",".debug_line_str")), +Annotation(Region(0x0,0xA5), Attr("section",".debug_str")), +Annotation(Region(0x0,0x60), Attr("section",".debug_line")), +Annotation(Region(0x0,0x7C), Attr("section",".debug_abbrev")), +Annotation(Region(0x0,0xBB), Attr("section",".debug_info")), +Annotation(Region(0x0,0x2F), Attr("section",".debug_aranges")), +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,0x422), Attr("section",".dynstr")), +Annotation(Region(0x424,0x435), Attr("section",".gnu.version")), +Annotation(Region(0x438,0x467), Attr("section",".gnu.version_r")), +Annotation(Region(0x468,0x527), Attr("section",".rela.dyn")), +Annotation(Region(0x528,0x587), Attr("section",".rela.plt")), +Annotation(Region(0x588,0x59F), Attr("section",".init")), +Annotation(Region(0x5A0,0x5FF), Attr("section",".plt")), +Annotation(Region(0x588,0x59F), 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(0x1FD88,0x2000F), Attr("segment","03 0x1FD88 656")), +Annotation(Region(0x1FD90,0x1FD97), Attr("section",".fini_array")), +Annotation(Region(0x1FD98,0x1FF97), Attr("section",".dynamic")), +Annotation(Region(0x1FD88,0x1FD8F), Attr("section",".init_array")), +Annotation(Region(0x1FF98,0x1FFFF), Attr("section",".got")), +Annotation(Region(0x20000,0x2000F), 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_528, "%000005f8"), Attrs([]), + Subs([Sub(Tid(1_506, "@__cxa_finalize"), Attrs([Attr("address","0x5D0"), +Attr("stub","()"), Attr("c.proto","signed (*)(void)")]), "__cxa_finalize", + Args([Arg(Tid(1_529, "%000005f9"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("__cxa_finalize_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(902, "@__cxa_finalize"), Attrs([Attr("address","0x5D0")]), + Phis([]), Defs([Def(Tid(1_150, "%0000047e"), Attrs([Attr("address","0x5D0"), +Attr("insn","adrp x16, #126976")]), Var("R16",Imm(64)), Int(126976,64)), +Def(Tid(1_157, "%00000485"), 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_163, "%0000048b"), 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_168, "%00000490"), + Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), +(Indirect(Var("R17",Imm(64))),))]))])), +Sub(Tid(1_507, "@__do_global_dtors_aux"), Attrs([Attr("address","0x700"), +Attr("c.proto","signed (*)(void)")]), "__do_global_dtors_aux", + Args([Arg(Tid(1_530, "%000005fa"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("__do_global_dtors_aux_result",Imm(32)), LOW(32,Var("R0",Imm(64))), +Out())]), Blks([Blk(Tid(755, "@__do_global_dtors_aux"), + Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(759, "%000002f7"), + Attrs([Attr("address","0x700"), +Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#5",Imm(64)), +PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), +Def(Tid(765, "%000002fd"), Attrs([Attr("address","0x700"), +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(771, "%00000303"), Attrs([Attr("address","0x700"), +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(775, "%00000307"), Attrs([Attr("address","0x700"), +Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), +Var("#5",Imm(64))), Def(Tid(781, "%0000030d"), + Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), + Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(789, "%00000315"), + 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(794, "%0000031a"), Attrs([Attr("address","0x70C"), +Attr("insn","adrp x19, #131072")]), Var("R19",Imm(64)), Int(131072,64)), +Def(Tid(801, "%00000321"), 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(808, "%00000328"), Attrs([Attr("address","0x714"), +Attr("insn","cbnz w0, #0x28")]), + NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), +Direct(Tid(806, "%00000326"))), Goto(Tid(1_508, "%000005e4"), Attrs([]), + Int(1,1), Direct(Tid(847, "%0000034f")))])), Blk(Tid(847, "%0000034f"), + Attrs([Attr("address","0x718")]), Phis([]), Defs([Def(Tid(850, "%00000352"), + Attrs([Attr("address","0x718"), Attr("insn","adrp x0, #126976")]), + Var("R0",Imm(64)), Int(126976,64)), Def(Tid(857, "%00000359"), + 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(863, "%0000035f"), Attrs([Attr("address","0x720"), +Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), +Direct(Tid(861, "%0000035d"))), Goto(Tid(1_509, "%000005e5"), Attrs([]), + Int(1,1), Direct(Tid(886, "%00000376")))])), Blk(Tid(886, "%00000376"), + Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(889, "%00000379"), + Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #131072")]), + Var("R0",Imm(64)), Int(131072,64)), Def(Tid(896, "%00000380"), + 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(901, "%00000385"), Attrs([Attr("address","0x72C"), +Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), +Jmps([Call(Tid(904, "%00000388"), Attrs([Attr("address","0x72C"), +Attr("insn","bl #-0x15c")]), Int(1,1), +(Direct(Tid(1_506, "@__cxa_finalize")),Direct(Tid(861, "%0000035d"))))])), +Blk(Tid(861, "%0000035d"), Attrs([Attr("address","0x730")]), Phis([]), +Defs([Def(Tid(869, "%00000365"), Attrs([Attr("address","0x730"), +Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(1844,64))]), +Jmps([Call(Tid(871, "%00000367"), Attrs([Attr("address","0x730"), +Attr("insn","bl #-0xa0")]), Int(1,1), +(Direct(Tid(1_520, "@deregister_tm_clones")),Direct(Tid(873, "%00000369"))))])), +Blk(Tid(873, "%00000369"), Attrs([Attr("address","0x734")]), Phis([]), +Defs([Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x734"), +Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), +Def(Tid(884, "%00000374"), 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(806, "%00000326")))])), Blk(Tid(806, "%00000326"), + Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(816, "%00000330"), + 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(823, "%00000337"), 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(828, "%0000033c"), 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(832, "%00000340"), 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(837, "%00000345"), + Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), +(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_511, "@__libc_start_main"), + Attrs([Attr("address","0x5C0"), Attr("stub","()"), +Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)")]), + "__libc_start_main", Args([Arg(Tid(1_531, "%000005fb"), + Attrs([Attr("c.data","Top:u64 ptr ptr"), +Attr("c.layout","**[ : 64]"), +Attr("c.type","signed (*)(signed , char** , char** );*")]), + Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), +Arg(Tid(1_532, "%000005fc"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), +Arg(Tid(1_533, "%000005fd"), Attrs([Attr("c.data","Top:u8 ptr ptr"), +Attr("c.layout","**[char : 8]"), Attr("c.type","char**")]), + Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), +Arg(Tid(1_534, "%000005fe"), Attrs([Attr("c.data","{} ptr"), +Attr("c.layout","*[ : 8]"), Attr("c.type","void*")]), + Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), +Arg(Tid(1_535, "%000005ff"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), +Out())]), Blks([Blk(Tid(588, "@__libc_start_main"), + Attrs([Attr("address","0x5C0")]), Phis([]), +Defs([Def(Tid(1_128, "%00000468"), Attrs([Attr("address","0x5C0"), +Attr("insn","adrp x16, #126976")]), Var("R16",Imm(64)), Int(126976,64)), +Def(Tid(1_135, "%0000046f"), 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_141, "%00000475"), 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_146, "%0000047a"), + Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), +(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_512, "@_fini"), + Attrs([Attr("address","0x754"), Attr("c.proto","signed (*)(void)")]), + "_fini", Args([Arg(Tid(1_536, "%00000600"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("_fini_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(47, "@_fini"), Attrs([Attr("address","0x754")]), Phis([]), +Defs([Def(Tid(53, "%00000035"), 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(59, "%0000003b"), 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(65, "%00000041"), 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(69, "%00000045"), Attrs([Attr("address","0x758"), +Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), +Var("#0",Imm(64))), Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x75C"), +Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), +Def(Tid(82, "%00000052"), 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(87, "%00000057"), 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(91, "%0000005b"), 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(96, "%00000060"), + Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), +(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_513, "@_init"), + Attrs([Attr("address","0x588"), Attr("c.proto","signed (*)(void)")]), + "_init", Args([Arg(Tid(1_537, "%00000601"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), 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","0x588")]), Phis([]), +Defs([Def(Tid(1_338, "%0000053a"), Attrs([Attr("address","0x58C"), +Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), +PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), +Def(Tid(1_344, "%00000540"), Attrs([Attr("address","0x58C"), +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_350, "%00000546"), Attrs([Attr("address","0x58C"), +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_354, "%0000054a"), Attrs([Attr("address","0x58C"), +Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), +Var("#7",Imm(64))), Def(Tid(1_360, "%00000550"), + Attrs([Attr("address","0x590"), Attr("insn","mov x29, sp")]), + Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_365, "%00000555"), + Attrs([Attr("address","0x594"), Attr("insn","bl #0xe0")]), + Var("R30",Imm(64)), Int(1432,64))]), Jmps([Call(Tid(1_367, "%00000557"), + Attrs([Attr("address","0x594"), Attr("insn","bl #0xe0")]), Int(1,1), +(Direct(Tid(1_518, "@call_weak_fn")),Direct(Tid(1_369, "%00000559"))))])), +Blk(Tid(1_369, "%00000559"), Attrs([Attr("address","0x598")]), Phis([]), +Defs([Def(Tid(1_374, "%0000055e"), Attrs([Attr("address","0x598"), +Attr("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","0x598"), +Attr("insn","ldp x29, x30, [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","0x598"), +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","0x59C"), Attr("insn","ret")]), Int(1,1), +(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_514, "@_start"), + Attrs([Attr("address","0x640"), Attr("entry-point","()"), +Attr("c.proto","signed (*)(void)")]), "_start", + Args([Arg(Tid(1_538, "%00000602"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(525, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), +Defs([Def(Tid(530, "%00000212"), Attrs([Attr("address","0x644"), +Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), +Def(Tid(535, "%00000217"), Attrs([Attr("address","0x648"), +Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), +Def(Tid(541, "%0000021d"), Attrs([Attr("address","0x64C"), +Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), +Def(Tid(548, "%00000224"), 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(554, "%0000022a"), Attrs([Attr("address","0x654"), +Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), +PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(560, "%00000230"), + Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), + Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(565, "%00000235"), + Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #126976")]), + Var("R0",Imm(64)), Int(126976,64)), Def(Tid(572, "%0000023c"), + 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(577, "%00000241"), Attrs([Attr("address","0x664"), +Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), +Def(Tid(582, "%00000246"), Attrs([Attr("address","0x668"), +Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), +Def(Tid(587, "%0000024b"), Attrs([Attr("address","0x66C"), +Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), +Jmps([Call(Tid(590, "%0000024e"), Attrs([Attr("address","0x66C"), +Attr("insn","bl #-0xac")]), Int(1,1), +(Direct(Tid(1_511, "@__libc_start_main")),Direct(Tid(592, "%00000250"))))])), +Blk(Tid(592, "%00000250"), Attrs([Attr("address","0x670")]), Phis([]), +Defs([Def(Tid(595, "%00000253"), Attrs([Attr("address","0x670"), +Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), +Jmps([Call(Tid(598, "%00000256"), Attrs([Attr("address","0x670"), +Attr("insn","bl #-0x80")]), Int(1,1), +(Direct(Tid(1_517, "@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_518, "@call_weak_fn")),))]))])), Sub(Tid(1_517, "@abort"), + Attrs([Attr("address","0x5F0"), Attr("stub","()"), Attr("noreturn","()"), +Attr("c.proto","void (*)(void)")]), "abort", Args([]), +Blks([Blk(Tid(596, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), +Defs([Def(Tid(1_194, "%000004aa"), Attrs([Attr("address","0x5F0"), +Attr("insn","adrp x16, #126976")]), Var("R16",Imm(64)), Int(126976,64)), +Def(Tid(1_201, "%000004b1"), 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_207, "%000004b7"), 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_212, "%000004bc"), + Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), +(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_518, "@call_weak_fn"), + Attrs([Attr("address","0x674"), Attr("c.proto","signed (*)(void)")]), + "call_weak_fn", Args([Arg(Tid(1_539, "%00000603"), + Attrs([Attr("c.data","Top:u32"), Attr("c.layout","[signed : 32]"), +Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), +LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(600, "@call_weak_fn"), + Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(603, "%0000025b"), + Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #126976")]), + Var("R0",Imm(64)), Int(126976,64)), Def(Tid(610, "%00000262"), + 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(616, "%00000268"), Attrs([Attr("address","0x67C"), +Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), +Direct(Tid(614, "%00000266"))), Goto(Tid(1_519, "%000005ef"), Attrs([]), + Int(1,1), Direct(Tid(966, "%000003c6")))])), Blk(Tid(614, "%00000266"), + Attrs([Attr("address","0x684")]), Phis([]), Defs([]), +Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x684"), +Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), +Blk(Tid(966, "%000003c6"), Attrs([Attr("address","0x680")]), Phis([]), +Defs([]), Jmps([Goto(Tid(969, "%000003c9"), Attrs([Attr("address","0x680"), +Attr("insn","b #-0xa0")]), Int(1,1), Direct(Tid(967, "@__gmon_start__")))])), +Blk(Tid(967, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), +Defs([Def(Tid(1_172, "%00000494"), Attrs([Attr("address","0x5E0"), +Attr("insn","adrp x16, #126976")]), Var("R16",Imm(64)), Int(126976,64)), +Def(Tid(1_179, "%0000049b"), 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_185, "%000004a1"), 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_190, "%000004a6"), + Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), +(Indirect(Var("R17",Imm(64))),))]))])), +Sub(Tid(1_520, "@deregister_tm_clones"), Attrs([Attr("address","0x690"), +Attr("c.proto","signed (*)(void)")]), "deregister_tm_clones", + Args([Arg(Tid(1_540, "%00000604"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("deregister_tm_clones_result",Imm(32)), LOW(32,Var("R0",Imm(64))), +Out())]), Blks([Blk(Tid(628, "@deregister_tm_clones"), + Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(631, "%00000277"), + Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #131072")]), + Var("R0",Imm(64)), Int(131072,64)), Def(Tid(637, "%0000027d"), + Attrs([Attr("address","0x694"), Attr("insn","add x0, x0, #0x10")]), + Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), +Def(Tid(642, "%00000282"), Attrs([Attr("address","0x698"), +Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), +Def(Tid(648, "%00000288"), Attrs([Attr("address","0x69C"), +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","0x6A0"), Attr("insn","cmp x1, x0")]), + Var("#3",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(659, "%00000293"), + Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), + Var("#4",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), +Def(Tid(665, "%00000299"), Attrs([Attr("address","0x6A0"), +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(671, "%0000029f"), Attrs([Attr("address","0x6A0"), +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(675, "%000002a3"), Attrs([Attr("address","0x6A0"), +Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), +EQ(PLUS(Var("#4",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(679, "%000002a7"), + Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), + Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#4",Imm(64)),Int(1,64))))]), +Jmps([Goto(Tid(685, "%000002ad"), Attrs([Attr("address","0x6A4"), +Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), +Direct(Tid(683, "%000002ab"))), Goto(Tid(1_521, "%000005f1"), Attrs([]), + Int(1,1), Direct(Tid(936, "%000003a8")))])), Blk(Tid(936, "%000003a8"), + Attrs([Attr("address","0x6A8")]), Phis([]), Defs([Def(Tid(939, "%000003ab"), + Attrs([Attr("address","0x6A8"), Attr("insn","adrp x1, #126976")]), + Var("R1",Imm(64)), Int(126976,64)), Def(Tid(946, "%000003b2"), + 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(951, "%000003b7"), Attrs([Attr("address","0x6B0"), +Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), +Direct(Tid(683, "%000002ab"))), Goto(Tid(1_522, "%000005f2"), Attrs([]), + Int(1,1), Direct(Tid(955, "%000003bb")))])), Blk(Tid(683, "%000002ab"), + Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), +Jmps([Call(Tid(691, "%000002b3"), Attrs([Attr("address","0x6BC"), +Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), +Blk(Tid(955, "%000003bb"), Attrs([Attr("address","0x6B4")]), Phis([]), +Defs([Def(Tid(959, "%000003bf"), Attrs([Attr("address","0x6B4"), +Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), +Jmps([Call(Tid(964, "%000003c4"), Attrs([Attr("address","0x6B8"), +Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), +Sub(Tid(1_523, "@frame_dummy"), Attrs([Attr("address","0x750"), +Attr("c.proto","signed (*)(void)")]), "frame_dummy", + Args([Arg(Tid(1_541, "%00000605"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("frame_dummy_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(843, "@frame_dummy"), Attrs([Attr("address","0x750")]), + Phis([]), Defs([]), Jmps([Call(Tid(845, "%0000034d"), + Attrs([Attr("address","0x750"), Attr("insn","b #-0x90")]), Int(1,1), +(Direct(Tid(1_525, "@register_tm_clones")),))]))])), Sub(Tid(1_524, "@main"), + Attrs([Attr("address","0x600"), Attr("stub","()"), +Attr("c.proto","signed (*)(signed argc, const char** argv)")]), "main", + Args([Arg(Tid(1_542, "%00000606"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), +Arg(Tid(1_543, "%00000607"), Attrs([Attr("c.data","Top:u8 ptr ptr"), +Attr("c.layout","**[char : 8]"), Attr("c.type"," const char**")]), + Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), +Arg(Tid(1_544, "%00000608"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(440, "@main"), Attrs([Attr("address","0x600")]), Phis([]), +Defs([Def(Tid(444, "%000001bc"), Attrs([Attr("address","0x600"), +Attr("insn","and w1, w1, #0xff")]), Var("R1",Imm(64)), +UNSIGNED(64,Concat(Int(0,24),Extract(7,0,Var("R1",Imm(64)))))), +Def(Tid(450, "%000001c2"), Attrs([Attr("address","0x604"), +Attr("insn","and w0, w0, #0xff")]), Var("R0",Imm(64)), +UNSIGNED(64,Concat(Int(0,24),Extract(7,0,Var("R0",Imm(64)))))), +Def(Tid(456, "%000001c8"), Attrs([Attr("address","0x608"), +Attr("insn","cmp x0, x1")]), Var("#1",Imm(64)), NOT(Var("R1",Imm(64)))), +Def(Tid(461, "%000001cd"), Attrs([Attr("address","0x608"), +Attr("insn","cmp x0, x1")]), Var("#2",Imm(64)), +PLUS(Var("R0",Imm(64)),NOT(Var("R1",Imm(64))))), Def(Tid(467, "%000001d3"), + Attrs([Attr("address","0x608"), Attr("insn","cmp x0, x1")]), + Var("VF",Imm(1)), +NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R0",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), +Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x608"), +Attr("insn","cmp x0, x1")]), Var("CF",Imm(1)), +NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R0",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), +Def(Tid(477, "%000001dd"), Attrs([Attr("address","0x608"), +Attr("insn","cmp x0, x1")]), Var("ZF",Imm(1)), +EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(481, "%000001e1"), + Attrs([Attr("address","0x608"), Attr("insn","cmp x0, x1")]), + Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), +Jmps([Goto(Tid(493, "%000001ed"), Attrs([Attr("address","0x60C"), +Attr("insn","cset x0, eq")]), NEQ(Var("ZF",Imm(1)),Int(1,1)), +Direct(Tid(486, "%000001e6"))), Goto(Tid(494, "%000001ee"), + Attrs([Attr("address","0x60C"), Attr("insn","cset x0, eq")]), Int(1,1), +Direct(Tid(489, "%000001e9")))])), Blk(Tid(489, "%000001e9"), Attrs([]), + Phis([]), Defs([Def(Tid(490, "%000001ea"), Attrs([Attr("address","0x60C"), +Attr("insn","cset x0, eq")]), Var("R0",Imm(64)), Int(1,64))]), +Jmps([Goto(Tid(496, "%000001f0"), Attrs([Attr("address","0x60C"), +Attr("insn","cset x0, eq")]), Int(1,1), Direct(Tid(492, "%000001ec")))])), +Blk(Tid(486, "%000001e6"), Attrs([]), Phis([]), +Defs([Def(Tid(487, "%000001e7"), Attrs([Attr("address","0x60C"), +Attr("insn","cset x0, eq")]), Var("R0",Imm(64)), Int(0,64))]), +Jmps([Goto(Tid(495, "%000001ef"), Attrs([Attr("address","0x60C"), +Attr("insn","cset x0, eq")]), Int(1,1), Direct(Tid(492, "%000001ec")))])), +Blk(Tid(492, "%000001ec"), Attrs([]), Phis([]), Defs([]), +Jmps([Call(Tid(501, "%000001f5"), Attrs([Attr("address","0x610"), +Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), +Sub(Tid(1_525, "@register_tm_clones"), Attrs([Attr("address","0x6C0"), +Attr("c.proto","signed (*)(void)")]), "register_tm_clones", + Args([Arg(Tid(1_545, "%00000609"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("register_tm_clones_result",Imm(32)), LOW(32,Var("R0",Imm(64))), +Out())]), Blks([Blk(Tid(693, "@register_tm_clones"), + Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(696, "%000002b8"), + Attrs([Attr("address","0x6C0"), Attr("insn","adrp x0, #131072")]), + Var("R0",Imm(64)), Int(131072,64)), Def(Tid(702, "%000002be"), + Attrs([Attr("address","0x6C4"), Attr("insn","add x0, x0, #0x10")]), + Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), +Def(Tid(707, "%000002c3"), Attrs([Attr("address","0x6C8"), +Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), +Def(Tid(713, "%000002c9"), Attrs([Attr("address","0x6CC"), +Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), +PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(720, "%000002d0"), + 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(726, "%000002d6"), 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(733, "%000002dd"), 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(739, "%000002e3"), 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(745, "%000002e9"), Attrs([Attr("address","0x6E0"), +Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), +Direct(Tid(743, "%000002e7"))), Goto(Tid(1_526, "%000005f6"), Attrs([]), + Int(1,1), Direct(Tid(906, "%0000038a")))])), Blk(Tid(906, "%0000038a"), + Attrs([Attr("address","0x6E4")]), Phis([]), Defs([Def(Tid(909, "%0000038d"), + Attrs([Attr("address","0x6E4"), Attr("insn","adrp x2, #126976")]), + Var("R2",Imm(64)), Int(126976,64)), Def(Tid(916, "%00000394"), + 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(921, "%00000399"), Attrs([Attr("address","0x6EC"), +Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), +Direct(Tid(743, "%000002e7"))), Goto(Tid(1_527, "%000005f7"), Attrs([]), + Int(1,1), Direct(Tid(925, "%0000039d")))])), Blk(Tid(743, "%000002e7"), + Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), +Jmps([Call(Tid(751, "%000002ef"), Attrs([Attr("address","0x6F8"), +Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), +Blk(Tid(925, "%0000039d"), Attrs([Attr("address","0x6F0")]), Phis([]), +Defs([Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x6F0"), +Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), +Jmps([Call(Tid(934, "%000003a6"), 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/examples/cset/cset.c b/examples/cset/cset.c new file mode 100644 index 000000000..c8e58f3da --- /dev/null +++ b/examples/cset/cset.c @@ -0,0 +1,13 @@ +int main(int argc, char** argv) { + int x = (char)argc; + int y = (char)argv; + int out = 0; + // sets `out` to true iff (char)argc == (char) argv. + asm ( + "cmp %1, %2\n" + "cset %0, EQ" + : "=r"(out) + : "r"(x) , "r" (y) + ); + return out; +} \ No newline at end of file diff --git a/examples/cset/cset.gts b/examples/cset/cset.gts new file mode 100644 index 000000000..9ee329590 Binary files /dev/null and b/examples/cset/cset.gts differ diff --git a/examples/cset/cset.relf b/examples/cset/cset.relf new file mode 100644 index 000000000..d0ccf65e5 --- /dev/null +++ b/examples/cset/cset.relf @@ -0,0 +1,127 @@ + +Relocation section '.rela.dyn' at offset 0x468 contains 8 entries: + Offset Info Type Symbol's Value Symbol's Name + Addend +000000000001fd88 0000000000000403 R_AARCH64_RELATIVE 750 +000000000001fd90 0000000000000403 R_AARCH64_RELATIVE 700 +000000000001fff0 0000000000000403 R_AARCH64_RELATIVE 600 +0000000000020008 0000000000000403 R_AARCH64_RELATIVE 20008 +000000000001ffd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 +000000000001ffe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 +000000000001ffe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 +000000000001fff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 + +Relocation section '.rela.plt' at offset 0x528 contains 4 entries: + Offset Info Type Symbol's Value Symbol's Name + Addend +000000000001ffb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 +000000000001ffb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 +000000000001ffc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 +000000000001ffc8 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: 0000000000000588 0 SECTION LOCAL DEFAULT 11 .init + 2: 0000000000020000 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: 0000000000000424 0 SECTION LOCAL DEFAULT 7 .gnu.version + 8: 0000000000000438 0 SECTION LOCAL DEFAULT 8 .gnu.version_r + 9: 0000000000000468 0 SECTION LOCAL DEFAULT 9 .rela.dyn + 10: 0000000000000528 0 SECTION LOCAL DEFAULT 10 .rela.plt + 11: 0000000000000588 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: 000000000001fd88 0 SECTION LOCAL DEFAULT 18 .init_array + 19: 000000000001fd90 0 SECTION LOCAL DEFAULT 19 .fini_array + 20: 000000000001fd98 0 SECTION LOCAL DEFAULT 20 .dynamic + 21: 000000000001ff98 0 SECTION LOCAL DEFAULT 21 .got + 22: 0000000000020000 0 SECTION LOCAL DEFAULT 22 .data + 23: 0000000000020010 0 SECTION LOCAL DEFAULT 23 .bss + 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment + 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .debug_aranges + 26: 0000000000000000 0 SECTION LOCAL DEFAULT 26 .debug_info + 27: 0000000000000000 0 SECTION LOCAL DEFAULT 27 .debug_abbrev + 28: 0000000000000000 0 SECTION LOCAL DEFAULT 28 .debug_line + 29: 0000000000000000 0 SECTION LOCAL DEFAULT 29 .debug_str + 30: 0000000000000000 0 SECTION LOCAL DEFAULT 30 .debug_line_str + 31: 0000000000000000 0 SECTION LOCAL DEFAULT 31 .debug_loclists + 32: 0000000000000000 0 SECTION LOCAL DEFAULT 32 .debug_rnglists + 33: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o + 34: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d + 35: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag + 36: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x + 37: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d + 38: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d + 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o + 40: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x + 41: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn + 42: 0000000000000588 0 NOTYPE LOCAL DEFAULT 11 $x + 43: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x + 44: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o + 45: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x + 46: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x + 47: 0000000000000000 0 FILE LOCAL DEFAULT ABS example.c + 48: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x + 49: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d + 50: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c + 51: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x + 52: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones + 53: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones + 54: 0000000000020008 0 NOTYPE LOCAL DEFAULT 22 $d + 55: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux + 56: 0000000000020010 1 OBJECT LOCAL DEFAULT 23 completed.0 + 57: 000000000001fd90 0 NOTYPE LOCAL DEFAULT 19 $d + 58: 000000000001fd90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry + 59: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy + 60: 000000000001fd88 0 NOTYPE LOCAL DEFAULT 18 $d + 61: 000000000001fd88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry + 62: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d + 63: 0000000000020010 0 NOTYPE LOCAL DEFAULT 23 $d + 64: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c + 65: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d + 66: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ + 67: 0000000000000000 0 FILE LOCAL DEFAULT ABS + 68: 000000000001fd98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC + 69: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR + 70: 000000000001ffd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + 71: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x + 72: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 + 73: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable + 74: 0000000000020000 0 NOTYPE WEAK DEFAULT 22 data_start + 75: 0000000000020010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ + 76: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 + 77: 0000000000020018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ + 78: 0000000000020010 0 NOTYPE GLOBAL DEFAULT 22 _edata + 79: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini + 80: 0000000000020018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ + 81: 0000000000020000 0 NOTYPE GLOBAL DEFAULT 22 __data_start + 82: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ + 83: 0000000000020008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle + 84: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 + 85: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used + 86: 0000000000020018 0 NOTYPE GLOBAL DEFAULT 23 _end + 87: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start + 88: 0000000000020018 0 NOTYPE GLOBAL DEFAULT 23 __end__ + 89: 0000000000020010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start + 90: 0000000000000600 20 FUNC GLOBAL DEFAULT 13 main + 91: 0000000000020010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ + 92: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable + 93: 0000000000000588 0 FUNC GLOBAL HIDDEN 11 _init \ No newline at end of file diff --git a/examples/multiCse/multiCse.adt b/examples/multiCse/multiCse.adt new file mode 100644 index 000000000..59e39b5e8 --- /dev/null +++ b/examples/multiCse/multiCse.adt @@ -0,0 +1,529 @@ +Project(Attrs([Attr("filename","/tmp/tmp4m3b4o11/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 1416 24 1416)\n(code-start 1652)\n(code-start 1600)\n(code-start 1536)\n(entry-point 1600)\n(external-reference 131032 _ITM_deregisterTMCloneTable)\n(external-reference 131040 __cxa_finalize)\n(external-reference 131048 __gmon_start__)\n(external-reference 131064 _ITM_registerTMCloneTable)\n(external-reference 130992 __libc_start_main)\n(external-reference 131000 __cxa_finalize)\n(external-reference 131008 __gmon_start__)\n(external-reference 131016 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 1416 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 1416 24)\n(llvm:elf-program-header 08 64904 632)\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 64920 512)\n(llvm:elf-program-header 03 64904 648)\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 130440 632)\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 130456 512)\n(llvm:elf-virtual-program-header 03 130440 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 131016 abort)\n(llvm:name-reference 131008 __gmon_start__)\n(llvm:name-reference 131000 __cxa_finalize)\n(llvm:name-reference 130992 __libc_start_main)\n(llvm:name-reference 131064 _ITM_registerTMCloneTable)\n(llvm:name-reference 131048 __gmon_start__)\n(llvm:name-reference 131040 __cxa_finalize)\n(llvm:name-reference 131032 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 362 69351)\n(llvm:section-entry .strtab 0 543 68808)\n(llvm:section-entry .symtab 0 2256 66552)\n(llvm:section-entry .debug_rnglists 0 23 66524)\n(llvm:section-entry .debug_loclists 0 168 66356)\n(llvm:section-entry .debug_line_str 0 122 66234)\n(llvm:section-entry .debug_str 0 175 66059)\n(llvm:section-entry .debug_line 0 96 65963)\n(llvm:section-entry .debug_abbrev 0 125 65838)\n(llvm:section-entry .debug_info 0 195 65643)\n(llvm:section-entry .debug_aranges 0 48 65595)\n(llvm:section-entry .comment 0 43 65552)\n(llvm:section-entry .bss 131088 8 65552)\n(llvm:section-entry .data 131072 16 65536)\n(llvm:section-entry .got 130968 104 65432)\n(llvm:section-entry .dynamic 130456 512 64920)\n(llvm:section-entry .fini_array 130448 8 64912)\n(llvm:section-entry .init_array 130440 8 64904)\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 1416 24 1416)\n(llvm:section-entry .rela.plt 1320 96 1320)\n(llvm:section-entry .rela.dyn 1128 192 1128)\n(llvm:section-entry .gnu.version_r 1080 48 1080)\n(llvm:section-entry .gnu.version 1060 18 1060)\n(llvm:section-entry .dynstr 912 147 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 .debug_rnglists true false false)\n(llvm:section-flags .debug_loclists true false false)\n(llvm:section-flags .debug_line_str true false false)\n(llvm:section-flags .debug_str true false false)\n(llvm:section-flags .debug_line true false false)\n(llvm:section-flags .debug_abbrev true false false)\n(llvm:section-flags .debug_info true false false)\n(llvm:section-flags .debug_aranges 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 1416 0 1416 1416)\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 130440 648 64904)\n(named-region 0 2120 02)\n(named-region 130440 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 147 .dynstr)\n(named-region 1060 18 .gnu.version)\n(named-region 1080 48 .gnu.version_r)\n(named-region 1128 192 .rela.dyn)\n(named-region 1320 96 .rela.plt)\n(named-region 1416 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 130440 8 .init_array)\n(named-region 130448 8 .fini_array)\n(named-region 130456 512 .dynamic)\n(named-region 130968 104 .got)\n(named-region 131072 16 .data)\n(named-region 131088 8 .bss)\n(named-region 0 43 .comment)\n(named-region 0 48 .debug_aranges)\n(named-region 0 195 .debug_info)\n(named-region 0 125 .debug_abbrev)\n(named-region 0 96 .debug_line)\n(named-region 0 175 .debug_str)\n(named-region 0 122 .debug_line_str)\n(named-region 0 168 .debug_loclists)\n(named-region 0 23 .debug_rnglists)\n(named-region 0 2256 .symtab)\n(named-region 0 543 .strtab)\n(named-region 0 362 .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 1416 _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 147)\n(section 1060 18)\n(section 1080 48)\n(section 1128 192)\n(section 1320 96)\n(section 1416 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 130440 8)\n(section 130448 8)\n(section 130456 512)\n(section 130968 104)\n(section 131072 16)\n(section 131088 8)\n(section 0 43)\n(section 0 48)\n(section 0 195)\n(section 0 125)\n(section 0 96)\n(section 0 175)\n(section 0 122)\n(section 0 168)\n(section 0 23)\n(section 0 2256)\n(section 0 543)\n(section 0 362)\n(segment 0 2120 true false true)\n(segment 130440 656 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 1416 1416)\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\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\x88\xfd\x00\x00\x00\x00\x00\x00\x88\xfd\x01\x00\x00\x00\x00\x00\x88\xfd\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\xfd\x00\x00\x00\x00\x00\x00\x98\xfd\x01\x00\x00\x00\x00\x00\x98\xfd\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"), +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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\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\x88\xfd\x00\x00\x00\x00\x00\x00\x88\xfd\x01\x00\x00\x00\x00\x00\x88\xfd\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\xfd\x00\x00\x00\x00\x00\x00\x98\xfd\x01\x00\x00\x00\x00\x00\x98\xfd\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\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\x88\xfd\x00\x00\x00\x00\x00\x00\x88\xfd\x01\x00\x00\x00\x00\x00\x88\xfd\x01\x00\x00\x00\x00"), +Section(".debug_rnglists", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00"), +Section(".debug_loclists", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00"), +Section(".debug_line_str", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00"), +Section(".debug_str", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00"), +Section(".debug_line", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00"), +Section(".debug_abbrev", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04"), +Section(".debug_info", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x24\x00\x23\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), +Section(".debug_aranges", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\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\x10\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\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x10\x01"), +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\x36\xe0\x78\x5f\x82\x6c\x86\x21\xc6\x93\x67\x96\xfa\xdf\x45\x71\x6f\xe9\x6f\x5a"), +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\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x16\x00\x00\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\x4e\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\x6a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x79\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\x2e\x2f\x6c\x69\x62\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\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", 0x424, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), +Section(".gnu.version_r", 0x438, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\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", 0x468, "\x88\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x50\x07\x00\x00\x00\x00\x00\x00\x90\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\xf0\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\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", 0x528, "\xb0\xff\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xff\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), +Section(".init", 0x588, "\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", 0x5A0, "\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xd6\x47\xf9\x10\xa2\x3e\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xf0\x00\x00\xf0\x11\xda\x47\xf9\x10\xc2\x3e\x91\x20\x02\x1f\xd6\xf0\x00\x00\xf0\x11\xde\x47\xf9\x10\xe2\x3e\x91\x20\x02\x1f\xd6\xf0\x00\x00\xf0\x11\xe2\x47\xf9\x10\x02\x3f\x91\x20\x02\x1f\xd6\xf0\x00\x00\xf0\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", 0x1FD90, "\x00\x07\x00\x00\x00\x00\x00\x00"), +Section(".dynamic", 0x1FD98, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x88\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\x88\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\x90\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\x93\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\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\x28\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x68\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\x38\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\x24\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", 0x1FD88, "\x50\x07\x00\x00\x00\x00\x00\x00"), +Section(".got", 0x1FF98, "\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\x98\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(".data", 0x20000, "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00"), +Section(".text", 0x600, "\x21\x1c\x40\x92\x00\x1c\x40\x92\x00\x00\x01\xab\x00\x00\x01\xab\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\xe0\x00\x00\xf0\x00\xf8\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe0\xff\xff\x97\xe0\x00\x00\xf0\x00\xf4\x47\xf9\x40\x00\x00\xb4\xd8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\x40\x00\x91\x01\x01\x00\x90\x21\x40\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xec\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\x40\x00\x91\x01\x01\x00\x90\x21\x40\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\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\x13\x01\x00\x90\x60\x42\x40\x39\x40\x01\x00\x35\xe0\x00\x00\xf0\x00\xf0\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\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,0x169), Attr("section",".shstrtab")), +Annotation(Region(0x0,0x21E), Attr("section",".strtab")), +Annotation(Region(0x0,0x16), Attr("section",".debug_rnglists")), +Annotation(Region(0x0,0xA7), Attr("section",".debug_loclists")), +Annotation(Region(0x0,0x79), Attr("section",".debug_line_str")), +Annotation(Region(0x0,0xAE), Attr("section",".debug_str")), +Annotation(Region(0x0,0x5F), Attr("section",".debug_line")), +Annotation(Region(0x0,0x7C), Attr("section",".debug_abbrev")), +Annotation(Region(0x0,0xC2), Attr("section",".debug_info")), +Annotation(Region(0x0,0x2F), Attr("section",".debug_aranges")), +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,0x422), Attr("section",".dynstr")), +Annotation(Region(0x424,0x435), Attr("section",".gnu.version")), +Annotation(Region(0x438,0x467), Attr("section",".gnu.version_r")), +Annotation(Region(0x468,0x527), Attr("section",".rela.dyn")), +Annotation(Region(0x528,0x587), Attr("section",".rela.plt")), +Annotation(Region(0x588,0x59F), Attr("section",".init")), +Annotation(Region(0x5A0,0x5FF), Attr("section",".plt")), +Annotation(Region(0x588,0x59F), 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(0x1FD88,0x2000F), Attr("segment","03 0x1FD88 656")), +Annotation(Region(0x1FD90,0x1FD97), Attr("section",".fini_array")), +Annotation(Region(0x1FD98,0x1FF97), Attr("section",".dynamic")), +Annotation(Region(0x1FD88,0x1FD8F), Attr("section",".init_array")), +Annotation(Region(0x1FF98,0x1FFFF), Attr("section",".got")), +Annotation(Region(0x20000,0x2000F), 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_544, "%00000608"), Attrs([]), + Subs([Sub(Tid(1_522, "@__cxa_finalize"), Attrs([Attr("address","0x5D0"), +Attr("stub","()"), Attr("c.proto","signed (*)(void)")]), "__cxa_finalize", + Args([Arg(Tid(1_545, "%00000609"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), 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","0x5D0")]), + Phis([]), Defs([Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x5D0"), +Attr("insn","adrp x16, #126976")]), Var("R16",Imm(64)), Int(126976,64)), +Def(Tid(1_173, "%00000495"), 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_179, "%0000049b"), 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_184, "%000004a0"), + Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), +(Indirect(Var("R17",Imm(64))),))]))])), +Sub(Tid(1_523, "@__do_global_dtors_aux"), Attrs([Attr("address","0x700"), +Attr("c.proto","signed (*)(void)")]), "__do_global_dtors_aux", + Args([Arg(Tid(1_546, "%0000060a"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("__do_global_dtors_aux_result",Imm(32)), LOW(32,Var("R0",Imm(64))), +Out())]), Blks([Blk(Tid(771, "@__do_global_dtors_aux"), + Attrs([Attr("address","0x700")]), Phis([]), Defs([Def(Tid(775, "%00000307"), + Attrs([Attr("address","0x700"), +Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#5",Imm(64)), +PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), +Def(Tid(781, "%0000030d"), Attrs([Attr("address","0x700"), +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(787, "%00000313"), Attrs([Attr("address","0x700"), +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(791, "%00000317"), Attrs([Attr("address","0x700"), +Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), +Var("#5",Imm(64))), Def(Tid(797, "%0000031d"), + Attrs([Attr("address","0x704"), Attr("insn","mov x29, sp")]), + Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(805, "%00000325"), + 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(810, "%0000032a"), Attrs([Attr("address","0x70C"), +Attr("insn","adrp x19, #131072")]), Var("R19",Imm(64)), Int(131072,64)), +Def(Tid(817, "%00000331"), 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(824, "%00000338"), Attrs([Attr("address","0x714"), +Attr("insn","cbnz w0, #0x28")]), + NEQ(Extract(31,0,Var("R0",Imm(64))),Int(0,32)), +Direct(Tid(822, "%00000336"))), Goto(Tid(1_524, "%000005f4"), 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, #126976")]), + Var("R0",Imm(64)), Int(126976,64)), Def(Tid(873, "%00000369"), + 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(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_525, "%000005f5"), 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, #131072")]), + Var("R0",Imm(64)), Int(131072,64)), Def(Tid(912, "%00000390"), + 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(917, "%00000395"), Attrs([Attr("address","0x72C"), +Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(1840,64))]), +Jmps([Call(Tid(920, "%00000398"), Attrs([Attr("address","0x72C"), +Attr("insn","bl #-0x15c")]), Int(1,1), +(Direct(Tid(1_522, "@__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_536, "@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, #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_526, "%000005f6"), Attrs([]), Int(1,1), +Direct(Tid(822, "%00000336")))])), Blk(Tid(822, "%00000336"), + Attrs([Attr("address","0x73C")]), Phis([]), Defs([Def(Tid(832, "%00000340"), + 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(839, "%00000347"), 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(844, "%0000034c"), 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(848, "%00000350"), 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(853, "%00000355"), + Attrs([Attr("address","0x744"), Attr("insn","ret")]), Int(1,1), +(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_527, "@__libc_start_main"), + Attrs([Attr("address","0x5C0"), Attr("stub","()"), +Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)")]), + "__libc_start_main", Args([Arg(Tid(1_547, "%0000060b"), + Attrs([Attr("c.data","Top:u64 ptr ptr"), +Attr("c.layout","**[ : 64]"), +Attr("c.type","signed (*)(signed , char** , char** );*")]), + Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), +Arg(Tid(1_548, "%0000060c"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), +Arg(Tid(1_549, "%0000060d"), Attrs([Attr("c.data","Top:u8 ptr ptr"), +Attr("c.layout","**[char : 8]"), Attr("c.type","char**")]), + Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), +Arg(Tid(1_550, "%0000060e"), Attrs([Attr("c.data","{} ptr"), +Attr("c.layout","*[ : 8]"), Attr("c.type","void*")]), + Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), +Arg(Tid(1_551, "%0000060f"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), +Out())]), Blks([Blk(Tid(604, "@__libc_start_main"), + Attrs([Attr("address","0x5C0")]), Phis([]), +Defs([Def(Tid(1_144, "%00000478"), Attrs([Attr("address","0x5C0"), +Attr("insn","adrp x16, #126976")]), Var("R16",Imm(64)), Int(126976,64)), +Def(Tid(1_151, "%0000047f"), 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_157, "%00000485"), 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_162, "%0000048a"), + Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), +(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_528, "@_fini"), + Attrs([Attr("address","0x754"), Attr("c.proto","signed (*)(void)")]), + "_fini", Args([Arg(Tid(1_552, "%00000610"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("_fini_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(47, "@_fini"), Attrs([Attr("address","0x754")]), Phis([]), +Defs([Def(Tid(53, "%00000035"), 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(59, "%0000003b"), 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(65, "%00000041"), 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(69, "%00000045"), Attrs([Attr("address","0x758"), +Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), +Var("#0",Imm(64))), Def(Tid(75, "%0000004b"), Attrs([Attr("address","0x75C"), +Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), +Def(Tid(82, "%00000052"), 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(87, "%00000057"), 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(91, "%0000005b"), 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(96, "%00000060"), + Attrs([Attr("address","0x764"), Attr("insn","ret")]), Int(1,1), +(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_529, "@_init"), + Attrs([Attr("address","0x588"), Attr("c.proto","signed (*)(void)")]), + "_init", Args([Arg(Tid(1_553, "%00000611"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("_init_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(1_348, "@_init"), Attrs([Attr("address","0x588")]), Phis([]), +Defs([Def(Tid(1_354, "%0000054a"), Attrs([Attr("address","0x58C"), +Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#7",Imm(64)), +PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), +Def(Tid(1_360, "%00000550"), Attrs([Attr("address","0x58C"), +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_366, "%00000556"), Attrs([Attr("address","0x58C"), +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_370, "%0000055a"), Attrs([Attr("address","0x58C"), +Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), +Var("#7",Imm(64))), Def(Tid(1_376, "%00000560"), + Attrs([Attr("address","0x590"), Attr("insn","mov x29, sp")]), + Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_381, "%00000565"), + Attrs([Attr("address","0x594"), Attr("insn","bl #0xe0")]), + Var("R30",Imm(64)), Int(1432,64))]), Jmps([Call(Tid(1_383, "%00000567"), + Attrs([Attr("address","0x594"), Attr("insn","bl #0xe0")]), Int(1,1), +(Direct(Tid(1_534, "@call_weak_fn")),Direct(Tid(1_385, "%00000569"))))])), +Blk(Tid(1_385, "%00000569"), Attrs([Attr("address","0x598")]), Phis([]), +Defs([Def(Tid(1_390, "%0000056e"), Attrs([Attr("address","0x598"), +Attr("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_395, "%00000573"), Attrs([Attr("address","0x598"), +Attr("insn","ldp x29, x30, [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_399, "%00000577"), Attrs([Attr("address","0x598"), +Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), +PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_404, "%0000057c"), + Attrs([Attr("address","0x59C"), Attr("insn","ret")]), Int(1,1), +(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_530, "@_start"), + Attrs([Attr("address","0x640"), Attr("entry-point","()"), +Attr("c.proto","signed (*)(void)")]), "_start", + Args([Arg(Tid(1_554, "%00000612"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("_start_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(541, "@_start"), Attrs([Attr("address","0x640")]), Phis([]), +Defs([Def(Tid(546, "%00000222"), Attrs([Attr("address","0x644"), +Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), +Def(Tid(551, "%00000227"), Attrs([Attr("address","0x648"), +Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), +Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x64C"), +Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), +Def(Tid(564, "%00000234"), 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(570, "%0000023a"), Attrs([Attr("address","0x654"), +Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), +PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(576, "%00000240"), + Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), + Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(581, "%00000245"), + Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #126976")]), + Var("R0",Imm(64)), Int(126976,64)), Def(Tid(588, "%0000024c"), + 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(593, "%00000251"), Attrs([Attr("address","0x664"), +Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), +Def(Tid(598, "%00000256"), Attrs([Attr("address","0x668"), +Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), +Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x66C"), +Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(1648,64))]), +Jmps([Call(Tid(606, "%0000025e"), Attrs([Attr("address","0x66C"), +Attr("insn","bl #-0xac")]), Int(1,1), +(Direct(Tid(1_527, "@__libc_start_main")),Direct(Tid(608, "%00000260"))))])), +Blk(Tid(608, "%00000260"), Attrs([Attr("address","0x670")]), Phis([]), +Defs([Def(Tid(611, "%00000263"), Attrs([Attr("address","0x670"), +Attr("insn","bl #-0x80")]), Var("R30",Imm(64)), Int(1652,64))]), +Jmps([Call(Tid(614, "%00000266"), Attrs([Attr("address","0x670"), +Attr("insn","bl #-0x80")]), Int(1,1), +(Direct(Tid(1_533, "@abort")),Direct(Tid(1_531, "%000005fb"))))])), +Blk(Tid(1_531, "%000005fb"), Attrs([]), Phis([]), Defs([]), +Jmps([Call(Tid(1_532, "%000005fc"), Attrs([]), Int(1,1), +(Direct(Tid(1_534, "@call_weak_fn")),))]))])), Sub(Tid(1_533, "@abort"), + Attrs([Attr("address","0x5F0"), Attr("stub","()"), Attr("noreturn","()"), +Attr("c.proto","void (*)(void)")]), "abort", Args([]), +Blks([Blk(Tid(612, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), +Defs([Def(Tid(1_210, "%000004ba"), Attrs([Attr("address","0x5F0"), +Attr("insn","adrp x16, #126976")]), Var("R16",Imm(64)), Int(126976,64)), +Def(Tid(1_217, "%000004c1"), 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_223, "%000004c7"), 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_228, "%000004cc"), + Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), +(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_534, "@call_weak_fn"), + Attrs([Attr("address","0x674"), Attr("c.proto","signed (*)(void)")]), + "call_weak_fn", Args([Arg(Tid(1_555, "%00000613"), + Attrs([Attr("c.data","Top:u32"), Attr("c.layout","[signed : 32]"), +Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), +LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(616, "@call_weak_fn"), + Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(619, "%0000026b"), + Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #126976")]), + Var("R0",Imm(64)), Int(126976,64)), Def(Tid(626, "%00000272"), + 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(632, "%00000278"), Attrs([Attr("address","0x67C"), +Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), +Direct(Tid(630, "%00000276"))), Goto(Tid(1_535, "%000005ff"), Attrs([]), + Int(1,1), Direct(Tid(982, "%000003d6")))])), Blk(Tid(630, "%00000276"), + Attrs([Attr("address","0x684")]), Phis([]), Defs([]), +Jmps([Call(Tid(638, "%0000027e"), 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 #-0xa0")]), Int(1,1), Direct(Tid(983, "@__gmon_start__")))])), +Blk(Tid(983, "@__gmon_start__"), Attrs([Attr("address","0x5E0")]), Phis([]), +Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x5E0"), +Attr("insn","adrp x16, #126976")]), Var("R16",Imm(64)), Int(126976,64)), +Def(Tid(1_195, "%000004ab"), 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_201, "%000004b1"), 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_206, "%000004b6"), + Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), +(Indirect(Var("R17",Imm(64))),))]))])), +Sub(Tid(1_536, "@deregister_tm_clones"), Attrs([Attr("address","0x690"), +Attr("c.proto","signed (*)(void)")]), "deregister_tm_clones", + Args([Arg(Tid(1_556, "%00000614"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("deregister_tm_clones_result",Imm(32)), LOW(32,Var("R0",Imm(64))), +Out())]), Blks([Blk(Tid(644, "@deregister_tm_clones"), + Attrs([Attr("address","0x690")]), Phis([]), Defs([Def(Tid(647, "%00000287"), + Attrs([Attr("address","0x690"), Attr("insn","adrp x0, #131072")]), + Var("R0",Imm(64)), Int(131072,64)), Def(Tid(653, "%0000028d"), + Attrs([Attr("address","0x694"), 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","0x698"), +Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), +Def(Tid(664, "%00000298"), Attrs([Attr("address","0x69C"), +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","0x6A0"), Attr("insn","cmp x1, x0")]), + Var("#3",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(675, "%000002a3"), + Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), + Var("#4",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), +Def(Tid(681, "%000002a9"), Attrs([Attr("address","0x6A0"), +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(687, "%000002af"), Attrs([Attr("address","0x6A0"), +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(691, "%000002b3"), Attrs([Attr("address","0x6A0"), +Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), +EQ(PLUS(Var("#4",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(695, "%000002b7"), + Attrs([Attr("address","0x6A0"), Attr("insn","cmp x1, x0")]), + Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#4",Imm(64)),Int(1,64))))]), +Jmps([Goto(Tid(701, "%000002bd"), Attrs([Attr("address","0x6A4"), +Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), +Direct(Tid(699, "%000002bb"))), Goto(Tid(1_537, "%00000601"), 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, #126976")]), + Var("R1",Imm(64)), Int(126976,64)), Def(Tid(962, "%000003c2"), + 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(967, "%000003c7"), Attrs([Attr("address","0x6B0"), +Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), +Direct(Tid(699, "%000002bb"))), Goto(Tid(1_538, "%00000602"), Attrs([]), + Int(1,1), Direct(Tid(971, "%000003cb")))])), Blk(Tid(699, "%000002bb"), + Attrs([Attr("address","0x6BC")]), Phis([]), Defs([]), +Jmps([Call(Tid(707, "%000002c3"), 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_539, "@frame_dummy"), Attrs([Attr("address","0x750"), +Attr("c.proto","signed (*)(void)")]), "frame_dummy", + Args([Arg(Tid(1_557, "%00000615"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("frame_dummy_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(859, "@frame_dummy"), Attrs([Attr("address","0x750")]), + Phis([]), Defs([]), Jmps([Call(Tid(861, "%0000035d"), + Attrs([Attr("address","0x750"), Attr("insn","b #-0x90")]), Int(1,1), +(Direct(Tid(1_541, "@register_tm_clones")),))]))])), Sub(Tid(1_540, "@main"), + Attrs([Attr("address","0x600"), Attr("stub","()"), +Attr("c.proto","signed (*)(signed argc, const char** argv)")]), "main", + Args([Arg(Tid(1_558, "%00000616"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("main_argc",Imm(32)), LOW(32,Var("R0",Imm(64))), In()), +Arg(Tid(1_559, "%00000617"), Attrs([Attr("c.data","Top:u8 ptr ptr"), +Attr("c.layout","**[char : 8]"), Attr("c.type"," const char**")]), + Var("main_argv",Imm(64)), Var("R1",Imm(64)), Both()), +Arg(Tid(1_560, "%00000618"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), Out())]), +Blks([Blk(Tid(440, "@main"), Attrs([Attr("address","0x600")]), Phis([]), +Defs([Def(Tid(444, "%000001bc"), Attrs([Attr("address","0x600"), +Attr("insn","and x1, x1, #0xff")]), Var("R1",Imm(64)), +Concat(Int(0,56),Extract(7,0,Var("R1",Imm(64))))), Def(Tid(450, "%000001c2"), + Attrs([Attr("address","0x604"), Attr("insn","and x0, x0, #0xff")]), + Var("R0",Imm(64)), Concat(Int(0,56),Extract(7,0,Var("R0",Imm(64))))), +Def(Tid(457, "%000001c9"), Attrs([Attr("address","0x608"), +Attr("insn","adds x0, x0, x1")]), Var("#1",Imm(64)), +PLUS(Var("R0",Imm(64)),Var("R1",Imm(64)))), Def(Tid(463, "%000001cf"), + Attrs([Attr("address","0x608"), Attr("insn","adds x0, x0, x1")]), + Var("VF",Imm(1)), +NEQ(SIGNED(65,Var("#1",Imm(64))),PLUS(SIGNED(65,Var("R0",Imm(64))),SIGNED(65,Var("R1",Imm(64)))))), +Def(Tid(469, "%000001d5"), Attrs([Attr("address","0x608"), +Attr("insn","adds x0, x0, x1")]), Var("CF",Imm(1)), +NEQ(UNSIGNED(65,Var("#1",Imm(64))),PLUS(UNSIGNED(65,Var("R0",Imm(64))),UNSIGNED(65,Var("R1",Imm(64)))))), +Def(Tid(473, "%000001d9"), Attrs([Attr("address","0x608"), +Attr("insn","adds x0, x0, x1")]), Var("ZF",Imm(1)), +EQ(Var("#1",Imm(64)),Int(0,64))), Def(Tid(477, "%000001dd"), + Attrs([Attr("address","0x608"), Attr("insn","adds x0, x0, x1")]), + Var("NF",Imm(1)), Extract(63,63,Var("#1",Imm(64)))), +Def(Tid(481, "%000001e1"), Attrs([Attr("address","0x608"), +Attr("insn","adds x0, x0, x1")]), Var("R0",Imm(64)), Var("#1",Imm(64))), +Def(Tid(488, "%000001e8"), Attrs([Attr("address","0x60C"), +Attr("insn","adds x0, x0, x1")]), Var("#2",Imm(64)), +PLUS(Var("R0",Imm(64)),Var("R1",Imm(64)))), Def(Tid(494, "%000001ee"), + Attrs([Attr("address","0x60C"), Attr("insn","adds x0, x0, x1")]), + Var("VF",Imm(1)), +NEQ(SIGNED(65,Var("#2",Imm(64))),PLUS(SIGNED(65,Var("R0",Imm(64))),SIGNED(65,Var("R1",Imm(64)))))), +Def(Tid(500, "%000001f4"), Attrs([Attr("address","0x60C"), +Attr("insn","adds x0, x0, x1")]), Var("CF",Imm(1)), +NEQ(UNSIGNED(65,Var("#2",Imm(64))),PLUS(UNSIGNED(65,Var("R0",Imm(64))),UNSIGNED(65,Var("R1",Imm(64)))))), +Def(Tid(504, "%000001f8"), Attrs([Attr("address","0x60C"), +Attr("insn","adds x0, x0, x1")]), Var("ZF",Imm(1)), +EQ(Var("#2",Imm(64)),Int(0,64))), Def(Tid(508, "%000001fc"), + Attrs([Attr("address","0x60C"), Attr("insn","adds x0, x0, x1")]), + Var("NF",Imm(1)), Extract(63,63,Var("#2",Imm(64)))), +Def(Tid(512, "%00000200"), Attrs([Attr("address","0x60C"), +Attr("insn","adds x0, x0, x1")]), Var("R0",Imm(64)), Var("#2",Imm(64)))]), +Jmps([Call(Tid(517, "%00000205"), Attrs([Attr("address","0x610"), +Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), +Sub(Tid(1_541, "@register_tm_clones"), Attrs([Attr("address","0x6C0"), +Attr("c.proto","signed (*)(void)")]), "register_tm_clones", + Args([Arg(Tid(1_561, "%00000619"), Attrs([Attr("c.data","Top:u32"), +Attr("c.layout","[signed : 32]"), Attr("c.type","signed")]), + Var("register_tm_clones_result",Imm(32)), LOW(32,Var("R0",Imm(64))), +Out())]), Blks([Blk(Tid(709, "@register_tm_clones"), + Attrs([Attr("address","0x6C0")]), Phis([]), Defs([Def(Tid(712, "%000002c8"), + Attrs([Attr("address","0x6C0"), Attr("insn","adrp x0, #131072")]), + Var("R0",Imm(64)), Int(131072,64)), Def(Tid(718, "%000002ce"), + Attrs([Attr("address","0x6C4"), Attr("insn","add x0, x0, #0x10")]), + Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(16,64))), +Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x6C8"), +Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), +Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x6CC"), +Attr("insn","add x1, x1, #0x10")]), Var("R1",Imm(64)), +PLUS(Var("R1",Imm(64)),Int(16,64))), Def(Tid(736, "%000002e0"), + 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(742, "%000002e6"), 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(749, "%000002ed"), 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(755, "%000002f3"), 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(761, "%000002f9"), Attrs([Attr("address","0x6E0"), +Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), +Direct(Tid(759, "%000002f7"))), Goto(Tid(1_542, "%00000606"), 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, #126976")]), + Var("R2",Imm(64)), Int(126976,64)), Def(Tid(932, "%000003a4"), + 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(937, "%000003a9"), Attrs([Attr("address","0x6EC"), +Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), +Direct(Tid(759, "%000002f7"))), Goto(Tid(1_543, "%00000607"), Attrs([]), + Int(1,1), Direct(Tid(941, "%000003ad")))])), Blk(Tid(759, "%000002f7"), + Attrs([Attr("address","0x6F8")]), Phis([]), Defs([]), +Jmps([Call(Tid(767, "%000002ff"), 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))),))]))]))]))) diff --git a/examples/multiCse/multiCse.c b/examples/multiCse/multiCse.c new file mode 100644 index 000000000..12a4aec85 --- /dev/null +++ b/examples/multiCse/multiCse.c @@ -0,0 +1,13 @@ +int main(int argc, char** argv) { + long x = (char)argc; + long y = (char)argv; + long out = 0; + // sets `out` to true iff (char)argc == (char) argv. + asm ( + "adds %0, %1, %2\n" + "adds %0, %1, %2" + : "=r"(out) + : "r"(x) , "r" (y) + ); + return out; +} diff --git a/examples/multiCse/multiCse.gts b/examples/multiCse/multiCse.gts new file mode 100644 index 000000000..19dc480eb Binary files /dev/null and b/examples/multiCse/multiCse.gts differ diff --git a/examples/multiCse/multiCse.relf b/examples/multiCse/multiCse.relf new file mode 100644 index 000000000..c0d498f01 --- /dev/null +++ b/examples/multiCse/multiCse.relf @@ -0,0 +1,128 @@ + +Relocation section '.rela.dyn' at offset 0x468 contains 8 entries: + Offset Info Type Symbol's Value Symbol's Name + Addend +000000000001fd88 0000000000000403 R_AARCH64_RELATIVE 750 +000000000001fd90 0000000000000403 R_AARCH64_RELATIVE 700 +000000000001fff0 0000000000000403 R_AARCH64_RELATIVE 600 +0000000000020008 0000000000000403 R_AARCH64_RELATIVE 20008 +000000000001ffd8 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 +000000000001ffe0 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 +000000000001ffe8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 +000000000001fff8 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 + +Relocation section '.rela.plt' at offset 0x528 contains 4 entries: + Offset Info Type Symbol's Value Symbol's Name + Addend +000000000001ffb0 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 +000000000001ffb8 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 +000000000001ffc0 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 +000000000001ffc8 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: 0000000000000588 0 SECTION LOCAL DEFAULT 11 .init + 2: 0000000000020000 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: 0000000000000424 0 SECTION LOCAL DEFAULT 7 .gnu.version + 8: 0000000000000438 0 SECTION LOCAL DEFAULT 8 .gnu.version_r + 9: 0000000000000468 0 SECTION LOCAL DEFAULT 9 .rela.dyn + 10: 0000000000000528 0 SECTION LOCAL DEFAULT 10 .rela.plt + 11: 0000000000000588 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: 000000000001fd88 0 SECTION LOCAL DEFAULT 18 .init_array + 19: 000000000001fd90 0 SECTION LOCAL DEFAULT 19 .fini_array + 20: 000000000001fd98 0 SECTION LOCAL DEFAULT 20 .dynamic + 21: 000000000001ff98 0 SECTION LOCAL DEFAULT 21 .got + 22: 0000000000020000 0 SECTION LOCAL DEFAULT 22 .data + 23: 0000000000020010 0 SECTION LOCAL DEFAULT 23 .bss + 24: 0000000000000000 0 SECTION LOCAL DEFAULT 24 .comment + 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .debug_aranges + 26: 0000000000000000 0 SECTION LOCAL DEFAULT 26 .debug_info + 27: 0000000000000000 0 SECTION LOCAL DEFAULT 27 .debug_abbrev + 28: 0000000000000000 0 SECTION LOCAL DEFAULT 28 .debug_line + 29: 0000000000000000 0 SECTION LOCAL DEFAULT 29 .debug_str + 30: 0000000000000000 0 SECTION LOCAL DEFAULT 30 .debug_line_str + 31: 0000000000000000 0 SECTION LOCAL DEFAULT 31 .debug_loclists + 32: 0000000000000000 0 SECTION LOCAL DEFAULT 32 .debug_rnglists + 33: 0000000000000000 0 FILE LOCAL DEFAULT ABS Scrt1.o + 34: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d + 35: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag + 36: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x + 37: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 17 $d + 38: 0000000000000768 0 NOTYPE LOCAL DEFAULT 15 $d + 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o + 40: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x + 41: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn + 42: 0000000000000588 0 NOTYPE LOCAL DEFAULT 11 $x + 43: 0000000000000754 0 NOTYPE LOCAL DEFAULT 14 $x + 44: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o + 45: 0000000000000598 0 NOTYPE LOCAL DEFAULT 11 $x + 46: 0000000000000760 0 NOTYPE LOCAL DEFAULT 14 $x + 47: 0000000000000000 0 FILE LOCAL DEFAULT ABS example.c + 48: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x + 49: 0000000000000830 0 NOTYPE LOCAL DEFAULT 17 $d + 50: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c + 51: 0000000000000690 0 NOTYPE LOCAL DEFAULT 13 $x + 52: 0000000000000690 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones + 53: 00000000000006c0 0 FUNC LOCAL DEFAULT 13 register_tm_clones + 54: 0000000000020008 0 NOTYPE LOCAL DEFAULT 22 $d + 55: 0000000000000700 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux + 56: 0000000000020010 1 OBJECT LOCAL DEFAULT 23 completed.0 + 57: 000000000001fd90 0 NOTYPE LOCAL DEFAULT 19 $d + 58: 000000000001fd90 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry + 59: 0000000000000750 0 FUNC LOCAL DEFAULT 13 frame_dummy + 60: 000000000001fd88 0 NOTYPE LOCAL DEFAULT 18 $d + 61: 000000000001fd88 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry + 62: 00000000000007d0 0 NOTYPE LOCAL DEFAULT 17 $d + 63: 0000000000020010 0 NOTYPE LOCAL DEFAULT 23 $d + 64: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c + 65: 0000000000000844 0 NOTYPE LOCAL DEFAULT 17 $d + 66: 0000000000000844 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ + 67: 0000000000000000 0 FILE LOCAL DEFAULT ABS + 68: 000000000001fd98 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC + 69: 000000000000076c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR + 70: 000000000001ffd0 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ + 71: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x + 72: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 + 73: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable + 74: 0000000000020000 0 NOTYPE WEAK DEFAULT 22 data_start + 75: 0000000000020010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start__ + 76: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 + 77: 0000000000020018 0 NOTYPE GLOBAL DEFAULT 23 _bss_end__ + 78: 0000000000020010 0 NOTYPE GLOBAL DEFAULT 22 _edata + 79: 0000000000000754 0 FUNC GLOBAL HIDDEN 14 _fini + 80: 0000000000020018 0 NOTYPE GLOBAL DEFAULT 23 __bss_end__ + 81: 0000000000020000 0 NOTYPE GLOBAL DEFAULT 22 __data_start + 82: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ + 83: 0000000000020008 0 OBJECT GLOBAL HIDDEN 22 __dso_handle + 84: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 + 85: 0000000000000768 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used + 86: 0000000000020018 0 NOTYPE GLOBAL DEFAULT 23 _end + 87: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start + 88: 0000000000020018 0 NOTYPE GLOBAL DEFAULT 23 __end__ + 89: 0000000000020010 0 NOTYPE GLOBAL DEFAULT 23 __bss_start + 90: 0000000000000600 20 FUNC GLOBAL DEFAULT 13 main + 91: 0000000000020010 0 OBJECT GLOBAL HIDDEN 22 __TMC_END__ + 92: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable + 93: 0000000000000588 0 FUNC GLOBAL HIDDEN 11 _init + diff --git a/project/sbt-antlr4.sbt b/project/sbt-antlr4.sbt new file mode 100644 index 000000000..4d644793a --- /dev/null +++ b/project/sbt-antlr4.sbt @@ -0,0 +1,5 @@ +// sbt 1.1.x +addSbtPlugin("com.simplytyped" % "sbt-antlr4" % "0.8.3") + +// sbt 0.13.x +addSbtPlugin("com.simplytyped" % "sbt-antlr4" % "0.7.13") \ No newline at end of file diff --git a/project/scalapb.sbt b/project/scalapb.sbt new file mode 100644 index 000000000..550b4dcc6 --- /dev/null +++ b/project/scalapb.sbt @@ -0,0 +1,2 @@ +addSbtPlugin("com.thesamet" % "sbt-protoc" % "1.0.3") +libraryDependencies += "com.thesamet.scalapb" %% "compilerplugin" % "0.11.11" \ No newline at end of file diff --git a/readme.md b/readme.md index e4446568a..f5028be1a 100644 --- a/readme.md +++ b/readme.md @@ -1,20 +1,18 @@ -# BAP-to-Boogie Translator +# BASIL (Boogie Analysis for Secure Information-Flow Logics) ## About -The BAP-to-Boogie Translator generates semantically equivalent Boogie source files (`.bpl`) from AArch64/ARM64 -binaries that have been lifted to the BAP (Binary Analysis Platform) intermediate ADT format. - -This repository contains a program which takes BAP adt files and readelf output as input, and produces a boogie program. +The BASIL tool generates semantically equivalent Boogie source files (`.bpl`) from AArch64/ARM64 +binaries that have been lifted to intermediate formats. Supported input formats are BAP (Binary Analysis Platform) intermediate ADT format, and the `.gts` format produced by [gtirb-semantics](https://github.com/UQ-PAC/gtirb-semantics). ### Example ```sh -$ sbt "run --adt src/test/correct/secret_write/clang/secret_write.adt --relf src/test/correct/secret_write/clang/secret_write.relf --s +$ sbt "run --input src/test/correct/secret_write/clang/secret_write.adt --relf src/test/correct/secret_write/clang/secret_write.relf --s pec src/test/correct/secret_write/secret_write.spec --output boogie_out.bpl" [info] welcome to sbt 1.8.2 (Private Build Java 17.0.8) ... -[info] running Main --adt src/test/correct/secret_write/clang/secret_write.adt --relf src/test/correct/secret_write/clang/secret_write +[info] running Main --input src/test/correct/secret_write/clang/secret_write.adt --relf src/test/correct/secret_write/clang/secret_write .relf --spec src/test/correct/secret_write/secret_write.spec --output boogie_out.bpl [success] Total time: 1 s, completed Sep 11, 2023, 7:24:11 AM $ tail boogie_out.bpl @@ -122,27 +120,35 @@ On Windows, WSL2 may be used to run any Linux-specific tasks, but it is less tho Installing [sbt](https://www.scala-sbt.org/download.html) and [JDK 17](https://openjdk.org/install/) is required. -The tool takes as inputs a BAP ADT file (here denoted with `.adt`) and a file containing the output of readelf (here denoted with `.relf`), both created from the same AArch64/ARM64 binary, and outputs a semantically equivalent .bpl Boogie-language source file. The default output file is `boogie_out.bpl`, but the output location can be specified. +The tool takes as inputs either a BAP ADT file (here denoted with `.adt`) or a `.gts` file produced by [gtirb-semantics](https://github.com/UQ-PAC/gtirb-semantics), as well as a file containing the output of readelf (here denoted with `.relf`), both created from the same AArch64/ARM64 binary, and outputs a semantically equivalent .bpl Boogie-language source file. The default output file is `boogie_out.bpl`, but the output location can be specified. To build and run the tool using sbt, use the following command: -`sbt "run --adt file.adt --relf file.relf [--spec file.spec] [--output output.bpl] [--analyse] [--interpret]"` where the output filename is optional and specification filenames are optional. The specification filename must end in `.spec`. +`sbt "run --input file.{adt, gts} --relf file.relf [--spec file.spec] [--output output.bpl] [--analyse] [--interpret]"` where the output filename is optional and specification filenames are optional. The specification filename must end in `.spec`. #### Usage The `--analyse` flag is optional and enables the static analysis functionality. +Other flags are listed below: ``` BASIL - -a --adt BAP ADT file name. - -r --relf Output of 'readelf -s -r -W'. - -s --spec BASIL specification file. - -o --output Boogie output destination file. - -v --verbose Show extra debugging logs. - --analyse Run static analysis pass. - --interpret Run BASIL IR interpreter. - -h --help Show this help message. + --analyse Run static analysis pass. + --analysis-results Log analysis results in files at specified path. + --analysis-results-dot Log analysis results in .dot form at specified path. + --boogie-use-lambda-stores Use lambda representation of store operations. + --dump-il Dump the Intermediate Language to text. + -h --help Show this help message. + -i --input BAP .adt file or GTIRB/ASLi .gts file + --interpret Run BASIL IL interpreter. + -m --main-procedure-name Name of the main procedure to begin analysis at. + -o --output Boogie output destination file. + --procedure-call-depth Cull procedures beyond this call depth from the main function + (defaults to Int.MaxValue) + -r --relf Name of the file containing the output of 'readelf -s -r -W'. + -s --spec BASIL specification file. + -v --verbose Show extra debugging logs. ``` The sbt shell can also be used for multiple tasks with less overhead by executing `sbt` and then the relevant sbt commands. @@ -159,7 +165,7 @@ To compile the source without running it - this helps IntelliJ highlight things ## Generating inputs (Lifting) -Many lifted examples are already profied in the tests directory: [src/test/correct](src/test/correct), these instructions +Many lifted examples are already profiled in the tests directory: [src/test/correct](src/test/correct), these instructions are for if you want to lift new compiled binaries. The tool takes a `.adt` and a `.relf` file as inputs, which are produced by BAP and readelf, respectively. diff --git a/src/main/antlr4/Semantics.g4 b/src/main/antlr4/Semantics.g4 new file mode 100644 index 000000000..d2a479971 --- /dev/null +++ b/src/main/antlr4/Semantics.g4 @@ -0,0 +1,68 @@ +grammar Semantics; + +// See aslp/libASL/asl.ott for reference grammar Bap-ali-plugin/asli_lifer.ml may also be useful for +// visitors + +statements: QUOTE stmt QUOTE (COMMA QUOTE stmt QUOTE)*; + +stmt: 'Stmt_Assign' OPEN_PAREN lexpr COMMA expr CLOSE_PAREN # Assign + | 'Stmt_ConstDecl' OPEN_PAREN type COMMA lvar=ID COMMA expr CLOSE_PAREN # ConstDecl + | 'Stmt_VarDecl' OPEN_PAREN type COMMA lvar=ID COMMA expr CLOSE_PAREN # VarDecl + | 'Stmt_VarDeclsNoInit' OPEN_PAREN type COMMA OPEN_BRACKET lvars CLOSE_BRACKET CLOSE_PAREN # VarDeclsNoInit + | 'Stmt_Assert' OPEN_PAREN expr CLOSE_PAREN # Assert + | 'Stmt_TCall' OPEN_PAREN name=ID COMMA OPEN_BRACKET tes=exprs? CLOSE_BRACKET COMMA OPEN_BRACKET args=exprs? CLOSE_BRACKET CLOSE_PAREN # TCall + | 'Stmt_If' OPEN_PAREN cond=expr COMMA OPEN_BRACKET stmt+ CLOSE_BRACKET COMMA OPEN_BRACKET CLOSE_BRACKET COMMA elseStmt? CLOSE_PAREN # If // theoretically some sort of 'Elsif' could be within the middle brackets? + | 'Stmt_Throw' OPEN_PAREN str=ID* CLOSE_PAREN # Throw + ; + +lvars: OPEN_PAREN ID CLOSE_PAREN (SCOLON OPEN_PAREN ID CLOSE_PAREN)* ; + +exprs: OPEN_PAREN expr CLOSE_PAREN (SCOLON OPEN_PAREN expr CLOSE_PAREN)*; + +elseStmt: OPEN_PAREN 'else' stmt+ CLOSE_PAREN; + +type: 'Type_Bits' OPEN_PAREN size=expr CLOSE_PAREN # TypeBits + | 'Type_Constructor' OPEN_PAREN str=ID CLOSE_PAREN # TypeConstructor + | 'Type_Register' OPEN_PAREN QUOTE size=(DEC | BINARY) QUOTE COMMA regfield (COMMA regfield)* CLOSE_PAREN # TypeRegister + ; + +regfield: OPEN_PAREN OPEN_BRACKET slice CLOSE_BRACKET COMMA id=ID CLOSE_PAREN; + +lexpr: 'LExpr_Var' OPEN_PAREN ID CLOSE_PAREN # LExprVar + | 'LExpr_Field' OPEN_PAREN lexpr COMMA field=ID CLOSE_PAREN # LExprField + | 'LExpr_Array' OPEN_PAREN lexpr COMMA index=expr CLOSE_PAREN # LExprArray + ; + +expr: 'Expr_Var' OPEN_PAREN ID CLOSE_PAREN # ExprVar + | 'Expr_TApply' OPEN_PAREN ID COMMA OPEN_BRACKET tes=exprs? CLOSE_BRACKET COMMA OPEN_BRACKET args=exprs? CLOSE_BRACKET CLOSE_PAREN # ExprTApply + | 'Expr_Slices' OPEN_PAREN expr COMMA OPEN_BRACKET slices CLOSE_BRACKET CLOSE_PAREN # ExprSlices + | 'Expr_Field' OPEN_PAREN expr COMMA field=ID CLOSE_PAREN # ExprField + | 'Expr_Array' OPEN_PAREN array=expr COMMA index=expr CLOSE_PAREN # ExprArray + | 'Expr_LitInt' OPEN_PAREN QUOTE value=(DEC | BINARY) QUOTE CLOSE_PAREN # ExprLitInt + | 'Expr_LitBits' OPEN_PAREN QUOTE value=BINARY QUOTE CLOSE_PAREN # ExprLitBits // in future may need to account for case where whitespace is in the binary string + ; + +slice: 'Slice_LoWd' OPEN_PAREN lo=expr COMMA wd=expr CLOSE_PAREN # Slice_LoWd + | 'Slice_HiLo' OPEN_PAREN hi=expr COMMA lo=expr CLOSE_PAREN # Slice_HiLo + ; + +// multiple of 'slice' - distinct from Expr_Slices +slices: OPEN_PAREN slice CLOSE_PAREN (SCOLON OPEN_PAREN slice CLOSE_PAREN)*; + +BINARY: [0-1]+; +DEC: [0-9]+; +ID: [a-zA-Z_][a-zA-Z0-9_.]*; + +// Delimiters +OPEN_PAREN: '('; +CLOSE_PAREN: ')'; +COMMA: ','; +OPEN_BRACKET: '['; +CLOSE_BRACKET: ']'; +QUOTE: '"'; +SCOLON: ';'; + +// Ignored +NEWLINE: ('\r\n' | '\n') -> skip; +WHITESPACE: ' '+ -> skip; +COMMENT: '//' ~[\r\n]* -> skip; \ No newline at end of file diff --git a/src/main/protobuf/AuxData.proto b/src/main/protobuf/AuxData.proto new file mode 100644 index 000000000..d58774ec3 --- /dev/null +++ b/src/main/protobuf/AuxData.proto @@ -0,0 +1,22 @@ +//===- AuxData.proto ------------------------------------------*- Proto -*-===// +// +// Copyright (C) 2020 GrammaTech, Inc. +// +// This code is licensed under the MIT license. See the LICENSE file in the +// project root for license terms. +// +// This project is sponsored by the Office of Naval Research, One Liberty +// Center, 875 N. Randolph Street, Arlington, VA 22203 under contract # +// N68335-17-C-0700. The content of the information does not necessarily +// reflect the position or policy of the Government and no official +// endorsement should be inferred. +// +//===----------------------------------------------------------------------===// +syntax = "proto3"; +package gtirb.proto; +option java_package = "com.grammatech.gtirb.proto"; + +message AuxData { + string type_name = 1; + bytes data = 2; +} diff --git a/src/main/protobuf/ByteInterval.proto b/src/main/protobuf/ByteInterval.proto new file mode 100644 index 000000000..3e45f75d3 --- /dev/null +++ b/src/main/protobuf/ByteInterval.proto @@ -0,0 +1,39 @@ +//===- ByteInterval.proto -------------------------------------*- Proto -*-===// +// +// Copyright (C) 2020 GrammaTech, Inc. +// +// This code is licensed under the MIT license. See the LICENSE file in the +// project root for license terms. +// +// This project is sponsored by the Office of Naval Research, One Liberty +// Center, 875 N. Randolph Street, Arlington, VA 22203 under contract # +// N68335-17-C-0700. The content of the information does not necessarily +// reflect the position or policy of the Government and no official +// endorsement should be inferred. +// +//===----------------------------------------------------------------------===// +syntax = "proto3"; +package gtirb.proto; +option java_package = "com.grammatech.gtirb.proto"; + +import "CodeBlock.proto"; +import "DataBlock.proto"; +import "SymbolicExpression.proto"; + +message Block { + uint64 offset = 1; + oneof value { + CodeBlock code = 2; + DataBlock data = 3; + } +} + +message ByteInterval { + bytes uuid = 1; + repeated Block blocks = 2; + map symbolic_expressions = 3; + bool has_address = 4; + uint64 address = 5; + uint64 size = 6; + bytes contents = 7; +} diff --git a/src/main/protobuf/CFG.proto b/src/main/protobuf/CFG.proto new file mode 100644 index 000000000..880a6c22b --- /dev/null +++ b/src/main/protobuf/CFG.proto @@ -0,0 +1,49 @@ +//===- CFG.proto ----------------------------------------------*- Proto -*-===// +// +// Copyright (C) 2020 GrammaTech, Inc. +// +// This code is licensed under the MIT license. See the LICENSE file in the +// project root for license terms. +// +// This project is sponsored by the Office of Naval Research, One Liberty +// Center, 875 N. Randolph Street, Arlington, VA 22203 under contract # +// N68335-17-C-0700. The content of the information does not necessarily +// reflect the position or policy of the Government and no official +// endorsement should be inferred. +// +//===----------------------------------------------------------------------===// +syntax = "proto3"; +package gtirb.proto; +option java_package = "com.grammatech.gtirb.proto"; + +enum EdgeType { + Type_Branch = 0; + Type_Call = 1; + Type_Fallthrough = 2; + Type_Return = 3; + Type_Syscall = 4; + Type_Sysret = 5; +} + +message EdgeLabel { + bool conditional = 1; + bool direct = 2; + EdgeType type = 3; +} + +message Edge { + reserved 3, 4; + reserved "boolean", "integer"; + + bytes source_uuid = 1; + bytes target_uuid = 2; + EdgeLabel label = 5; +} + +message CFG { + reserved 1; + reserved "blocks"; + + repeated bytes vertices = 3; + repeated Edge edges = 2; +} diff --git a/src/main/protobuf/CodeBlock.proto b/src/main/protobuf/CodeBlock.proto new file mode 100644 index 000000000..15612ab95 --- /dev/null +++ b/src/main/protobuf/CodeBlock.proto @@ -0,0 +1,31 @@ +//===- CodeBlock.proto ----------------------------------------*- Proto -*-===// +// +// Copyright (C) 2020 GrammaTech, Inc. +// +// This code is licensed under the MIT license. See the LICENSE file in the +// project root for license terms. +// +// This project is sponsored by the Office of Naval Research, One Liberty +// Center, 875 N. Randolph Street, Arlington, VA 22203 under contract # +// N68335-17-C-0700. The content of the information does not necessarily +// reflect the position or policy of the Government and no official +// endorsement should be inferred. +// +//===----------------------------------------------------------------------===// +syntax = "proto3"; +package gtirb.proto; +option java_package = "com.grammatech.gtirb.proto"; + +enum DecodeMode { + All_Default = 0; + ARM_Thumb = 1; +}; + +message CodeBlock { + reserved "address"; + reserved 2; + + bytes uuid = 1; + uint64 size = 3; + DecodeMode decode_mode = 4; +} diff --git a/src/main/protobuf/DataBlock.proto b/src/main/protobuf/DataBlock.proto new file mode 100644 index 000000000..9d2ca8572 --- /dev/null +++ b/src/main/protobuf/DataBlock.proto @@ -0,0 +1,25 @@ +//===- DataBlock.proto ----------------------------------------*- Proto -*-===// +// +// Copyright (C) 2020 GrammaTech, Inc. +// +// This code is licensed under the MIT license. See the LICENSE file in the +// project root for license terms. +// +// This project is sponsored by the Office of Naval Research, One Liberty +// Center, 875 N. Randolph Street, Arlington, VA 22203 under contract # +// N68335-17-C-0700. The content of the information does not necessarily +// reflect the position or policy of the Government and no official +// endorsement should be inferred. +// +//===----------------------------------------------------------------------===// +syntax = "proto3"; +package gtirb.proto; +option java_package = "com.grammatech.gtirb.proto"; + +message DataBlock { + reserved "address"; + reserved 2; + + bytes uuid = 1; + uint64 size = 3; +} diff --git a/src/main/protobuf/IR.proto b/src/main/protobuf/IR.proto new file mode 100644 index 000000000..b6bd79fea --- /dev/null +++ b/src/main/protobuf/IR.proto @@ -0,0 +1,36 @@ +//===- IR.proto -----------------------------------------------*- Proto -*-===// +// +// Copyright (C) 2020 GrammaTech, Inc. +// +// This code is licensed under the MIT license. See the LICENSE file in the +// project root for license terms. +// +// This project is sponsored by the Office of Naval Research, One Liberty +// Center, 875 N. Randolph Street, Arlington, VA 22203 under contract # +// N68335-17-C-0700. The content of the information does not necessarily +// reflect the position or policy of the Government and no official +// endorsement should be inferred. +// +//===----------------------------------------------------------------------===// +syntax = "proto3"; +package gtirb.proto; +option java_package = "com.grammatech.gtirb.proto"; + +import "AuxData.proto"; +import "CFG.proto"; +import "Module.proto"; + +message IR { + // slot 4 has been used for multiple fields in the past + // (more specifically, main_module_id and aux_data_container), + // which is a Protobuf compatibility violation, but explains why we + // reserve more field names than field numbers. + reserved "tables", "main_module_id", "aux_data_container"; + reserved 2, 4; + + bytes uuid = 1; + repeated Module modules = 3; + map aux_data = 5; + uint32 version = 6; + CFG cfg = 7; +} diff --git a/src/main/protobuf/Module.proto b/src/main/protobuf/Module.proto new file mode 100644 index 000000000..d0896274e --- /dev/null +++ b/src/main/protobuf/Module.proto @@ -0,0 +1,73 @@ +//===- Module.proto -------------------------------------------*- Proto -*-===// +// +// Copyright (C) 2020 GrammaTech, Inc. +// +// This code is licensed under the MIT license. See the LICENSE file in the +// project root for license terms. +// +// This project is sponsored by the Office of Naval Research, One Liberty +// Center, 875 N. Randolph Street, Arlington, VA 22203 under contract # +// N68335-17-C-0700. The content of the information does not necessarily +// reflect the position or policy of the Government and no official +// endorsement should be inferred. +// +//===----------------------------------------------------------------------===// +syntax = "proto3"; +package gtirb.proto; +option java_package = "com.grammatech.gtirb.proto"; + +import "AuxData.proto"; +import "ProxyBlock.proto"; +import "Section.proto"; +import "Symbol.proto"; + +enum FileFormat { + Format_Undefined = 0; + COFF = 1; + ELF = 2; + PE = 3; + IdaProDb32 = 4; + IdaProDb64 = 5; + XCOFF = 6; + MACHO = 7; + RAW = 8; +}; + +enum ISA { + ISA_Undefined = 0; + IA32 = 1; + PPC32 = 2; + X64 = 3; + ARM = 4; + ValidButUnsupported = 5; + PPC64 = 6; + ARM64 = 7; + MIPS32 = 8; + MIPS64 = 9; +}; + +enum ByteOrder { + ByteOrder_Undefined = 0; + BigEndian = 1; + LittleEndian = 2; +} + +message Module { + reserved "image_byte_map", "data", "symbolic_operands", "aux_data_container", + "blocks", "cfg"; + reserved 8, 10, 11, 13, 14, 15; + + bytes uuid = 1; + string binary_path = 2; + uint64 preferred_addr = 3; + int64 rebase_delta = 4; + FileFormat file_format = 5; + ISA isa = 6; + string name = 7; + repeated Symbol symbols = 9; + repeated ProxyBlock proxies = 16; + repeated Section sections = 12; + map aux_data = 17; + bytes entry_point = 18; + ByteOrder byte_order = 19; +} diff --git a/src/main/protobuf/Offset.proto b/src/main/protobuf/Offset.proto new file mode 100644 index 000000000..f814cad54 --- /dev/null +++ b/src/main/protobuf/Offset.proto @@ -0,0 +1,22 @@ +//===- Offset.proto -------------------------------------------*- Proto -*-===// +// +// Copyright (C) 2020 GrammaTech, Inc. +// +// This code is licensed under the MIT license. See the LICENSE file in the +// project root for license terms. +// +// This project is sponsored by the Office of Naval Research, One Liberty +// Center, 875 N. Randolph Street, Arlington, VA 22203 under contract # +// N68335-17-C-0700. The content of the information does not necessarily +// reflect the position or policy of the Government and no official +// endorsement should be inferred. +// +//===----------------------------------------------------------------------===// +syntax = "proto3"; +package gtirb.proto; +option java_package = "com.grammatech.gtirb.proto"; + +message Offset { + bytes element_id = 1; + uint64 displacement = 2; +} diff --git a/src/main/protobuf/ProxyBlock.proto b/src/main/protobuf/ProxyBlock.proto new file mode 100644 index 000000000..f6dc8a17c --- /dev/null +++ b/src/main/protobuf/ProxyBlock.proto @@ -0,0 +1,19 @@ +//===- ProxyBlock.proto ---------------------------------------*- Proto -*-===// +// +// Copyright (C) 2020 GrammaTech, Inc. +// +// This code is licensed under the MIT license. See the LICENSE file in the +// project root for license terms. +// +// This project is sponsored by the Office of Naval Research, One Liberty +// Center, 875 N. Randolph Street, Arlington, VA 22203 under contract # +// N68335-17-C-0700. The content of the information does not necessarily +// reflect the position or policy of the Government and no official +// endorsement should be inferred. +// +//===----------------------------------------------------------------------===// +syntax = "proto3"; +package gtirb.proto; +option java_package = "com.grammatech.gtirb.proto"; + +message ProxyBlock { bytes uuid = 1; } diff --git a/src/main/protobuf/Section.proto b/src/main/protobuf/Section.proto new file mode 100644 index 000000000..c7692dbc6 --- /dev/null +++ b/src/main/protobuf/Section.proto @@ -0,0 +1,39 @@ +//===- Section.proto ------------------------------------------*- Proto -*-===// +// +// Copyright (C) 2020 GrammaTech, Inc. +// +// This code is licensed under the MIT license. See the LICENSE file in the +// project root for license terms. +// +// This project is sponsored by the Office of Naval Research, One Liberty +// Center, 875 N. Randolph Street, Arlington, VA 22203 under contract # +// N68335-17-C-0700. The content of the information does not necessarily +// reflect the position or policy of the Government and no official +// endorsement should be inferred. +// +//===----------------------------------------------------------------------===// +syntax = "proto3"; +package gtirb.proto; +option java_package = "com.grammatech.gtirb.proto"; + +import "ByteInterval.proto"; + +enum SectionFlag { + Section_Undefined = 0; + Readable = 1; + Writable = 2; + Executable = 3; + Loaded = 4; + Initialized = 5; + ThreadLocal = 6; +} + +message Section { + reserved "address", "size"; + reserved 3, 4; + + bytes uuid = 1; + string name = 2; + repeated ByteInterval byte_intervals = 5; + repeated SectionFlag section_flags = 6; +} diff --git a/src/main/protobuf/Symbol.proto b/src/main/protobuf/Symbol.proto new file mode 100644 index 000000000..56626ff01 --- /dev/null +++ b/src/main/protobuf/Symbol.proto @@ -0,0 +1,30 @@ +//===- Symbol.proto -------------------------------------------*- Proto -*-===// +// +// Copyright (C) 2020 GrammaTech, Inc. +// +// This code is licensed under the MIT license. See the LICENSE file in the +// project root for license terms. +// +// This project is sponsored by the Office of Naval Research, One Liberty +// Center, 875 N. Randolph Street, Arlington, VA 22203 under contract # +// N68335-17-C-0700. The content of the information does not necessarily +// reflect the position or policy of the Government and no official +// endorsement should be inferred. +// +//===----------------------------------------------------------------------===// +syntax = "proto3"; +package gtirb.proto; +option java_package = "com.grammatech.gtirb.proto"; + +message Symbol { + reserved 4; + reserved "storage_kind"; + + bytes uuid = 1; + oneof optional_payload { + uint64 value = 2; + bytes referent_uuid = 5; + } + string name = 3; + bool at_end = 6; +} diff --git a/src/main/protobuf/SymbolicExpression.proto b/src/main/protobuf/SymbolicExpression.proto new file mode 100644 index 000000000..c402d5c38 --- /dev/null +++ b/src/main/protobuf/SymbolicExpression.proto @@ -0,0 +1,121 @@ +//===- SymbolicExpression.proto -------------------------------*- Proto -*-===// +// +// Copyright (C) 2020 GrammaTech, Inc. +// +// This code is licensed under the MIT license. See the LICENSE file in the +// project root for license terms. +// +// This project is sponsored by the Office of Naval Research, One Liberty +// Center, 875 N. Randolph Street, Arlington, VA 22203 under contract # +// N68335-17-C-0700. The content of the information does not necessarily +// reflect the position or policy of the Government and no official +// endorsement should be inferred. +// +//===----------------------------------------------------------------------===// +syntax = "proto3"; +package gtirb.proto; +option java_package = "com.grammatech.gtirb.proto"; + +message SymStackConst { + int32 offset = 1; + bytes symbol_uuid = 2; +} + +message SymAddrConst { + int64 offset = 1; + bytes symbol_uuid = 2; +} + +message SymAddrAddr { + int64 scale = 1; + int64 offset = 2; + bytes symbol1_uuid = 3; + bytes symbol2_uuid = 4; +} + +enum SymAttribute { + // ELF + GOT = 0; + GOTPC = 1; + GOTOFF = 2; + GOTREL = 3; + PLT = 4; + PLTOFF = 5; + PCREL = 6; + SECREL = 7; + TLS = 8; + TLSGD = 9; + TLSLD = 10; + TLSLDM = 11; + TLSCALL = 12; + TLSDESC = 13; + TPREL = 14; + TPOFF = 15; + DTPREL = 16; + DTPOFF = 17; + NTPOFF = 18; + DTPMOD = 19; + PAGE = 20; + PAGEOFF = 21; + CALL = 22; + LO = 23; + HI = 24; + HIGHER = 25; + HIGHEST = 26; + + // X86 + GOTNTPOFF = 1000; + INDNTPOFF = 1001; + + // ARM + G0 = 2001; + G1 = 2002; + G2 = 2003; + G3 = 2004; + UPPER16 = 2005; + LOWER16 = 2006; + LO12 = 2007; + LO15 = 2008; + LO14 = 2009; + HI12 = 2010; + HI21 = 2011; + S = 2012; + PG = 2013; + NC = 2014; + ABS = 2015; + PREL = 2016; + PREL31 = 2017; + TARGET1 = 2018; + TARGET2 = 2019; + SBREL = 2020; + TLSLDO = 2021; + + // MIPS + HI16 = 3000; + LO16 = 3001; + GPREL = 3002; + DISP = 3003; + OFST = 3004; + + // PPC + H = 4000; + L = 4001; + HA = 4002; + HIGH = 4003; + HIGHA = 4004; + HIGHERA = 4005; + HIGHESTA = 4006; + TOCBASE = 4007; + TOC = 4008; + NOTOC = 4009; +} + +message SymbolicExpression { + reserved "stack_const"; + reserved 1; + oneof value { + SymAddrConst addr_const = 2; + SymAddrAddr addr_addr = 3; + } + repeated SymAttribute attribute_flags = 4; +} diff --git a/src/main/scala/Main.scala b/src/main/scala/Main.scala index b67087406..aa0057cf8 100644 --- a/src/main/scala/Main.scala +++ b/src/main/scala/Main.scala @@ -16,8 +16,8 @@ object Main { @main(name = "BASIL") case class Config( - @arg(name = "adt", short = 'a', doc = "BAP ADT file name.") - adtFileName: String, + @arg(name = "input", short = 'i', doc = "BAP .adt file or GTIRB/ASLi .gts file") + inputFileName: String, @arg(name = "relf", short = 'r', doc = "Name of the file containing the output of 'readelf -s -r -W'.") relfFileName: String, @arg(name = "spec", short = 's', doc = "BASIL specification file.") @@ -67,7 +67,7 @@ object Main { } val q = BASILConfig( - loading = ILLoadingConfig(conf.adtFileName, conf.relfFileName, conf.specFileName, conf.dumpIL, conf.mainProcedureName, conf.procedureDepth), + loading = ILLoadingConfig(conf.inputFileName, conf.relfFileName, conf.specFileName, conf.dumpIL, conf.mainProcedureName, conf.procedureDepth), runInterpret = conf.interpret.value, staticAnalysis = if conf.analyse.value then Some(StaticAnalysisConfig(conf.dumpIL, conf.analysisResults, conf.analysisResultsDot)) else None, boogieTranslation = BoogieGeneratorConfig(if conf.lambdaStores.value then BoogieMemoryAccessMode.LambdaStoreSelect else BoogieMemoryAccessMode.SuccessiveStoreSelect), diff --git a/src/main/scala/boogie/BExpr.scala b/src/main/scala/boogie/BExpr.scala index eb10bea6e..d81616238 100644 --- a/src/main/scala/boogie/BExpr.scala +++ b/src/main/scala/boogie/BExpr.scala @@ -266,7 +266,7 @@ case class UnaryBExpr(op: UnOp, arg: BExpr) extends BExpr { private def inSize = arg.getType match { case bv: BitVecBType => bv.size - case _ => throw new Exception("type mismatch") + case _ => throw new Exception(s"Expected Bv but got ${arg.getType}") } override def toString: String = op match { @@ -339,19 +339,19 @@ case class BinaryBExpr(op: BinOp, arg1: BExpr, arg2: BExpr) extends BExpr { if (bv1.size == bv2.size) { bv1 } else { - throw new Exception("bitvector size mismatch") + throw new Exception(s"bitvector size mismatch: $arg1, $arg2") } case BVCOMP => if (bv1.size == bv2.size) { BitVecBType(1) } else { - throw new Exception("bitvector size mismatch") + throw new Exception(s"bitvector size mismatch: $arg1, $arg2") } case BVULT | BVULE | BVUGT | BVUGE | BVSLT | BVSLE | BVSGT | BVSGE => if (bv1.size == bv2.size) { BoolBType } else { - throw new Exception("bitvector size mismatch") + throw new Exception(s"bitvector size mismatch: $arg1, $arg2") } case BVEQ | BVNEQ => BoolBType diff --git a/src/main/scala/gtirb/MapDecoder.scala b/src/main/scala/gtirb/MapDecoder.scala new file mode 100644 index 000000000..1345fc1d6 --- /dev/null +++ b/src/main/scala/gtirb/MapDecoder.scala @@ -0,0 +1,58 @@ +package gtirb +import java.io.FileInputStream +import com.google.protobuf.ByteString +import java.io.ByteArrayInputStream +import java.nio.charset.StandardCharsets + +/* +* Provides some useful decoders for certian AuxData sections in gtirb. +* +* See https://grammatech.github.io/gtirb/python/_modules/gtirb/serialization.html#MappingCodec.decode, this was pulled +* from their python API, and converted into scala +*/ +object MapDecoder { + def decode_set(totalBytes: Seq[ByteString]): Map[ByteString, Set[ByteString]] = { + val totalMap: Map[ByteString, Set[ByteString]] = (for { + bytes <- totalBytes + byteStream = ByteArrayInputStream(bytes.toByteArray) + len = bytesToLong(read_bytes(8, byteStream), true) + s <- 0L until len + } yield { + val key = ByteString.copyFrom(read_bytes(16, byteStream)) + val len2 = bytesToLong(read_bytes(8, byteStream), true) + val uuids = (for (k <- 0L until len2) yield { // should maybe check this + ByteString.copyFrom(read_bytes(16, byteStream)) + }).toSet + key -> uuids + }).toMap + totalMap + } + + def decode_uuid(totalBytes: Seq[ByteString]): Map[ByteString, ByteString] = { + val totalMap: Map[ByteString, ByteString] = (for { + bytes <- totalBytes + byteStream = ByteArrayInputStream(bytes.toByteArray) + len = bytesToLong(read_bytes(8, byteStream), true) + s <- 0L until len + } yield { + val key = ByteString.copyFrom(read_bytes(16, byteStream)) + val uuid = ByteString.copyFrom(read_bytes(16, byteStream)) + key -> uuid + }).toMap + totalMap + } + + def read_bytes(size: Int, byteStream: ByteArrayInputStream): Array[Byte] = { + byteStream.readNBytes(size) + } + + def bytesToLong(bytes: Array[Byte], littleEndian: Boolean): Long = { + val buffer = java.nio.ByteBuffer.wrap(bytes) + if (littleEndian) { + buffer.order(java.nio.ByteOrder.LITTLE_ENDIAN).getLong + } else { + buffer.getLong + } + } + +} diff --git a/src/main/scala/ir/Expr.scala b/src/main/scala/ir/Expr.scala index c90dacd64..29507dce1 100644 --- a/src/main/scala/ir/Expr.scala +++ b/src/main/scala/ir/Expr.scala @@ -53,6 +53,11 @@ case class IntLiteral(value: BigInt) extends Literal { override def toString: String = value.toString } +/** + * @param end : high bit exclusive + * @param start : low bit inclusive + * @param body + */ case class Extract(end: Int, start: Int, body: Expr) extends Expr { override def toBoogie: BExpr = BVExtract(end, start, body.toBoogie) override def gammas: Set[Expr] = body.gammas @@ -368,6 +373,7 @@ case class Register(override val name: String, override val irType: IRType) exte override def toBoogie: BVar = BVariable(s"$name", irType.toBoogie, Scope.Global) override def toString: String = s"Register($name, $irType)" override def acceptVisit(visitor: Visitor): Variable = visitor.visitRegister(this) + override def size: Int = irType.asInstanceOf[BitVecType].size } case class LocalVar(override val name: String, override val irType: IRType) extends Variable { diff --git a/src/main/scala/ir/Interpreter.scala b/src/main/scala/ir/Interpreter.scala index 76e0ea5f1..3a1c2bf4c 100644 --- a/src/main/scala/ir/Interpreter.scala +++ b/src/main/scala/ir/Interpreter.scala @@ -298,9 +298,8 @@ class Interpreter() { evalRight match { case BitVecLiteral(value, size) => Logger.debug(s"MemoryAssign ${assign.lhs} := 0x${value.toString(16)}[u$size]\n") - case _ => throw new Exception("cannot register non-bitvectors") } - case _ : NOP => () + case _ : NOP => case assert: Assert => Logger.debug(assert) // TODO diff --git a/src/main/scala/ir/Program.scala b/src/main/scala/ir/Program.scala index 600c7361f..2a83604e3 100644 --- a/src/main/scala/ir/Program.scala +++ b/src/main/scala/ir/Program.scala @@ -11,12 +11,10 @@ class Program(var procedures: ArrayBuffer[Procedure], var mainProcedure: Procedu var readOnlyMemory: ArrayBuffer[MemorySection]) extends Iterable[CFGPosition] { // This shouldn't be run before indirect calls are resolved - - def stripUnreachableFunctions(depth: Int = Int.MaxValue): Unit = { val procedureCalleeNames = procedures.map(f => f.name -> f.calls.map(_.name)).toMap - var toVisit: mutable.LinkedHashSet[(Int, String)] = mutable.LinkedHashSet((0, mainProcedure.name)) + val toVisit: mutable.LinkedHashSet[(Int, String)] = mutable.LinkedHashSet((0, mainProcedure.name)) var reachableFound = true val reachableNames = mutable.HashMap[String, Int]() while (toVisit.nonEmpty) { @@ -80,7 +78,8 @@ class Program(var procedures: ArrayBuffer[Procedure], var mainProcedure: Procedu // this is very crude but the simplest thing for now until we have a more sophisticated specification system that can relate to the IR instead of the Boogie def nameToGlobal(name: String): Global = { - if ((name.startsWith("R") || name.startsWith("V")) && (name.length == 2 || name.length == 3) && name.substring(1).forall(_.isDigit)) { + if ((name.startsWith("R") || name.startsWith("V")) && (name.length == 2 || name.length == 3) + && name.substring(1).forall(_.isDigit)) { if (name.startsWith("R")) { Register(name, BitVecType(64)) } else { @@ -125,7 +124,7 @@ class Program(var procedures: ArrayBuffer[Procedure], var mainProcedure: Procedu * not guaranteed to be in any defined order. */ class ILUnorderedIterator(private val begin: Program) extends Iterator[CFGPosition] { - val stack = mutable.Stack[CFGPosition]() + private val stack = mutable.Stack[CFGPosition]() stack.addAll(begin.procedures) override def hasNext: Boolean = { @@ -135,8 +134,8 @@ class Program(var procedures: ArrayBuffer[Procedure], var mainProcedure: Procedu override def next(): CFGPosition = { val n: CFGPosition = stack.pop() - stack.pushAll(n match { - case p : Procedure => p.blocks + stack.pushAll(n match { + case p: Procedure => p.blocks case b: Block => Seq() ++ b.statements ++ Seq(b.jump) case s: Command => Seq() }) @@ -165,8 +164,8 @@ class Procedure private ( var in: ArrayBuffer[Parameter], var out: ArrayBuffer[Parameter], ) { - private var _callers = new mutable.HashSet[DirectCall] - + private val _callers = mutable.HashSet[DirectCall]() + _blocks.foreach(_.setParent(this)) // class invariant require(returnBlock.forall(b => _blocks.contains(b)) && entryBlock.forall(b => _blocks.contains(b))) require(_blocks.isEmpty == entryBlock.isEmpty) // blocks.nonEmpty <==> entryBlock.isDefined @@ -290,6 +289,10 @@ class Block private (var label: String, this(label, address, IntrusiveList.from(statements), GoTo(Seq(), Some(label + "_unknown")), mutable.HashSet.empty) } + def this(label: String, address: Option[Int], statements: IntrusiveList[Statement]) = { + this(label, address, statements, GoTo(Seq(), Some(label + "_unknown")), mutable.HashSet.empty) + } + def this(label: String, address: Option[Int] = None) = { this(label, address, IntrusiveList(), GoTo(Seq(), Some(label + "_unknown")), mutable.HashSet.empty) } @@ -298,8 +301,8 @@ class Block private (var label: String, def incomingJumps: immutable.Set[GoTo] = _incomingJumps.toSet - def addIncomingJump(g: GoTo) = _incomingJumps.add(g) - def removeIncomingJump(g: GoTo) = _incomingJumps.remove(g) + def addIncomingJump(g: GoTo): Boolean = _incomingJumps.add(g) + def removeIncomingJump(g: GoTo): Boolean = _incomingJumps.remove(g) def replaceJump(j: Jump): this.type = { _jump.deParent() @@ -321,7 +324,6 @@ class Block private (var label: String, } override def toString: String = { - // display all statements and jumps val statementsString = statements.map(_.toString).mkString("\n") s"Block $label with $statementsString\n$jump" } @@ -367,13 +369,6 @@ class Block private (var label: String, } else None } - override def equals(obj: scala.Any): Boolean = - obj match - case b: Block => b.label == this.label - case _ => false - - override def hashCode(): Int = label.hashCode() - override def linkParent(p: Procedure): Unit = { // The first block added to the procedure is the entry block if parent.blocks.isEmpty then parent.entryBlock = Some(this) @@ -386,8 +381,7 @@ class Block private (var label: String, // to disconnect call() links that reference jump.parent.parent jump.deParent() } - } - +} /** * @param name name diff --git a/src/main/scala/ir/Statement.scala b/src/main/scala/ir/Statement.scala index 0efe1d976..4eeaac7b4 100644 --- a/src/main/scala/ir/Statement.scala +++ b/src/main/scala/ir/Statement.scala @@ -38,7 +38,7 @@ class LocalAssign(var lhs: Variable, var rhs: Expr, override val label: Option[S object LocalAssign: def unapply(l: LocalAssign): Option[(Variable, Expr, Option[String])] = Some(l.lhs, l.rhs, l.label) -class MemoryAssign(var lhs: Memory, var rhs: MemoryStore, override val label: Option[String] = None) extends Statement { +class MemoryAssign(var lhs: Memory, var rhs: MemoryStore, override val label: Option[String] = None) extends Statement { override def modifies: Set[Global] = Set(lhs) //override def locals: Set[Variable] = rhs.locals override def toString: String = s"$labelStr$lhs := $rhs" @@ -86,10 +86,12 @@ class GoTo private (private var _targets: mutable.Set[Block], override val label def this(targets: Iterable[Block], label: Option[String] = None) = this(mutable.Set.from(targets), label) + def this(target: Block) = this(mutable.Set(target), None) + def targets: Set[Block] = _targets.toSet def addAllTargets(t: Iterable[Block]): Unit = { - t.foreach(addTarget(_)) + t.foreach(addTarget) } def addTarget(t: Block): Unit = { diff --git a/src/main/scala/translating/BAPToIR.scala b/src/main/scala/translating/BAPToIR.scala index bbf2707d1..0ce4cd791 100644 --- a/src/main/scala/translating/BAPToIR.scala +++ b/src/main/scala/translating/BAPToIR.scala @@ -23,6 +23,9 @@ class BAPToIR(var program: BAPProgram, mainAddress: Int) { for (b <- s.blocks) { val block = Block(b.label, b.address) procedure.addBlocks(block) + if (b.address.isDefined && b.address.isDefined && b.address.get == procedure.address.get) { + procedure.entryBlock = Some(block) + } labelToBlock.addOne(b.label, block) } for (p <- s.in) { @@ -51,7 +54,7 @@ class BAPToIR(var program: BAPProgram, mainAddress: Int) { } // Set entry block to the block with the same address as the procedure or the first in sequence - procedure.entryBlock = procedure.blocks.find(b => b.address == procedure.address) + // TODO maybe throw an exception if there is no block with the same address, to be safe? if procedure.entryBlock.isEmpty then procedure.entryBlock = procedure.blocks.nextOption() } diff --git a/src/main/scala/translating/GTIRBToIR.scala b/src/main/scala/translating/GTIRBToIR.scala new file mode 100644 index 000000000..68345580f --- /dev/null +++ b/src/main/scala/translating/GTIRBToIR.scala @@ -0,0 +1,647 @@ +package translating + +import com.google.protobuf.ByteString +import com.grammatech.gtirb.proto.CFG.EdgeType.* +import com.grammatech.gtirb.proto.CFG.CFG +import com.grammatech.gtirb.proto.CFG.Edge +import com.grammatech.gtirb.proto.CFG.EdgeLabel +import com.grammatech.gtirb.proto.Module.Module +import com.grammatech.gtirb.proto.Symbol.Symbol +import Parsers.SemanticsParser.* +import gtirb.* +import ir.* + +import scala.collection.mutable +import scala.collection.mutable.Set +import scala.collection.mutable.Map +import scala.collection.mutable.ArrayBuffer +import scala.collection.immutable +import scala.jdk.CollectionConverters.* +import java.util.Base64 +import java.nio.charset.* +import scala.util.boundary +import boundary.break +import java.nio.ByteBuffer +import intrusivelist.{IntrusiveList, IntrusiveListElement} +import util.Logger + +/** + * TempIf class, used to temporarily store information about Jumps so that multiple parse runs are not needed. + * Specifically, this is useful in the case that the IF statment has multiple conditions( and elses) and as such many extra blocks + * need to be created. + * + * @param cond: condition + * @param thenStmts: then statements + * @param elseStmts: else statements + * + */ +class TempIf(val cond: Expr, + val thenStmts: mutable.Buffer[Statement], + val elseStmts: mutable.Buffer[Statement], + override val label: Option[String] = None) extends Assert(cond) + +/** + * GTIRBToIR class. Forms an IR as close as possible to the one produced by BAP by using GTIRB instead + * + * @param mods: Modules of the Gtirb file. + * @param parserMap: A Map from UUIDs to basic block statements, used for parsing + * @param cfg: The cfg provided by gtirb + * @param mainAddress: The address of the main function + * + */ +class GTIRBToIR(mods: Seq[Module], parserMap: immutable.Map[String, Array[Array[StmtContext]]], cfg: CFG, mainAddress: Int) { + private val functionNames = MapDecoder.decode_uuid(mods.map(_.auxData("functionNames").data)) + private val functionEntries = MapDecoder.decode_set(mods.map(_.auxData("functionEntries").data)) + private val functionBlocks = MapDecoder.decode_set(mods.map(_.auxData("functionBlocks").data)) + + // maps block UUIDs to their address + private val blockUUIDToAddress = createAddresses() + + // mapping from a symbol's UUID to the symbol itself + private val uuidToSymbol = mods.flatMap(_.symbols).map(s => s.uuid -> s).toMap + + // mapping from a node's UUID to the symbols associated with that node + // can be used to get the names of external functions associated with proxy blocks + private val nodeUUIDToSymbols = createSymbolMap() + + // mapping from a proxy block's UUID to the proxy block + private val proxies = mods.flatMap(_.proxies.map(p => p.uuid -> p)).toMap + + // mapping from a block's UUID to the outgoing edges from that block + private val blockOutgoingEdges = createCFGMap() + + // mapping from a procedure's identifier UUID to the IR procedure + private val uuidToProcedure: mutable.Map[ByteString, Procedure] = mutable.Map() + + // mapping from the UUID of a procedure's entrance block to the IR procedure + private val entranceUUIDtoProcedure: mutable.Map[ByteString, Procedure] = mutable.Map() + + // mapping from a block's UUID to the IR block + private val uuidToBlock: mutable.Map[ByteString, Block] = mutable.Map() + + // mapping from an external procedure's name to the IR procedure + private val externalProcedures = mutable.Map[String, Procedure]() + + // maps block UUIDs to their address + private def createAddresses(): immutable.Map[ByteString, Int] = { + val blockAddresses: immutable.Map[ByteString, Int] = (for { + mod <- mods + section <- mod.sections + byteInterval <- section.byteIntervals + block <- byteInterval.blocks + if !block.getCode.uuid.isEmpty + } yield { + block.getCode.uuid -> (byteInterval.address + block.offset).toInt + }).toMap + + blockAddresses + } + + // maps block UUIDs to their outgoing edges + private def createCFGMap(): mutable.Map[ByteString, mutable.Set[Edge]] = { + val edgeMap: mutable.Map[ByteString, mutable.Set[Edge]] = mutable.Map.empty + + for (edge <- cfg.edges) { + if (edgeMap.contains(edge.sourceUuid)) { + edgeMap(edge.sourceUuid) += edge + } else { + edgeMap += (edge.sourceUuid -> mutable.Set(edge)) + } + } + edgeMap + } + + // maps UUIDs of blocks, etc. to the uuidToSymbol they are associated with + // can be used to get names of external calls from proxy blocks, may have other uses + private def createSymbolMap(): mutable.Map[ByteString, mutable.Set[Symbol]] = { + val symMap = mutable.Map[ByteString, mutable.Set[Symbol]]() + for (sym <- uuidToSymbol.values) { + if (sym.optionalPayload.isReferentUuid) { + val ruuid = sym.optionalPayload.referentUuid.get + if (symMap.contains(ruuid)) { + symMap(ruuid) += sym + } else { + symMap += (ruuid -> mutable.Set(sym)) + } + } + } + + symMap + } + + // TODO this is a hack to imitate BAP so that the existing specifications relying on this will work + // we cannot and should not rely on this at all + private def createArguments(name: String): (ArrayBuffer[Parameter], ArrayBuffer[Parameter]) = { + val args = ArrayBuffer.newBuilder[Parameter] + var regNum = 0 + + val in = if (name == "main") { + ArrayBuffer(Parameter("main_argc", 32, Register("R0", BitVecType(64))), Parameter("main_argv", 64, Register("R1", BitVecType(64)))) + } else { + ArrayBuffer() + } + + val out = ArrayBuffer(Parameter(name + "_result", 32, Register("R0", BitVecType(64)))) + + (in, out) + } + + def createIR(): Program = { + val procedures: ArrayBuffer[Procedure] = ArrayBuffer() + + for ((functionUUID, symbolUUID) <- functionNames) { + val procedure = createProcedure(functionUUID, symbolUUID) + procedures += procedure + } + + // maybe good to sort blocks by address around here? + + val semanticsLoader = SemanticsLoader(parserMap) + + for ((functionUUID, blockUUIDs) <- functionBlocks) { + val procedure = uuidToProcedure(functionUUID) + var blockCount = 0 + for (blockUUID <- blockUUIDs) { + val block = uuidToBlock(blockUUID) + + val statements = semanticsLoader.visitBlock(blockUUID, blockCount, block.address) + blockCount += 1 + block.statements.addAll(statements) + + if (block.statements.isEmpty && !blockOutgoingEdges.contains(blockUUID)) { + // remove blocks that are just nop padding + // TODO cleanup blocks that are entirely nop but have fallthrough edges? + Logger.debug(s"removing block ${block.label}") + procedure.removeBlocks(block) + } else { + if (!blockOutgoingEdges.contains(blockUUID)) { + throw Exception (s"block ${block.label} in subroutine ${procedure.name} has no outgoing edges") + } + val outgoingEdges = blockOutgoingEdges(blockUUID) + if (outgoingEdges.isEmpty) { + throw Exception(s"block ${block.label} in subroutine ${procedure.name} has no outgoing edges") + } + + val jump = if (outgoingEdges.size == 1) { + val edge = outgoingEdges.head + handleSingleEdge(block, edge, procedure, procedures) + } else { + handleMultipleEdges(block, outgoingEdges, procedure) + } + block.replaceJump(jump) + + if (block.statements.nonEmpty) { + cleanUpIfPCAssign(block, procedure) + } + } + } + } + + val sections = mods.flatMap(_.sections) + + val initialMemory: ArrayBuffer[MemorySection] = ArrayBuffer() + sections.map {elem => + val bytestoInt = elem.byteIntervals.head.contents.toByteArray.map(byte => BigInt(byte)) + val bytes = bytestoInt.map {byte => + if (byte < 0) { + BitVecLiteral(byte + (BigInt(1) << 8), 8) + } else { + BitVecLiteral(byte, 8) + } + } + val section = MemorySection(elem.name, elem.byteIntervals.head.address.toInt, elem.byteIntervals.head.size.toInt, bytes.toSeq) + initialMemory += section + } + + val readOnlyMemory: ArrayBuffer[MemorySection] = ArrayBuffer() + val intialProc: Procedure = procedures.find(_.address.get == mainAddress).get + + Program(procedures, intialProc, initialMemory, readOnlyMemory) + } + + private def removePCAssign(block: Block): Unit = { + block.statements.last match { + case LocalAssign(lhs: Register, _, _) if lhs.name == "_PC" => block.statements.remove(block.statements.last) + case _ => throw Exception(s"expected block ${block.label} to have a program counter assignment at its end") + } + } + + private def byteStringToString(byteString: ByteString): String = { + Base64.getUrlEncoder.encodeToString(byteString.toByteArray) + } + + private def createProcedure(functionUUID: ByteString, symbolUUID: ByteString): Procedure = { + val name = uuidToSymbol(symbolUUID).name + + val entrances = functionEntries(functionUUID) + if (entrances.size > 1) { + // TODO this is a case that requires special consideration + throw Exception(s"procedure $name with has multiple entrances") + } + if (entrances.isEmpty) { + throw Exception(s"procedure $name with has no entrances") + } + + val entranceUUID = entrances.head + val address = blockUUIDToAddress.get(entranceUUID) + + val (in, out) = createArguments(name) + + val procedure = Procedure(name, address, in = in, out = out) + uuidToProcedure += (functionUUID -> procedure) + entranceUUIDtoProcedure += (entranceUUID -> procedure) + + // sort blocks by address to give a more practical order + val blockUUIDs = functionBlocks(functionUUID) + val blockUUIDsSorted = blockUUIDs.toSeq.sortBy(blockUUIDToAddress(_)) + // should probably check if empty? + + var blockCount = 0 + for (blockUUID <- blockUUIDsSorted) { + createBlock(blockUUID, procedure, entranceUUID, blockCount) + blockCount += 1 + } + procedure + } + + private def createBlock(blockUUID: ByteString, procedure: Procedure, entranceUUID: ByteString, blockCount: Int): Block = { + val blockLabel = convertLabel(procedure, blockUUID, blockCount) + + val blockAddress = blockUUIDToAddress.get(blockUUID) + val block = Block(blockLabel, blockAddress) + procedure.addBlocks(block) + if (uuidToBlock.contains(blockUUID)) { + // TODO this is a case that requires special consideration + throw Exception(s"block ${byteStringToString(blockUUID)} is in multiple functions") + } + uuidToBlock += (blockUUID -> block) + if (blockUUID == entranceUUID) { + procedure.entryBlock = Some(block) + } + block + } + + // makes label boogie friendly + private def convertLabel(procedure: Procedure, label: ByteString, blockCount: Int): String = { + "$" + procedure.name + "$__" + blockCount + "__$" + byteStringToString(label).replace("=", "").replace("-", "~").replace("/", "\'") + } + + // handles stray assignments to the program counter (which are indirect calls that DDisasm failed to identify) + // also handles if statements that are not related to conditional edges in the GTIRB CFG + // both must be transformed to ensure correct control flow in the IR + private def cleanUpIfPCAssign(block: Block, procedure: Procedure): Unit = { + var newBlockCount = 0 + var currentBlock = block + var currentStatement = currentBlock.statements.head() + var breakLoop = false + val queue = mutable.Queue[Block]() + while (!breakLoop) { + currentStatement match { + // if statement not related to conditional edges - requires creating new blocks for the if statement contents + case i: TempIf => + val newBlocks = handleIfStatement(i, currentBlock, block.label, newBlockCount) + queue.enqueueAll(newBlocks) + procedure.addBlocks(newBlocks) + newBlockCount += newBlocks.size + + if (queue.nonEmpty) { + currentBlock = queue.dequeue() + currentStatement = currentBlock.statements.head() + } else { + breakLoop = true + } + // assignment to program counter not associated with an edge + // caused by indirect call that DDisasm fails to identify + // potentially requires splitting block + case l: LocalAssign if l.lhs == Register("_PC", BitVecType(64)) => + val newBlocks = handleUnidentifiedIndirectCall(l, currentBlock, block.label, newBlockCount) + procedure.addBlocks(newBlocks) + newBlockCount += newBlocks.size + + for (n <- newBlocks) { + if (n.statements.nonEmpty) { + queue.enqueue(n) + } + } + + if (queue.nonEmpty) { + currentBlock = queue.dequeue() + currentStatement = currentBlock.statements.head() + } else { + breakLoop = true + } + case _ => + if (currentBlock.statements.hasNext(currentStatement)) { + currentStatement = currentBlock.statements.getNext(currentStatement) + } else if (queue.nonEmpty) { + currentBlock = queue.dequeue() + currentStatement = currentBlock.statements.head() + } else { + breakLoop = true + } + } + } + } + + // Handles assignments to the program counter that are not related to edges in the GTIRB CFG + // These are likely blr instructions (which are indirect calls) that DDisasm failed to identify as branching + // If the PC assignment is mid-block, the block is split into two, and an indirect call is created at the end of the first block + // If the PC assignment is at the end of the block, an indirect call is added to the block + // The PC assignment is removed in all cases + // No other cases of unhandled program counter assignments have been identified yet + private def handleUnidentifiedIndirectCall(l: LocalAssign, currentBlock: Block, parentLabel: String, newBlockCountIn: Int): ArrayBuffer[Block] = { + val newBlocks = ArrayBuffer[Block]() + var newBlockCount = newBlockCountIn + + val target = l.rhs match { + case r: Register => r + case _ => throw Exception(s"unhandled indirect call $l does not assign a register to __PC") + } + val returnTarget = if (currentBlock.statements.hasNext(l)) { + // unidentified indirect call is mid-block + val afterStatements = currentBlock.statements.splitOn(l) + val afterBlock = Block(parentLabel + "$__" + newBlockCount, None, afterStatements) + newBlockCount += 1 + newBlocks.append(afterBlock) + afterBlock.replaceJump(currentBlock.jump) + // we are assuming this is a blr instruction and so R30 has been set to point to the next instruction + afterBlock + } else { + // unidentified indirect call is at end of block with fallthrough edge + currentBlock.jump match { + case g: GoTo if g.targets.nonEmpty => + if (g.targets.size == 1) { + g.targets.head + } else { + // case where goto has multiple targets: create an extra block and point to that + val afterBlock = Block(parentLabel + "$__" + newBlockCount, None) + newBlockCount += 1 + newBlocks.append(afterBlock) + afterBlock.replaceJump(currentBlock.jump) + afterBlock + } + case _ => + throw Exception(s"unhandled indirect call $l is at end of block ${currentBlock.label} that ends in call ${currentBlock.jump}") + } + } + // check that R30 has been set by previous statement - if it did not then this is a case that requires further investigation + currentBlock.statements.getPrev(l) match { + case LocalAssign(Register("R30", BitVecType(64)), _, _) => + case _ => throw Exception("unhandled assignment to PC did not set R30 beforehand") + } + + val indirectCall = IndirectCall(target, Some(returnTarget)) + currentBlock.replaceJump(indirectCall) + currentBlock.statements.remove(l) + + newBlocks + } + + // handles if statements that are not related to conditional edges in the GTIRB CFG + // this creates new blocks for the contents of the if statements and removes the TempIfs + private def handleIfStatement(i: TempIf, currentBlock: Block, parentLabel: String, newBlockCountIn: Int): ArrayBuffer[Block] = { + var newBlockCount = newBlockCountIn + val newBlocks = ArrayBuffer[Block]() + + val trueStatements: ArrayBuffer[Statement] = ArrayBuffer(Assume(i.cond, checkSecurity = true)) + trueStatements.appendAll(i.thenStmts) + val trueBlock = Block(parentLabel + "$__" + newBlockCount, None, trueStatements) + newBlockCount += 1 + newBlocks.append(trueBlock) + + val falseStatements: ArrayBuffer[Statement] = ArrayBuffer(Assume(UnaryExpr(BoolNOT, i.cond), checkSecurity = true)) + falseStatements.appendAll(i.elseStmts) + val falseBlock = Block(parentLabel + "$__" + newBlockCount, None, falseStatements) + newBlockCount += 1 + newBlocks.append(falseBlock) + + if (currentBlock.statements.hasNext(i)) { + // if statement is mid-block - need to split block and create new blocks for the if statement's contents + val afterStatements = currentBlock.statements.splitOn(i) + val afterBlock = Block(parentLabel + "$__" + newBlockCount, None, afterStatements) + newBlockCount += 1 + newBlocks.append(afterBlock) + + afterBlock.replaceJump(currentBlock.jump) + trueBlock.replaceJump(GoTo(afterBlock)) + falseBlock.replaceJump(GoTo(afterBlock)) + } else { + // if statement is at end of block - only need to create new blocks for the if statement's contents + // need to copy jump as it can't have multiple parents + val jumpCopy = currentBlock.jump match { + case GoTo(targets, label) => GoTo(targets, label) + case IndirectCall(target, returnTarget, label) => IndirectCall(target, returnTarget, label) + case DirectCall(target, returnTarget, label) => DirectCall(target, returnTarget, label) + case _ => throw Exception("this shouldn't be reachable") + } + trueBlock.replaceJump(currentBlock.jump) + falseBlock.replaceJump(jumpCopy) + } + currentBlock.replaceJump(GoTo(mutable.Set(trueBlock, falseBlock))) + currentBlock.statements.remove(i) + + newBlocks + } + + // Handles the case where a block has one outgoing edge using gtirb cfg labelling + private def handleSingleEdge(block: Block, edge: Edge, procedure: Procedure, procedures: ArrayBuffer[Procedure]): Jump = { + edge.getLabel match { + case EdgeLabel(false, false, Type_Branch, _) => + // indirect jump, possibly to external subroutine, possibly to another block in procedure + // perhaps other possibilities not yet encountered + if (proxies.contains(edge.targetUuid)) { + val proxySymbols = nodeUUIDToSymbols.getOrElse(edge.targetUuid, mutable.Set()) + if (proxySymbols.isEmpty) { + // indirect call with no further information + val target = block.statements.last match { + case LocalAssign(lhs: Register, rhs: Register, _) if lhs.name == "_PC" => rhs + case _ => throw Exception(s"no assignment to program counter found before indirect call in block ${block.label}") + } + block.statements.remove(block.statements.last) // remove _PC assignment + IndirectCall(target, None) + } else if (proxySymbols.size > 1) { + // TODO requires further consideration once encountered + throw Exception(s"multiple uuidToSymbol ${proxySymbols.map(_.name).mkString(", ")} associated with proxy block ${byteStringToString(edge.targetUuid)}, target of indirect call from block ${block.label}") + } else { + // indirect call to external procedure with name + val externalName = proxySymbols.head.name + val target = if (externalProcedures.contains(externalName)) { + externalProcedures(externalName) + } else { + val proc = Procedure(externalName) + externalProcedures += (externalName -> proc) + procedures += proc + proc + } + removePCAssign(block) + DirectCall(target, None) + } + } else if (uuidToBlock.contains(edge.targetUuid)) { + // resolved indirect jump + // TODO consider possibility this can go to another procedure? + val target = uuidToBlock(edge.targetUuid) + removePCAssign(block) + GoTo(mutable.Set(target)) + } else { + throw Exception(s"edge from ${block.label} to ${byteStringToString(edge.targetUuid)} does not point to a known block or proxy block") + } + case EdgeLabel(false, true, Type_Branch, _) => + // direct jump, either goto or tail call + if (entranceUUIDtoProcedure.contains(edge.targetUuid)) { + val targetProc = entranceUUIDtoProcedure(edge.targetUuid) + // direct jump to start of own subroutine is treated as GoTo, not DirectCall + // should probably investigate recursive cases to determine if this happens/is correct + val jump = if (procedure == targetProc) { + GoTo(mutable.Set(uuidToBlock(edge.targetUuid))) + } else { + DirectCall(targetProc, None) + } + removePCAssign(block) + jump + } else if (uuidToBlock.contains(edge.targetUuid)) { + val target = uuidToBlock(edge.targetUuid) + removePCAssign(block) + GoTo(mutable.Set(target)) + } else { + throw Exception(s"edge from ${block.label} to ${byteStringToString(edge.targetUuid)} does not point to a known block") + } + case EdgeLabel(false, _, Type_Return, _) => + // return statement, value of 'direct' is just whether DDisasm has resolved the return target + removePCAssign(block) + IndirectCall(Register("R30", BitVecType(64)), None) + case EdgeLabel(false, true, Type_Fallthrough, _) => + // end of block that doesn't end in a control flow instruction and falls through to next + if (entranceUUIDtoProcedure.contains(edge.targetUuid)) { + // handling weird case where one subroutine falls through to next + // probably doesn't actually happen in practice since it seems to be after brk instructions? + val targetProc = entranceUUIDtoProcedure(edge.targetUuid) + // assuming fallthrough won't fall through to start of own procedure + DirectCall(targetProc, None) + } else if (uuidToBlock.contains(edge.targetUuid)) { + val target = uuidToBlock(edge.targetUuid) + GoTo(mutable.Set(target)) + } else { + throw Exception(s"edge from ${block.label} to ${byteStringToString(edge.targetUuid)} does not point to a known block") + } + case EdgeLabel(false, true, Type_Call, _) => + // call that will not return according to DDisasm even though R30 may be set + // we are going to trust DDisasm here for now but this may require revisiting + if (entranceUUIDtoProcedure.contains(edge.targetUuid)) { + val target = entranceUUIDtoProcedure(edge.targetUuid) + removePCAssign(block) + DirectCall(target, None) + } else { + throw Exception(s"edge from ${block.label} to ${byteStringToString(edge.targetUuid)} does not point to a known procedure entrance") + } + + // case EdgeLabel(false, false, Type_Call, _) => probably what a blr instruction should be + + case _ => throw Exception(s"cannot handle ${edge.getLabel} from block ${block.label}") + } + } + + def handleMultipleEdges(block: Block, outgoingEdges: mutable.Set[Edge], procedure: Procedure): Jump = { + val edgeLabels = outgoingEdges.map(_.getLabel) + + if (edgeLabels.forall { (e: EdgeLabel) => !e.conditional && e.direct && e.`type` == Type_Return }) { + // multiple resolved returns, translate as single return + removePCAssign(block) + IndirectCall(Register("R30", BitVecType(64)), None) + + } else if (edgeLabels.forall { (e: EdgeLabel) => !e.conditional && !e.direct && e.`type` == Type_Branch }) { + // resolved indirect call + val targets = mutable.Set[Block]() + for (edge <- outgoingEdges) { + if (uuidToBlock.contains(edge.targetUuid)) { + // TODO consider possibility edge goes to another procedure? + val target = uuidToBlock(edge.targetUuid) + targets += target + } else { + throw Exception(s"cannot handle ${edge.getLabel} from block ${block.label} as it is an unresolved indirect edge among many resolved indirect edges") + } + } + // TODO add assertion that target register is low + removePCAssign(block) + GoTo(targets) + // TODO possibility not yet encountered: resolved indirect call that goes to multiple procedures? + + } else if (outgoingEdges.size == 2) { + // pair of edges, either direct call with return or conditional branch + + // this is a bit silly, convert to indexed sequence instead? + val iterator = outgoingEdges.iterator + val edge0 = iterator.next() + val edge1 = iterator.next() + + (edge0.getLabel, edge1.getLabel) match { + // direct call with return target + case (EdgeLabel(false, true, Type_Fallthrough, _), EdgeLabel(false, true, Type_Call, _)) => + handleDirectCallWithReturn(edge0, edge1, block) + case (EdgeLabel(false, true, Type_Call, _), EdgeLabel(false, true, Type_Fallthrough, _)) => + handleDirectCallWithReturn(edge1, edge0, block) + /* + these are probably what blr should resolve to once that's fixed? + case (EdgeLabel(false, true, Type_Fallthrough, _), EdgeLabel(false, false, Type_Call, _)) => + case (EdgeLabel(false, false, Type_Call, _), EdgeLabel(false, true, Type_Fallthrough, _)) => + */ + + // conditional branch + case (EdgeLabel(true, true, Type_Fallthrough, _), EdgeLabel(true, true, Type_Branch, _)) => + handleConditionalBranch(edge0, edge1, block, procedure) + case (EdgeLabel(true, true, Type_Branch, _), EdgeLabel(true, true, Type_Fallthrough, _)) => + handleConditionalBranch(edge1, edge0, block, procedure) + case _ => + throw Exception(s"cannot resolve outgoing edges from block ${block.label}") + } + } else { + throw Exception(s"cannot resolve outgoing edges from block ${block.label}") + } + } + + private def handleDirectCallWithReturn(fallthrough: Edge, call: Edge, block: Block): DirectCall = { + if (!entranceUUIDtoProcedure.contains(call.targetUuid)) { + throw Exception(s"block ${block.label} has direct call edge to ${byteStringToString(call.targetUuid)} that does not point to a known procedure") + } + + if (!uuidToBlock.contains(fallthrough.targetUuid)) { + throw Exception(s"block ${block.label} has fallthrough edge to ${byteStringToString(fallthrough.targetUuid)} that does not point to a known block") + } + + val target = entranceUUIDtoProcedure(call.targetUuid) + val returnTarget = uuidToBlock(fallthrough.targetUuid) + removePCAssign(block) + DirectCall(target, Some(returnTarget)) + } + + private def handleConditionalBranch(fallthrough: Edge, branch: Edge, block: Block, procedure: Procedure): GoTo = { + if (!uuidToBlock.contains(fallthrough.targetUuid)) { + throw Exception(s"block ${block.label} has fallthrough edge to ${byteStringToString(fallthrough.targetUuid)} that does not point to a known block") + } + + if (!uuidToBlock.contains(branch.targetUuid)) { + throw Exception(s"block ${block.label} has branch edge to ${byteStringToString(fallthrough.targetUuid)} that does not point to a known block") + } + + val tempIf = block.statements.last match { + case i: TempIf => i + case _ => throw Exception(s"last statement of block ${block.label} is not an if statement") + } + // maybe need to actually examine the if statement's contents? + + val trueBlock = newBlockCondition(block, uuidToBlock(branch.targetUuid), tempIf.cond) + val falseBlock = newBlockCondition(block, uuidToBlock(fallthrough.targetUuid), UnaryExpr(BoolNOT, tempIf.cond)) + + val newBlocks = ArrayBuffer(trueBlock, falseBlock) + procedure.addBlocks(newBlocks) + block.statements.remove(tempIf) + + GoTo(newBlocks) + } + + private def newBlockCondition(block: Block, target: Block, condition: Expr): Block = { + val newLabel = s"${block.label}_goto_${target.label}" + val assume = Assume(condition, checkSecurity = true) + Block(newLabel, None, ArrayBuffer(assume), GoTo(ArrayBuffer(target))) + } + +} \ No newline at end of file diff --git a/src/main/scala/translating/IRToBoogie.scala b/src/main/scala/translating/IRToBoogie.scala index 2dd2204c5..62b9d26ca 100644 --- a/src/main/scala/translating/IRToBoogie.scala +++ b/src/main/scala/translating/IRToBoogie.scala @@ -405,32 +405,29 @@ class IRToBoogie(var program: Program, var spec: Specification) { } def pushUpModifiesFixedPoint(procedures: List[BProcedure]): List[BProcedure] = { - pushUpModifies(procedures) match { - case (true, proc) => pushUpModifiesFixedPoint(proc) - case (false, proc) => proc - } - } - def pushUpModifies(procedures: List[BProcedure]): (Boolean, List[BProcedure]) = { - var changed = false + var changed = true + var proceduresUpdated = procedures + while (changed) { + changed = false + val nameToProcedure = proceduresUpdated.map(p => p.name -> p).toMap + proceduresUpdated = proceduresUpdated.map( + procedure => { + val cmds: List[BCmd] = procedure.body.flatten { + case b: BBlock => b.body + case c: BCmd => Seq(c) + } + val callModifies = cmds.collect { case c: BProcedureCall => nameToProcedure(c.name) }.flatMap(_.modifies) + val modifiesUpdate = procedure.modifies ++ callModifies + if (modifiesUpdate != procedure.modifies) { + changed = true + } - val procs: List[BProcedure] = procedures.map( - procedure => { - val cmds: List[BCmd] = procedure.body.flatten { - case b: BBlock => b.body - case c: BCmd => Seq(c) + procedure.copy(modifies = modifiesUpdate) } - - val modifies: Set[BVar] = procedure.modifies ++ cmds.collect{ case x: BProcedureCall => procedures.find(_.name == x.name)} - .flatten.flatMap(_.modifies) - - if (procedure.modifies != procedure.modifies) - changed = true - - procedure.copy(modifies = modifies) - } - ) - (changed, procs) + ) + } + proceduresUpdated } @@ -475,7 +472,7 @@ class IRToBoogie(var program: Program, var spec: Specification) { freeEnsures, freeRequires, modifies.toSet, - body.toList + body ) } diff --git a/src/main/scala/translating/SemanticsLoader.scala b/src/main/scala/translating/SemanticsLoader.scala new file mode 100644 index 000000000..2aa452ff3 --- /dev/null +++ b/src/main/scala/translating/SemanticsLoader.scala @@ -0,0 +1,524 @@ +package translating +import Parsers.SemanticsParser.* +import com.google.protobuf.ByteString +import Parsers.* + +import java.util.Base64 +import scala.jdk.CollectionConverters.* +import ir.* + +import scala.collection.{immutable, mutable} +import scala.collection.mutable.Map +import scala.collection.mutable.ArrayBuffer +import com.grammatech.gtirb.proto.Module.ByteOrder.LittleEndian +import util.Logger + +class SemanticsLoader(parserMap: immutable.Map[String, Array[Array[StmtContext]]]) { + + private val constMap = mutable.Map[String, IRType]() + private val varMap = mutable.Map[String, IRType]() + private var instructionCount = 0 + private var blockCount = 0 + + val opcodeSize = 4 + + def visitBlock(blockUUID: ByteString, blockCountIn: Int, blockAddress: Option[Int]): ArrayBuffer[Statement] = { + blockCount = blockCountIn + instructionCount = 0 + val instructions = parserMap(Base64.getEncoder.encodeToString(blockUUID.toByteArray)) + + val statements: ArrayBuffer[Statement] = ArrayBuffer() + + for (instruction <- instructions) { + constMap.clear + varMap.clear + + for ((s, i) <- instruction.zipWithIndex) { + + val label = blockAddress.map {(a: Int) => + val instructionAddress = a + (opcodeSize * instructionCount) + instructionAddress.toString + "$" + i + } + + val statement = visitStmt(s, label) + if (statement.isDefined) { + statements.append(statement.get) + } + } + instructionCount += 1 + } + statements + } + + private def visitStmt(ctx: StmtContext, label: Option[String] = None): Option[Statement] = { + ctx match { + case a: AssignContext => visitAssign(a, label) + case c: ConstDeclContext => visitConstDecl(c, label) + case v: VarDeclContext => visitVarDecl(v, label) + case v: VarDeclsNoInitContext => + visitVarDeclsNoInit(v) + None + case a: AssertContext => visitAssert(a, label) + case t: TCallContext => visitTCall(t, label) + case i: IfContext => visitIf(i, label) + case t: ThrowContext => Some(visitThrow(t, label)) + } + } + + private def visitAssert(ctx: AssertContext, label: Option[String] = None): Option[Assert] = { + val expr = visitExpr(ctx.expr) + if (expr.isDefined) { + Some(Assert(expr.get, None, label)) + } else { + None + } + } + + private def visitThrow(ctx: ThrowContext, label: Option[String] = None): Assert = { + val message = ctx.ID().asScala.map(_.getText).mkString(" ,") + Assert(FalseLiteral, Some(message), label) + } + + private def visitTCall(ctx: TCallContext, label: Option[String] = None): Option[Statement] = { + val function = ctx.ID.getText + + val typeArgs = Option(ctx.tes) match { + case Some(e) => e.expr().asScala + case None => Nil + } + val args = Option(ctx.args) match { + case Some(e) => e.expr().asScala + case None => Nil + } + + function match { + case "Mem.set.0" => + checkArgs(function, 1, 4, typeArgs.size, args.size, ctx.getText) + val mem = Memory("mem", 64, 8) // yanked from BAP + val size = parseInt(typeArgs.head) * 8 + val index = visitExpr(args.head) + val value = visitExpr(args(3)) + val otherSize = parseInt(args(1)) * 8 + val accessType = parseInt(args(2)) // AccType enum in ASLi + if (size != otherSize) { + throw Exception(s"inconsistent size parameters in Mem.set.0: ${ctx.getText}") + } + // we expect this to be 0 'AccType_NORMAL' but if we encounter other values they may require further investigation + if (accessType != 0) { + Logger.info(s"Mem.set.0 with non-0 access type encountered: ${ctx.getText}") + } + + // LittleEndian is an assumption + if (index.isDefined && value.isDefined) { + val memstore = MemoryStore(mem, index.get, value.get, Endian.LittleEndian, size) + Some(MemoryAssign(mem, memstore, label)) + } else { + None + } + + case _ => + Logger.debug(s"Unidentified function call $function: ${ctx.getText}") + None + } + } + + private def checkArgs(name: String, typeArgsExpected: Int, argsExpected: Int, typeArgsCount: Int, argsCount: Int, token: String): Unit = { + if (typeArgsExpected != typeArgsCount || argsExpected != argsCount) { + throw Exception(s"Unexpected argument counts for $name - expected $typeArgsExpected type argument(s) and $argsExpected argument(s), got $typeArgsCount type arguments and $argsCount arguments: $token") + } + } + + private def parseInt(ctx: ExprContext) = ctx match { + case e: ExprLitIntContext => e.value.getText.toInt + case _ => throw Exception(s"expected ${ctx.getText} to be an integer literal") + } + + private def visitIf(ctx: IfContext, label: Option[String] = None): Option[TempIf] = { + val condition = visitExpr(ctx.cond) + val thenStmts = ctx.stmt().asScala.flatMap(visitStmt(_, label)) + + val elseStmts = Option(ctx.elseStmt) match { + case Some(_) => ctx.elseStmt.stmt().asScala.flatMap(visitStmt(_, label)) + case None => mutable.Buffer() + } + + if (condition.isDefined) { + Some(TempIf(condition.get, thenStmts, elseStmts, label)) + } else { + None + } + } + + private def visitVarDeclsNoInit(ctx: VarDeclsNoInitContext): Unit = { + val ty = visitType(ctx.`type`()) + ctx.lvars.ID().asScala.foreach(lvar => varMap += (lvar.getText -> ty)) + } + + private def visitVarDecl(ctx: VarDeclContext, label: Option[String] = None): Option[LocalAssign] = { + val ty = visitType(ctx.`type`()) + val name = ctx.lvar.getText + varMap += (name -> ty) + + val expr = visitExpr(ctx.expr()) + if (expr.isDefined) { + Some(LocalAssign(LocalVar(name, ty), expr.get, label)) + } else { + None + } + } + + private def visitAssign(ctx: AssignContext, label: Option[String] = None): Option[LocalAssign] = { + val lhs = visitLexpr(ctx.lexpr) + val rhs = visitExpr(ctx.expr) + if (lhs.isDefined && rhs.isDefined) { + Some(LocalAssign(lhs.get, rhs.get, label)) + } else { + None + } + } + + private def visitConstDecl(ctx: ConstDeclContext, label: Option[String] = None): Option[LocalAssign] = { + val ty = visitType(ctx.`type`()) + val name = ctx.lvar.getText + constMap += (name -> ty) + val expr = visitExpr(ctx.expr) + if (expr.isDefined) { + Some(LocalAssign(LocalVar(name + "$" + blockCount + "$" + instructionCount, ty), expr.get, label)) + } else { + None + } + } + + private def visitType(ctx: TypeContext): IRType = { + ctx match + case e: TypeBitsContext => BitVecType(parseInt(e.size)) + case r: TypeRegisterContext => + // this is a special register - not the same as a register in the IR + // ignoring the register's fields for now + BitVecType(r.size.getText.toInt) + case c: TypeConstructorContext => c.str.getText.match { + case "FPRounding" => BitVecType(2) + case _ => throw Exception(s"unknown type ${ctx.getText}") + } + case _ => throw Exception(s"unknown type ${ctx.getText}") + } + + private def visitExpr(ctx: ExprContext): Option[Expr] = { + ctx match { + case e: ExprVarContext => visitExprVar(e) + case e: ExprTApplyContext => visitExprTApply(e) + case e: ExprSlicesContext => visitExprSlices(e) + case e: ExprFieldContext => Some(visitExprField(e)) + case e: ExprArrayContext => Some(visitExprArray(e)) + case e: ExprLitIntContext => None // we should not encounter this unless expected TODO replace with exception + case e: ExprLitBitsContext => Some(visitExprLitBits(e)) + } + } + + private def visitExprVar(ctx: ExprVarContext): Option[Expr] = { + val name = ctx.ID.getText + name match { + case n if constMap.contains(n) => Some(LocalVar(n + "$" + blockCount + "$" + instructionCount, constMap(n))) + case v if varMap.contains(v) => Some(LocalVar(v, varMap(v))) + case "SP_EL0" => Some(Register("R31", BitVecType(64))) + case "_PC" => Some(Register("_PC", BitVecType(64))) + case "TRUE" => Some(TrueLiteral) + case "FALSE" => Some(FalseLiteral) + case "FPCR" => Some(LocalVar("FPCR", BitVecType(32))) + // ignore the following + case "__BranchTaken" => None + case "BTypeNext" => None + case "BTypeCompatible" => None + case _ => throw Exception(s"could not identify variable '$name'") + } + } + + private def visitExprTApply(ctx: ExprTApplyContext): Option[Expr] = { + + val function = ctx.ID.getText + + val typeArgs: mutable.Buffer[ExprContext] = Option(ctx.tes) match { + case Some(e) => e.expr().asScala + case None => mutable.Buffer() + } + val args: mutable.Buffer[ExprContext] = Option(ctx.args) match { + case Some(e) => e.expr().asScala + case None => mutable.Buffer() + } + + function match { + case "Mem.read.0" => + checkArgs(function, 1, 3, typeArgs.size, args.size, ctx.getText) + val mem = Memory("mem", 64, 8) + val index = visitExpr(args.head) + val size = parseInt(typeArgs.head) * 8 + + val otherSize = parseInt(args(1)) * 8 + val accessType = parseInt(args(2)) // AccType enum in ASLi + if (size != otherSize) { + throw Exception(s"inconsistent size parameters in Mem.read.0: ${ctx.getText}") + } + // we expect this to be 0 'AccType_NORMAL' but if we encounter other values they may require further investigation + if (accessType != 0) { + Logger.info(s"Mem.set.0 with non-0 access type encountered: ${ctx.getText}") + } + + + if (index.isDefined) { + // LittleEndian is assumed + Some(MemoryLoad(mem, index.get, Endian.LittleEndian, size)) + } else { + None + } + + case "cvt_bool_bv.0" => + checkArgs(function, 0, 1, typeArgs.size, args.size, ctx.getText) + val expr = visitExpr(args.head) + if (expr.isDefined) { + val e = expr.get + e match { + case b: BinaryExpr if b.op == BVEQ => Some(BinaryExpr(BVCOMP, b.arg1, b.arg2)) + case _ => throw Exception(s"unhandled conversion from bool to bitvector: ${ctx.getText}") + } + } else { + None + } + + case "not_bool.0" => resolveUnaryOp(BoolNOT, function, 0, typeArgs, args, ctx.getText) + case "eq_enum.0" => resolveBinaryOp(BoolEQ, function, 0, typeArgs, args, ctx.getText) + case "or_bool.0" => resolveBinaryOp(BoolOR, function, 0, typeArgs, args, ctx.getText) + case "and_bool.0" => resolveBinaryOp(BoolAND, function, 0, typeArgs, args, ctx.getText) + + case "not_bits.0" => resolveUnaryOp(BVNOT, function, 1, typeArgs, args, ctx.getText) + case "or_bits.0" => resolveBinaryOp(BVOR, function, 1, typeArgs, args, ctx.getText) + case "and_bits.0" => resolveBinaryOp(BVAND, function, 1, typeArgs, args, ctx.getText) + case "eor_bits.0" => resolveBinaryOp(BVXOR, function, 1, typeArgs, args, ctx.getText) + case "eq_bits.0" => resolveBinaryOp(BVEQ, function, 1, typeArgs, args, ctx.getText) + case "add_bits.0" => resolveBinaryOp(BVADD, function, 1, typeArgs, args, ctx.getText) + case "sub_bits.0" => resolveBinaryOp(BVSUB, function, 1, typeArgs, args, ctx.getText) + case "mul_bits.0" => resolveBinaryOp(BVMUL, function, 1, typeArgs, args, ctx.getText) + case "sdiv_bits.0" => resolveBinaryOp(BVSDIV, function, 1, typeArgs, args, ctx.getText) + + // have not yet encountered these two so need to be careful + case "slt_bits.0" => resolveBinaryOp(BVSLT, function, 1, typeArgs, args, ctx.getText) + case "sle_bits.0" => resolveBinaryOp(BVSLE, function, 1, typeArgs, args, ctx.getText) + + case "lsl_bits.0" => resolveBitShiftOp(BVSHL, function, typeArgs, args, ctx.getText) + case "lsr_bits.0" => resolveBitShiftOp(BVLSHR, function, typeArgs, args, ctx.getText) + case "asr_bits.0" => resolveBitShiftOp(BVASHR, function, typeArgs, args, ctx.getText) + + case "append_bits.0" => + resolveBinaryOp(BVCONCAT, function, 2, typeArgs, args, ctx.getText) + + case "ZeroExtend.0" => + checkArgs(function, 2, 2, typeArgs.size, args.size, ctx.getText) + val oldSize = parseInt(typeArgs(0)) + val newSize = parseInt(typeArgs(1)) + val arg0 = visitExpr(args(0)) + val arg1 = parseInt(args(1)) + if (arg1 != newSize) { + Exception(s"inconsistent size parameters in ZeroExtend.0: ${ctx.getText}") + } + if (arg0.isDefined) { + Some(ZeroExtend(newSize - oldSize, arg0.get)) + } else { + None + } + + case "SignExtend.0" => + checkArgs(function, 2, 2, typeArgs.size, args.size, ctx.getText) + val oldSize = parseInt(typeArgs(0)) + val newSize = parseInt(typeArgs(1)) + val arg0 = visitExpr(args(0)) + val arg1 = parseInt(args(1)) + if (arg1 != newSize) { + Exception(s"inconsistent size parameters in SignExtend.0: ${ctx.getText}") + } + if (arg0.isDefined) { + Some(SignExtend(newSize - oldSize, arg0.get)) + } else { + None + } + + case _ => + Logger.debug(s"unidentified call to $function: ${ctx.getText}") + None + } + + } + + private def resolveBinaryOp(operator: BinOp, + function: String, + typeArgsExpected: Int, + typeArgs: mutable.Buffer[ExprContext], + args: mutable.Buffer[ExprContext], + token: String + ): Option[BinaryExpr] = { + checkArgs(function, typeArgsExpected, 2, typeArgs.size, args.size, token) + // we don't currently check the size for BV ops which is the type arg + val arg0 = visitExpr(args(0)) + val arg1 = visitExpr(args(1)) + if (arg0.isDefined && arg1.isDefined) { + Some(BinaryExpr(operator, arg0.get, arg1.get)) + } else { + None + } + } + + private def resolveUnaryOp(operator: UnOp, + function: String, + typeArgsExpected: Int, + typeArgs: mutable.Buffer[ExprContext], + args: mutable.Buffer[ExprContext], + token: String + ): Option[UnaryExpr] = { + checkArgs(function, typeArgsExpected, 1, typeArgs.size, args.size, token) + // we don't currently check the size for BV ops which is the type arg + val arg = visitExpr(args.head) + if (arg.isDefined) { + Some(UnaryExpr(operator, arg.get)) + } else { + None + } + } + + private def resolveBitShiftOp(operator: BinOp, + function: String, + typeArgs: mutable.Buffer[ExprContext], + args: mutable.Buffer[ExprContext], + token: String + ): Option[BinaryExpr] = { + checkArgs(function, 2, 2, typeArgs.size, args.size, token) + val size0 = parseInt(typeArgs(0)) + val size1 = parseInt(typeArgs(1)) + val arg0 = visitExpr(args(0)) + val arg1 = visitExpr(args(1)) + if (arg0.isDefined && arg1.isDefined) { + if (size0 == size1) { + Some(BinaryExpr(operator, arg0.get, arg1.get)) + } else { + Some(BinaryExpr(operator, arg0.get, ZeroExtend(size0 - size1, arg1.get))) + } + } else { + None + } + } + + private def visitExprSlices(ctx: ExprSlicesContext): Option[Extract] = { + val slices = ctx.slices.slice().asScala + if (slices.size != 1) { + // need to determine the semantics for this case + throw Exception(s"currently unable to handle Expr_Slices that contains more than one slice: ${ctx.getText}") + } + val (hi, lo) = visitSliceContext(slices.head) + val expr = visitExpr(ctx.expr) + if (expr.isDefined) { + Some(Extract(hi, lo, expr.get)) + } else { + None + } + } + + private def visitSliceContext(ctx: SliceContext): (Int, Int) = { + ctx match { + case s: Slice_HiLoContext => + val hi = parseInt(s.hi) + val lo = parseInt(s.lo) + (hi + 1, lo) + case s: Slice_LoWdContext => + val lo = parseInt(s.lo) + val wd = parseInt(s.wd) + (lo + wd, lo) + } + } + + private def visitExprField(ctx: ExprFieldContext): LocalVar = { + val name = ctx.expr match { + case e: ExprVarContext => e.ID.getText + case _ => throw Exception(s"expected ${ctx.getText} to have an Expr_Var as first parameter") + } + val field = ctx.field.getText + + resolveFieldExpr(name, field) + } + + private def visitExprArray(ctx: ExprArrayContext): Register = { + val name = ctx.array match { + case e: ExprVarContext => e.ID.getText + case _ => throw Exception(s"expected ${ctx.getText} to have an Expr_Var as first parameter") + } + val index = parseInt(ctx.index) + + resolveArrayExpr(name, index) + } + + private def visitExprLitBits(ctx: ExprLitBitsContext): BitVecLiteral = { + var num = BigInt(ctx.value.getText, 2) + val len = ctx.value.getText.length + if (num < 0) { + num = num + (BigInt(1) << len) + } + BitVecLiteral(num, len) + } + + private def visitLexpr(ctx: LexprContext): Option[Variable] = { + ctx match { + case l: LExprVarContext => visitLExprVar(l) + case l: LExprFieldContext => Some(visitLExprField(l)) + case l: LExprArrayContext => Some(visitLExprArray(l)) + } + } + + private def visitLExprVar(ctx: LExprVarContext): Option[Variable] = { + val name = ctx.ID.getText + name match { + case n if constMap.contains(n) => Some(LocalVar(n + "$" + blockCount + "$" + instructionCount, constMap(n))) + case v if varMap.contains(v) => Some(LocalVar(v, varMap(v))) + case "SP_EL0" => Some(Register("R31", BitVecType(64))) + case "_PC" => Some(Register("_PC", BitVecType(64))) + // ignore the following + case "TRUE" => throw Exception(s"Boolean literal $name in LExpr ${ctx.getText}") + case "FALSE" => throw Exception(s"Boolean literal $name in LExpr ${ctx.getText}") + case "__BranchTaken" => None + case "BTypeNext" => None + case "BTypeCompatible" => None + case _ => throw Exception(s"could not identify variable '$name' in ${ctx.getText}") + } + } + + private def visitLExprField(ctx: LExprFieldContext): LocalVar = { + val name = ctx.lexpr match { + case l: LExprVarContext => l.ID.getText + case _ => throw Exception(s"expected ${ctx.getText} to have an LExpr_Var as first parameter") + } + val field = ctx.field.getText + + resolveFieldExpr(name, field) + } + + private def visitLExprArray(ctx: LExprArrayContext): Register = { + val name = ctx.lexpr match { + case l: LExprVarContext => l.ID.getText + case _ => throw Exception(s"expected ${ctx.getText} to have an LExpr_Var as first parameter") + } + val index = parseInt(ctx.index) + + resolveArrayExpr(name, index) + } + + private def resolveFieldExpr(name: String, field: String): LocalVar = { + name match { + case "PSTATE" if field == "V" || field == "C" || field == "Z" || field == "N" => + LocalVar(field + "F", BitVecType(1)) + case _ => throw Exception(s"unidentified Expr_Field ($name, $field)") + } + } + + private def resolveArrayExpr(name: String, index: Int): Register = { + name match { + case "_R" => Register(s"R$index", BitVecType(64)) + case "_Z" => Register(s"V$index", BitVecType(128)) + case _ => throw Exception(s"unidentified Expr_Array ($name, $index)") + } + } +} \ No newline at end of file diff --git a/src/main/scala/translating/SpecificationLoader.scala b/src/main/scala/translating/SpecificationLoader.scala index 33a8c1765..f23a0192b 100644 --- a/src/main/scala/translating/SpecificationLoader.scala +++ b/src/main/scala/translating/SpecificationLoader.scala @@ -310,7 +310,7 @@ case class SpecificationLoader(symbols: Set[SpecGlobal], program: Program) { case None => nameToGlobals.get(gamma_id) match { case Some(g: SpecGlobal) => SpecGamma(g) - case None => throw new Exception(s"unresolvable reference to 'Gamma_$id' in specification") + case None => throw new Exception(s"unresolvable reference to '$id' in specification") } } } else { diff --git a/src/main/scala/util/BASILConfig.scala b/src/main/scala/util/BASILConfig.scala index 09b65e303..ac45b1e38 100644 --- a/src/main/scala/util/BASILConfig.scala +++ b/src/main/scala/util/BASILConfig.scala @@ -1,6 +1,6 @@ package util -case class ILLoadingConfig(adtFile: String, relfFile: String, specFile: Option[String] = None, dumpIL: Option[String] = None, mainProcedureName: String = "main", procedureTrimDepth: Int = Int.MaxValue) +case class ILLoadingConfig(inputFile: String, relfFile: String, specFile: Option[String] = None, dumpIL: Option[String] = None, mainProcedureName: String = "main", procedureTrimDepth: Int = Int.MaxValue) case class BoogieGeneratorConfig(memoryFunctionType: BoogieMemoryAccessMode = BoogieMemoryAccessMode.SuccessiveStoreSelect, coalesceConstantMemory: Boolean = true) case class StaticAnalysisConfig(dumpILToPath: Option[String] = None, analysisResultsPath: Option[String] = None, analysisDotPath: Option[String] = None) enum BoogieMemoryAccessMode: diff --git a/src/main/scala/util/IntrusiveList.scala b/src/main/scala/util/IntrusiveList.scala index f19118cd0..6911baecd 100644 --- a/src/main/scala/util/IntrusiveList.scala +++ b/src/main/scala/util/IntrusiveList.scala @@ -165,6 +165,21 @@ final class IntrusiveList[T <: IntrusiveListElement[T]] private ( } } + def splitOn(n: T): IntrusiveList[T] = { + val ne = n.next + + val newlist = new IntrusiveList[T]() + var next = n.next + while (next.isDefined) { + remove(next.get) + newlist.addOne(next.get) + + next = n.next + } + + newlist + } + def remove(intrusiveListElement: T): T = { assert(size >= 0) assert(containsRef(intrusiveListElement)) @@ -231,11 +246,11 @@ final class IntrusiveList[T <: IntrusiveListElement[T]] private ( } object IntrusiveList { - def from[T <: IntrusiveListElement[T]](it: IterableOnce[T]): IntrusiveList[T] = { - val l = new IntrusiveList[T]() - l.addAll(it) - l - } + + def from[T <: IntrusiveListElement[T]](it: IntrusiveList[T]): IntrusiveList[T] = it + + def from[T <: IntrusiveListElement[T]](it: IterableOnce[T]): IntrusiveList[T] = IntrusiveList[T]().addAll(it) + def empty[T <: IntrusiveListElement[T]]: IntrusiveList[T] = new IntrusiveList[T]() } @@ -252,6 +267,8 @@ trait IntrusiveListElement[T <: IntrusiveListElement[T]]: elem } + + private[intrusivelist] final def unitary: Boolean = next.isEmpty && prev.isEmpty private[intrusivelist] final def insertAfter(elem: T): T = { diff --git a/src/main/scala/util/RunUtils.scala b/src/main/scala/util/RunUtils.scala index ade5cfdab..9faab06fb 100644 --- a/src/main/scala/util/RunUtils.scala +++ b/src/main/scala/util/RunUtils.scala @@ -1,5 +1,11 @@ package util +import java.io.{File, PrintWriter, FileInputStream, BufferedWriter, FileWriter, IOException} +import com.grammatech.gtirb.proto.IR.IR +import com.grammatech.gtirb.proto.Module.Module +import com.grammatech.gtirb.proto.Section.Section +import spray.json._ +import gtirb.* import scala.collection.mutable.ListBuffer import scala.collection.mutable.ArrayBuffer import scala.collection.mutable.Set as MutableSet @@ -14,10 +20,14 @@ import ir.* import boogie.* import specification.* import Parsers.* +import Parsers.SemanticsParser.* import org.antlr.v4.runtime.tree.ParseTreeWalker +import org.antlr.v4.runtime.BailErrorStrategy import org.antlr.v4.runtime.{CharStreams, CommonTokenStream} import translating.* import util.Logger +import java.util.Base64 +import spray.json.DefaultJsonProtocol.* import intrusivelist.IntrusiveList import analysis.CfgCommandNode @@ -44,6 +54,35 @@ object RunUtils { BAPLoader.visitProject(parser.project()) } + def loadGTIRB(fileName: String, mainAddress: Int): Program = { + val fIn = FileInputStream(fileName) + val ir = IR.parseFrom(fIn) + val mods = ir.modules + val cfg = ir.cfg.get + + val semantics = mods.map(_.auxData("ast").data.toStringUtf8.parseJson.convertTo[Map[String, Array[Array[String]]]]) + + def parse_insn(f: String): StmtContext = { + try { + val semanticsLexer = SemanticsLexer(CharStreams.fromString(f)) + val tokens = CommonTokenStream(semanticsLexer) + val parser = SemanticsParser(tokens) + parser.setErrorHandler(BailErrorStrategy()) + parser.setBuildParseTree(true) + parser.stmt() + } catch { + case e: org.antlr.v4.runtime.misc.ParseCancellationException => + Logger.error(f) + throw RuntimeException(e) + } + } + + val parserMap = semantics.map(_.map((k: String, v: Array[Array[String]]) => (k, v.map(_.map(parse_insn))))) + + val GTIRBConverter = GTIRBToIR(mods, parserMap.flatten.toMap, cfg, mainAddress) + GTIRBConverter.createIR() + } + def loadReadELF(fileName: String, config: ILLoadingConfig): (Set[ExternalFunction], Set[SpecGlobal], Map[BigInt, BigInt], Int) = { val lexer = ReadELFLexer(CharStreams.fromFileName(fileName)) val tokens = CommonTokenStream(lexer) @@ -75,20 +114,24 @@ object RunUtils { } def loadAndTranslate(q: BASILConfig): BProgram = { - /** - * Loading phase - */ - val bapProgram = loadBAP(q.loading.adtFile) + /** Loading phase + */ val (externalFunctions, globals, globalOffsets, mainAddress) = loadReadELF(q.loading.relfFile, q.loading) - val IRTranslator = BAPToIR(bapProgram, mainAddress) - var IRProgram = IRTranslator.translate + var IRProgram: Program = if (q.loading.inputFile.endsWith(".adt")) { + val bapProgram = loadBAP(q.loading.inputFile) + val IRTranslator = BAPToIR(bapProgram, mainAddress) + IRTranslator.translate + } else if (q.loading.inputFile.endsWith(".gts")) { + loadGTIRB(q.loading.inputFile, mainAddress) + } else { + throw Exception(s"input file name ${q.loading.inputFile} must be an .adt or .gst file") + } val specification = loadSpecification(q.loading.specFile, IRProgram, globals) - /** - * Analysis Phase - */ + /** Analysis Phase + */ Logger.info("[!] Removing external function calls") // Remove external function references (e.g. @printf) val externalNames = externalFunctions.map(e => e.name) @@ -125,7 +168,7 @@ object RunUtils { val interpreter = Interpreter() interpreter.interpret(IRProgram) } - */ + */ Logger.info("[!] Translating to Boogie") val boogieTranslator = IRToBoogie(IRProgram, specification) @@ -298,8 +341,8 @@ object RunUtils { case c: CfgFunctionEntryNode => printNode(c) isEntryNode = true - case c: - CfgCallNoReturnNode => s.append(System.lineSeparator()) + case c: CfgCallNoReturnNode => + s.append(System.lineSeparator()) isEntryNode = false case _ => isEntryNode = false } @@ -319,7 +362,7 @@ object RunUtils { } successor.match { case c: CfgCommandNode if (c.block.label != previousBlock) && (!isEntryNode) => printGoTo(Seq(c)) - case _ => + case _ => } } } @@ -393,10 +436,10 @@ object RunUtils { val result = exprValues.reduce((a, b) => BinaryExpr(BVOR, a, b)) // need to express nondeterministic // choice between these specific options localAssign.rhs = result - */ + */ } case _ => - */ + */ case c: CfgJumpNode => val block = c.block c.data match diff --git a/src/test/Makefile b/src/test/Makefile index abbbaf9b2..63c6d5fb5 100644 --- a/src/test/Makefile +++ b/src/test/Makefile @@ -1,4 +1,4 @@ -TARGETSS := all verify clean cleanall cleanlift recompile +TARGETSS := all verify clean cleanall cleanlift recompile json cleanjson cleangts gts SUBTARGETS = $(wildcard correct/*/ incorrect/*/) .PHONY : $(TARGETSS) $(SUBTARGETS) correct incorrect diff --git a/src/test/correct/arrays_simple/clang/arrays_simple.gts b/src/test/correct/arrays_simple/clang/arrays_simple.gts new file mode 100644 index 000000000..3345ca77c Binary files /dev/null and b/src/test/correct/arrays_simple/clang/arrays_simple.gts differ diff --git a/src/test/correct/arrays_simple/clang_O2/arrays_simple.gts b/src/test/correct/arrays_simple/clang_O2/arrays_simple.gts new file mode 100644 index 000000000..23fd95e14 Binary files /dev/null and b/src/test/correct/arrays_simple/clang_O2/arrays_simple.gts differ diff --git a/src/test/correct/arrays_simple/clang_no_plt_no_pic/arrays_simple.gts b/src/test/correct/arrays_simple/clang_no_plt_no_pic/arrays_simple.gts new file mode 100644 index 000000000..f43864f16 Binary files /dev/null and b/src/test/correct/arrays_simple/clang_no_plt_no_pic/arrays_simple.gts differ diff --git a/src/test/correct/arrays_simple/clang_pic/arrays_simple.gts b/src/test/correct/arrays_simple/clang_pic/arrays_simple.gts new file mode 100644 index 000000000..30450c98f Binary files /dev/null and b/src/test/correct/arrays_simple/clang_pic/arrays_simple.gts differ diff --git a/src/test/correct/arrays_simple/gcc/arrays_simple.gts b/src/test/correct/arrays_simple/gcc/arrays_simple.gts new file mode 100644 index 000000000..38cfa3c41 Binary files /dev/null and b/src/test/correct/arrays_simple/gcc/arrays_simple.gts differ diff --git a/src/test/correct/arrays_simple/gcc_O2/arrays_simple.gts b/src/test/correct/arrays_simple/gcc_O2/arrays_simple.gts new file mode 100644 index 000000000..2e7138314 Binary files /dev/null and b/src/test/correct/arrays_simple/gcc_O2/arrays_simple.gts differ diff --git a/src/test/correct/arrays_simple/gcc_pic/arrays_simple.gts b/src/test/correct/arrays_simple/gcc_pic/arrays_simple.gts new file mode 100644 index 000000000..937b83e3b Binary files /dev/null and b/src/test/correct/arrays_simple/gcc_pic/arrays_simple.gts differ 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 new file mode 100644 index 000000000..229ab27a9 Binary files /dev/null and b/src/test/correct/basic_arrays_read/clang/basic_arrays_read.gts differ diff --git a/src/test/correct/basic_arrays_read/clang_O2/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/clang_O2/basic_arrays_read.gts new file mode 100644 index 000000000..686ec81c7 Binary files /dev/null and b/src/test/correct/basic_arrays_read/clang_O2/basic_arrays_read.gts differ diff --git a/src/test/correct/basic_arrays_read/clang_no_plt_no_pic/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/clang_no_plt_no_pic/basic_arrays_read.gts new file mode 100644 index 000000000..fce6874b5 Binary files /dev/null and b/src/test/correct/basic_arrays_read/clang_no_plt_no_pic/basic_arrays_read.gts differ 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 new file mode 100644 index 000000000..5ae061529 Binary files /dev/null and b/src/test/correct/basic_arrays_read/clang_pic/basic_arrays_read.gts differ 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 new file mode 100644 index 000000000..e88710816 Binary files /dev/null and b/src/test/correct/basic_arrays_read/gcc/basic_arrays_read.gts differ diff --git a/src/test/correct/basic_arrays_read/gcc_O2/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/gcc_O2/basic_arrays_read.gts new file mode 100644 index 000000000..5faecd626 Binary files /dev/null and b/src/test/correct/basic_arrays_read/gcc_O2/basic_arrays_read.gts differ diff --git a/src/test/correct/basic_arrays_read/gcc_no_plt_no_pic/basic_arrays_read.gts b/src/test/correct/basic_arrays_read/gcc_no_plt_no_pic/basic_arrays_read.gts new file mode 100644 index 000000000..9b19db4f1 Binary files /dev/null and b/src/test/correct/basic_arrays_read/gcc_no_plt_no_pic/basic_arrays_read.gts differ 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 new file mode 100644 index 000000000..2e74c96a4 Binary files /dev/null and b/src/test/correct/basic_arrays_read/gcc_pic/basic_arrays_read.gts differ 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 new file mode 100644 index 000000000..556b5c9b0 Binary files /dev/null and b/src/test/correct/basic_arrays_write/clang/basic_arrays_write.gts differ 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 new file mode 100644 index 000000000..b1d8d3b88 Binary files /dev/null and b/src/test/correct/basic_arrays_write/clang_O2/basic_arrays_write.gts differ diff --git a/src/test/correct/basic_arrays_write/clang_no_plt_no_pic/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/clang_no_plt_no_pic/basic_arrays_write.gts new file mode 100644 index 000000000..7234e8fd4 Binary files /dev/null and b/src/test/correct/basic_arrays_write/clang_no_plt_no_pic/basic_arrays_write.gts differ 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 new file mode 100644 index 000000000..1f57e66a1 Binary files /dev/null and b/src/test/correct/basic_arrays_write/clang_pic/basic_arrays_write.gts differ 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 new file mode 100644 index 000000000..9fb6205f2 Binary files /dev/null and b/src/test/correct/basic_arrays_write/gcc/basic_arrays_write.gts differ 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 new file mode 100644 index 000000000..ea5812dc2 Binary files /dev/null and b/src/test/correct/basic_arrays_write/gcc_O2/basic_arrays_write.gts differ diff --git a/src/test/correct/basic_arrays_write/gcc_no_plt_no_pic/basic_arrays_write.gts b/src/test/correct/basic_arrays_write/gcc_no_plt_no_pic/basic_arrays_write.gts new file mode 100644 index 000000000..47fdb4c70 Binary files /dev/null and b/src/test/correct/basic_arrays_write/gcc_no_plt_no_pic/basic_arrays_write.gts differ 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 new file mode 100644 index 000000000..e03b379be Binary files /dev/null and b/src/test/correct/basic_arrays_write/gcc_pic/basic_arrays_write.gts differ 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 new file mode 100644 index 000000000..a63e53f2b Binary files /dev/null and b/src/test/correct/basic_assign_assign/clang/basic_assign_assign.gts differ diff --git a/src/test/correct/basic_assign_assign/clang_O2/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/clang_O2/basic_assign_assign.gts new file mode 100644 index 000000000..272127853 Binary files /dev/null and b/src/test/correct/basic_assign_assign/clang_O2/basic_assign_assign.gts differ diff --git a/src/test/correct/basic_assign_assign/clang_no_plt_no_pic/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/clang_no_plt_no_pic/basic_assign_assign.gts new file mode 100644 index 000000000..1570d59bb Binary files /dev/null and b/src/test/correct/basic_assign_assign/clang_no_plt_no_pic/basic_assign_assign.gts differ 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 new file mode 100644 index 000000000..80080d011 Binary files /dev/null and b/src/test/correct/basic_assign_assign/clang_pic/basic_assign_assign.gts differ 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 new file mode 100644 index 000000000..9e10ef3b3 Binary files /dev/null and b/src/test/correct/basic_assign_assign/gcc/basic_assign_assign.gts differ 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 new file mode 100644 index 000000000..0c788f994 Binary files /dev/null and b/src/test/correct/basic_assign_assign/gcc_O2/basic_assign_assign.gts differ diff --git a/src/test/correct/basic_assign_assign/gcc_no_plt_no_pic/basic_assign_assign.gts b/src/test/correct/basic_assign_assign/gcc_no_plt_no_pic/basic_assign_assign.gts new file mode 100644 index 000000000..3522b181b Binary files /dev/null and b/src/test/correct/basic_assign_assign/gcc_no_plt_no_pic/basic_assign_assign.gts differ 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 new file mode 100644 index 000000000..518d9716b Binary files /dev/null and b/src/test/correct/basic_assign_assign/gcc_pic/basic_assign_assign.gts differ 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 new file mode 100644 index 000000000..77608fb06 Binary files /dev/null and b/src/test/correct/basic_assign_increment/clang/basic_assign_increment.gts differ diff --git a/src/test/correct/basic_assign_increment/clang_O2/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/clang_O2/basic_assign_increment.gts new file mode 100644 index 000000000..62803baea Binary files /dev/null and b/src/test/correct/basic_assign_increment/clang_O2/basic_assign_increment.gts differ diff --git a/src/test/correct/basic_assign_increment/clang_no_plt_no_pic/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/clang_no_plt_no_pic/basic_assign_increment.gts new file mode 100644 index 000000000..2671e202e Binary files /dev/null and b/src/test/correct/basic_assign_increment/clang_no_plt_no_pic/basic_assign_increment.gts differ 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 new file mode 100644 index 000000000..e70fd3400 Binary files /dev/null and b/src/test/correct/basic_assign_increment/clang_pic/basic_assign_increment.gts differ 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 new file mode 100644 index 000000000..b4c124586 Binary files /dev/null and b/src/test/correct/basic_assign_increment/gcc/basic_assign_increment.gts differ 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 new file mode 100644 index 000000000..57459215a Binary files /dev/null and b/src/test/correct/basic_assign_increment/gcc_O2/basic_assign_increment.gts differ diff --git a/src/test/correct/basic_assign_increment/gcc_no_plt_no_pic/basic_assign_increment.gts b/src/test/correct/basic_assign_increment/gcc_no_plt_no_pic/basic_assign_increment.gts new file mode 100644 index 000000000..685ddd724 Binary files /dev/null and b/src/test/correct/basic_assign_increment/gcc_no_plt_no_pic/basic_assign_increment.gts differ 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 new file mode 100644 index 000000000..8a79797ef Binary files /dev/null and b/src/test/correct/basic_assign_increment/gcc_pic/basic_assign_increment.gts differ 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 new file mode 100644 index 000000000..ab5f0938e Binary files /dev/null and b/src/test/correct/basic_function_call_caller/clang/basic_function_call_caller.gts differ 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 new file mode 100644 index 000000000..8805d94aa Binary files /dev/null and b/src/test/correct/basic_function_call_caller/clang_O2/basic_function_call_caller.gts differ diff --git a/src/test/correct/basic_function_call_caller/clang_no_plt_no_pic/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/clang_no_plt_no_pic/basic_function_call_caller.gts new file mode 100644 index 000000000..413a7bbda Binary files /dev/null and b/src/test/correct/basic_function_call_caller/clang_no_plt_no_pic/basic_function_call_caller.gts differ 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 new file mode 100644 index 000000000..ba6fb2677 Binary files /dev/null and b/src/test/correct/basic_function_call_caller/clang_pic/basic_function_call_caller.gts differ 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 new file mode 100644 index 000000000..f4482e48d Binary files /dev/null and b/src/test/correct/basic_function_call_caller/gcc/basic_function_call_caller.gts differ 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 new file mode 100644 index 000000000..2007a15b6 Binary files /dev/null and b/src/test/correct/basic_function_call_caller/gcc_O2/basic_function_call_caller.gts differ diff --git a/src/test/correct/basic_function_call_caller/gcc_no_plt_no_pic/basic_function_call_caller.gts b/src/test/correct/basic_function_call_caller/gcc_no_plt_no_pic/basic_function_call_caller.gts new file mode 100644 index 000000000..2d20403e3 Binary files /dev/null and b/src/test/correct/basic_function_call_caller/gcc_no_plt_no_pic/basic_function_call_caller.gts differ 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 new file mode 100644 index 000000000..e1c783093 Binary files /dev/null and b/src/test/correct/basic_function_call_caller/gcc_pic/basic_function_call_caller.gts differ 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 new file mode 100644 index 000000000..d2836b050 Binary files /dev/null and b/src/test/correct/basic_function_call_reader/clang/basic_function_call_reader.gts differ 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 new file mode 100644 index 000000000..82dc0a90e Binary files /dev/null and b/src/test/correct/basic_function_call_reader/clang_O2/basic_function_call_reader.gts differ diff --git a/src/test/correct/basic_function_call_reader/clang_no_plt_no_pic/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/clang_no_plt_no_pic/basic_function_call_reader.gts new file mode 100644 index 000000000..12ef57d95 Binary files /dev/null and b/src/test/correct/basic_function_call_reader/clang_no_plt_no_pic/basic_function_call_reader.gts differ 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 new file mode 100644 index 000000000..3920a7080 Binary files /dev/null and b/src/test/correct/basic_function_call_reader/clang_pic/basic_function_call_reader.gts differ 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 new file mode 100644 index 000000000..bde59cb09 Binary files /dev/null and b/src/test/correct/basic_function_call_reader/gcc/basic_function_call_reader.gts differ 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 new file mode 100644 index 000000000..33ca883b1 Binary files /dev/null and b/src/test/correct/basic_function_call_reader/gcc_O2/basic_function_call_reader.gts differ diff --git a/src/test/correct/basic_function_call_reader/gcc_no_plt_no_pic/basic_function_call_reader.gts b/src/test/correct/basic_function_call_reader/gcc_no_plt_no_pic/basic_function_call_reader.gts new file mode 100644 index 000000000..9920e842c Binary files /dev/null and b/src/test/correct/basic_function_call_reader/gcc_no_plt_no_pic/basic_function_call_reader.gts differ 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 new file mode 100644 index 000000000..027d83ba4 Binary files /dev/null and b/src/test/correct/basic_function_call_reader/gcc_pic/basic_function_call_reader.gts differ 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 new file mode 100644 index 000000000..51af1410c Binary files /dev/null and b/src/test/correct/basic_lock_read/clang/basic_lock_read.gts differ 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 new file mode 100644 index 000000000..b1a22af25 Binary files /dev/null and b/src/test/correct/basic_lock_read/clang_O2/basic_lock_read.gts differ diff --git a/src/test/correct/basic_lock_read/clang_no_plt_no_pic/basic_lock_read.gts b/src/test/correct/basic_lock_read/clang_no_plt_no_pic/basic_lock_read.gts new file mode 100644 index 000000000..faff50ed8 Binary files /dev/null and b/src/test/correct/basic_lock_read/clang_no_plt_no_pic/basic_lock_read.gts differ 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 new file mode 100644 index 000000000..4b94a6d6b Binary files /dev/null and b/src/test/correct/basic_lock_read/clang_pic/basic_lock_read.gts differ 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 new file mode 100644 index 000000000..8721de5c5 Binary files /dev/null and b/src/test/correct/basic_lock_read/gcc/basic_lock_read.gts differ 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 new file mode 100644 index 000000000..b3b81b403 Binary files /dev/null and b/src/test/correct/basic_lock_read/gcc_O2/basic_lock_read.gts differ diff --git a/src/test/correct/basic_lock_read/gcc_no_plt_no_pic/basic_lock_read.gts b/src/test/correct/basic_lock_read/gcc_no_plt_no_pic/basic_lock_read.gts new file mode 100644 index 000000000..6f5b076c2 Binary files /dev/null and b/src/test/correct/basic_lock_read/gcc_no_plt_no_pic/basic_lock_read.gts differ 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 new file mode 100644 index 000000000..bba6b1559 Binary files /dev/null and b/src/test/correct/basic_lock_read/gcc_pic/basic_lock_read.gts differ 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 new file mode 100644 index 000000000..67bebfad2 Binary files /dev/null and b/src/test/correct/basic_lock_security_read/clang/basic_lock_security_read.gts differ 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 new file mode 100644 index 000000000..5b501b699 Binary files /dev/null and b/src/test/correct/basic_lock_security_read/clang_O2/basic_lock_security_read.gts differ diff --git a/src/test/correct/basic_lock_security_read/clang_no_plt_no_pic/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/clang_no_plt_no_pic/basic_lock_security_read.gts new file mode 100644 index 000000000..508b7a936 Binary files /dev/null and b/src/test/correct/basic_lock_security_read/clang_no_plt_no_pic/basic_lock_security_read.gts differ 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 new file mode 100644 index 000000000..ffa5f4d21 Binary files /dev/null and b/src/test/correct/basic_lock_security_read/clang_pic/basic_lock_security_read.gts differ 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 new file mode 100644 index 000000000..ed56d6c7a Binary files /dev/null and b/src/test/correct/basic_lock_security_read/gcc/basic_lock_security_read.gts differ 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 new file mode 100644 index 000000000..15020e8f0 Binary files /dev/null and b/src/test/correct/basic_lock_security_read/gcc_O2/basic_lock_security_read.gts differ diff --git a/src/test/correct/basic_lock_security_read/gcc_no_plt_no_pic/basic_lock_security_read.gts b/src/test/correct/basic_lock_security_read/gcc_no_plt_no_pic/basic_lock_security_read.gts new file mode 100644 index 000000000..0d365010f Binary files /dev/null and b/src/test/correct/basic_lock_security_read/gcc_no_plt_no_pic/basic_lock_security_read.gts differ 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 new file mode 100644 index 000000000..cc7d19697 Binary files /dev/null and b/src/test/correct/basic_lock_security_read/gcc_pic/basic_lock_security_read.gts differ 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 new file mode 100644 index 000000000..a675bd6d1 Binary files /dev/null and b/src/test/correct/basic_lock_security_write/clang/basic_lock_security_write.gts differ 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 new file mode 100644 index 000000000..861057f7c Binary files /dev/null and b/src/test/correct/basic_lock_security_write/clang_O2/basic_lock_security_write.gts differ diff --git a/src/test/correct/basic_lock_security_write/clang_no_plt_no_pic/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/clang_no_plt_no_pic/basic_lock_security_write.gts new file mode 100644 index 000000000..853092642 Binary files /dev/null and b/src/test/correct/basic_lock_security_write/clang_no_plt_no_pic/basic_lock_security_write.gts differ 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 new file mode 100644 index 000000000..4833eb831 Binary files /dev/null and b/src/test/correct/basic_lock_security_write/clang_pic/basic_lock_security_write.gts differ 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 new file mode 100644 index 000000000..3d4f22862 Binary files /dev/null and b/src/test/correct/basic_lock_security_write/gcc/basic_lock_security_write.gts differ 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 new file mode 100644 index 000000000..b81fa0578 Binary files /dev/null and b/src/test/correct/basic_lock_security_write/gcc_O2/basic_lock_security_write.gts differ diff --git a/src/test/correct/basic_lock_security_write/gcc_no_plt_no_pic/basic_lock_security_write.gts b/src/test/correct/basic_lock_security_write/gcc_no_plt_no_pic/basic_lock_security_write.gts new file mode 100644 index 000000000..24d4d5121 Binary files /dev/null and b/src/test/correct/basic_lock_security_write/gcc_no_plt_no_pic/basic_lock_security_write.gts differ 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 new file mode 100644 index 000000000..5b6212671 Binary files /dev/null and b/src/test/correct/basic_lock_security_write/gcc_pic/basic_lock_security_write.gts differ 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 new file mode 100644 index 000000000..1ccf61ac9 Binary files /dev/null and b/src/test/correct/basic_lock_unlock/clang/basic_lock_unlock.gts differ diff --git a/src/test/correct/basic_lock_unlock/clang_O2/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/clang_O2/basic_lock_unlock.gts new file mode 100644 index 000000000..62f5c5d85 Binary files /dev/null and b/src/test/correct/basic_lock_unlock/clang_O2/basic_lock_unlock.gts differ diff --git a/src/test/correct/basic_lock_unlock/clang_no_plt_no_pic/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/clang_no_plt_no_pic/basic_lock_unlock.gts new file mode 100644 index 000000000..aa62e8955 Binary files /dev/null and b/src/test/correct/basic_lock_unlock/clang_no_plt_no_pic/basic_lock_unlock.gts differ 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 new file mode 100644 index 000000000..ecc489753 Binary files /dev/null and b/src/test/correct/basic_lock_unlock/clang_pic/basic_lock_unlock.gts differ 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 new file mode 100644 index 000000000..945a001e9 Binary files /dev/null and b/src/test/correct/basic_lock_unlock/gcc/basic_lock_unlock.gts differ 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 new file mode 100644 index 000000000..1a5c4a872 Binary files /dev/null and b/src/test/correct/basic_lock_unlock/gcc_O2/basic_lock_unlock.gts differ diff --git a/src/test/correct/basic_lock_unlock/gcc_no_plt_no_pic/basic_lock_unlock.gts b/src/test/correct/basic_lock_unlock/gcc_no_plt_no_pic/basic_lock_unlock.gts new file mode 100644 index 000000000..cec60afab Binary files /dev/null and b/src/test/correct/basic_lock_unlock/gcc_no_plt_no_pic/basic_lock_unlock.gts differ 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 new file mode 100644 index 000000000..feb2bc3a3 Binary files /dev/null and b/src/test/correct/basic_lock_unlock/gcc_pic/basic_lock_unlock.gts differ 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 new file mode 100644 index 000000000..b8a26dd97 Binary files /dev/null and b/src/test/correct/basic_loop_assign/clang/basic_loop_assign.gts differ diff --git a/src/test/correct/basic_loop_assign/clang_O2/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/clang_O2/basic_loop_assign.gts new file mode 100644 index 000000000..9d5150971 Binary files /dev/null and b/src/test/correct/basic_loop_assign/clang_O2/basic_loop_assign.gts differ diff --git a/src/test/correct/basic_loop_assign/clang_no_plt_no_pic/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/clang_no_plt_no_pic/basic_loop_assign.gts new file mode 100644 index 000000000..ee83121fc Binary files /dev/null and b/src/test/correct/basic_loop_assign/clang_no_plt_no_pic/basic_loop_assign.gts differ 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 new file mode 100644 index 000000000..8f654fb69 Binary files /dev/null and b/src/test/correct/basic_loop_assign/clang_pic/basic_loop_assign.gts differ 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 new file mode 100644 index 000000000..8e8324c3c Binary files /dev/null and b/src/test/correct/basic_loop_assign/gcc/basic_loop_assign.gts differ 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 new file mode 100644 index 000000000..6e7c12f3e Binary files /dev/null and b/src/test/correct/basic_loop_assign/gcc_O2/basic_loop_assign.gts differ diff --git a/src/test/correct/basic_loop_assign/gcc_no_plt_no_pic/basic_loop_assign.gts b/src/test/correct/basic_loop_assign/gcc_no_plt_no_pic/basic_loop_assign.gts new file mode 100644 index 000000000..d46723453 Binary files /dev/null and b/src/test/correct/basic_loop_assign/gcc_no_plt_no_pic/basic_loop_assign.gts differ 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 new file mode 100644 index 000000000..32cdfe941 Binary files /dev/null and b/src/test/correct/basic_loop_assign/gcc_pic/basic_loop_assign.gts differ 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 new file mode 100644 index 000000000..151f82f12 Binary files /dev/null and b/src/test/correct/basic_operation_evaluation/clang/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/clang_O2/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/clang_O2/basic_operation_evaluation.gts new file mode 100644 index 000000000..0cc88363a Binary files /dev/null and b/src/test/correct/basic_operation_evaluation/clang_O2/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/clang_no_plt_no_pic/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/clang_no_plt_no_pic/basic_operation_evaluation.gts new file mode 100644 index 000000000..55c0a0c7c Binary files /dev/null and b/src/test/correct/basic_operation_evaluation/clang_no_plt_no_pic/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/clang_pic/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/clang_pic/basic_operation_evaluation.gts new file mode 100644 index 000000000..48258ef67 Binary files /dev/null and b/src/test/correct/basic_operation_evaluation/clang_pic/basic_operation_evaluation.gts differ 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 new file mode 100644 index 000000000..a9e3f9b7d Binary files /dev/null and b/src/test/correct/basic_operation_evaluation/gcc/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/gcc_O2/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/gcc_O2/basic_operation_evaluation.gts new file mode 100644 index 000000000..9a94fea2b Binary files /dev/null and b/src/test/correct/basic_operation_evaluation/gcc_O2/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/gcc_no_plt_no_pic/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/gcc_no_plt_no_pic/basic_operation_evaluation.gts new file mode 100644 index 000000000..6d9e9f071 Binary files /dev/null and b/src/test/correct/basic_operation_evaluation/gcc_no_plt_no_pic/basic_operation_evaluation.gts differ diff --git a/src/test/correct/basic_operation_evaluation/gcc_pic/basic_operation_evaluation.gts b/src/test/correct/basic_operation_evaluation/gcc_pic/basic_operation_evaluation.gts new file mode 100644 index 000000000..90ed2f3d4 Binary files /dev/null and b/src/test/correct/basic_operation_evaluation/gcc_pic/basic_operation_evaluation.gts differ 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 new file mode 100644 index 000000000..eafcf77d1 Binary files /dev/null and b/src/test/correct/basic_sec_policy_read/clang/basic_sec_policy_read.gts differ 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 new file mode 100644 index 000000000..d70fd9d11 Binary files /dev/null and b/src/test/correct/basic_sec_policy_read/clang_O2/basic_sec_policy_read.gts differ diff --git a/src/test/correct/basic_sec_policy_read/clang_no_plt_no_pic/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/clang_no_plt_no_pic/basic_sec_policy_read.gts new file mode 100644 index 000000000..814f8c8ce Binary files /dev/null and b/src/test/correct/basic_sec_policy_read/clang_no_plt_no_pic/basic_sec_policy_read.gts differ 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 new file mode 100644 index 000000000..ad2a90443 Binary files /dev/null and b/src/test/correct/basic_sec_policy_read/clang_pic/basic_sec_policy_read.gts differ 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 new file mode 100644 index 000000000..ebf450b81 Binary files /dev/null and b/src/test/correct/basic_sec_policy_read/gcc/basic_sec_policy_read.gts differ 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 new file mode 100644 index 000000000..c28ce955e Binary files /dev/null and b/src/test/correct/basic_sec_policy_read/gcc_O2/basic_sec_policy_read.gts differ diff --git a/src/test/correct/basic_sec_policy_read/gcc_no_plt_no_pic/basic_sec_policy_read.gts b/src/test/correct/basic_sec_policy_read/gcc_no_plt_no_pic/basic_sec_policy_read.gts new file mode 100644 index 000000000..7d55add0f Binary files /dev/null and b/src/test/correct/basic_sec_policy_read/gcc_no_plt_no_pic/basic_sec_policy_read.gts differ 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 new file mode 100644 index 000000000..493f11c3e Binary files /dev/null and b/src/test/correct/basic_sec_policy_read/gcc_pic/basic_sec_policy_read.gts differ 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 new file mode 100644 index 000000000..c703410f4 Binary files /dev/null and b/src/test/correct/basic_sec_policy_write/clang/basic_sec_policy_write.gts differ 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 new file mode 100644 index 000000000..1ed9d1675 Binary files /dev/null and b/src/test/correct/basic_sec_policy_write/clang_O2/basic_sec_policy_write.gts differ diff --git a/src/test/correct/basic_sec_policy_write/clang_no_plt_no_pic/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/clang_no_plt_no_pic/basic_sec_policy_write.gts new file mode 100644 index 000000000..1837a030d Binary files /dev/null and b/src/test/correct/basic_sec_policy_write/clang_no_plt_no_pic/basic_sec_policy_write.gts differ 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 new file mode 100644 index 000000000..2deff601a Binary files /dev/null and b/src/test/correct/basic_sec_policy_write/clang_pic/basic_sec_policy_write.gts differ 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 new file mode 100644 index 000000000..c8737d857 Binary files /dev/null and b/src/test/correct/basic_sec_policy_write/gcc/basic_sec_policy_write.gts differ 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 new file mode 100644 index 000000000..ccef7f178 Binary files /dev/null and b/src/test/correct/basic_sec_policy_write/gcc_O2/basic_sec_policy_write.gts differ diff --git a/src/test/correct/basic_sec_policy_write/gcc_no_plt_no_pic/basic_sec_policy_write.gts b/src/test/correct/basic_sec_policy_write/gcc_no_plt_no_pic/basic_sec_policy_write.gts new file mode 100644 index 000000000..6cbe0d67b Binary files /dev/null and b/src/test/correct/basic_sec_policy_write/gcc_no_plt_no_pic/basic_sec_policy_write.gts differ 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 new file mode 100644 index 000000000..843b2eb52 Binary files /dev/null and b/src/test/correct/basic_sec_policy_write/gcc_pic/basic_sec_policy_write.gts differ diff --git a/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.gts new file mode 100644 index 000000000..f5254cb3a Binary files /dev/null and b/src/test/correct/basicassign_gamma0/clang/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/clang_O2/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/clang_O2/basicassign_gamma0.gts new file mode 100644 index 000000000..2a094a881 Binary files /dev/null and b/src/test/correct/basicassign_gamma0/clang_O2/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/clang_no_plt_no_pic/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/clang_no_plt_no_pic/basicassign_gamma0.gts new file mode 100644 index 000000000..5447308ee Binary files /dev/null and b/src/test/correct/basicassign_gamma0/clang_no_plt_no_pic/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.gts new file mode 100644 index 000000000..bd67c8409 Binary files /dev/null and b/src/test/correct/basicassign_gamma0/clang_pic/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.gts new file mode 100644 index 000000000..8ced2e0e2 Binary files /dev/null and b/src/test/correct/basicassign_gamma0/gcc/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.gts new file mode 100644 index 000000000..520500a1d Binary files /dev/null and b/src/test/correct/basicassign_gamma0/gcc_O2/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/gcc_no_plt_no_pic/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/gcc_no_plt_no_pic/basicassign_gamma0.gts new file mode 100644 index 000000000..0f71b0238 Binary files /dev/null and b/src/test/correct/basicassign_gamma0/gcc_no_plt_no_pic/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.gts b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.gts new file mode 100644 index 000000000..bcd83405d Binary files /dev/null and b/src/test/correct/basicassign_gamma0/gcc_pic/basicassign_gamma0.gts differ diff --git a/src/test/correct/basicfree/clang/basicfree.gts b/src/test/correct/basicfree/clang/basicfree.gts new file mode 100644 index 000000000..62a5b3f1d Binary files /dev/null and b/src/test/correct/basicfree/clang/basicfree.gts differ diff --git a/src/test/correct/basicfree/clang_O2/basicfree.gts b/src/test/correct/basicfree/clang_O2/basicfree.gts new file mode 100644 index 000000000..72e4d42f1 Binary files /dev/null and b/src/test/correct/basicfree/clang_O2/basicfree.gts differ diff --git a/src/test/correct/basicfree/clang_no_plt_no_pic/basicfree.gts b/src/test/correct/basicfree/clang_no_plt_no_pic/basicfree.gts new file mode 100644 index 000000000..dc19fb586 Binary files /dev/null and b/src/test/correct/basicfree/clang_no_plt_no_pic/basicfree.gts differ diff --git a/src/test/correct/basicfree/clang_pic/basicfree.gts b/src/test/correct/basicfree/clang_pic/basicfree.gts new file mode 100644 index 000000000..f09cd767d Binary files /dev/null and b/src/test/correct/basicfree/clang_pic/basicfree.gts differ diff --git a/src/test/correct/basicfree/gcc/basicfree.gts b/src/test/correct/basicfree/gcc/basicfree.gts new file mode 100644 index 000000000..dc81848ab Binary files /dev/null and b/src/test/correct/basicfree/gcc/basicfree.gts differ diff --git a/src/test/correct/basicfree/gcc_O2/basicfree.gts b/src/test/correct/basicfree/gcc_O2/basicfree.gts new file mode 100644 index 000000000..93e78a1cf Binary files /dev/null and b/src/test/correct/basicfree/gcc_O2/basicfree.gts differ diff --git a/src/test/correct/basicfree/gcc_no_plt_no_pic/basicfree.gts b/src/test/correct/basicfree/gcc_no_plt_no_pic/basicfree.gts new file mode 100644 index 000000000..8d175f225 Binary files /dev/null and b/src/test/correct/basicfree/gcc_no_plt_no_pic/basicfree.gts differ diff --git a/src/test/correct/basicfree/gcc_pic/basicfree.gts b/src/test/correct/basicfree/gcc_pic/basicfree.gts new file mode 100644 index 000000000..c81383287 Binary files /dev/null and b/src/test/correct/basicfree/gcc_pic/basicfree.gts differ diff --git a/src/test/correct/cjump/clang/cjump.gts b/src/test/correct/cjump/clang/cjump.gts new file mode 100644 index 000000000..de7dc0c16 Binary files /dev/null and b/src/test/correct/cjump/clang/cjump.gts differ diff --git a/src/test/correct/cjump/clang_O2/cjump.gts b/src/test/correct/cjump/clang_O2/cjump.gts new file mode 100644 index 000000000..5ece49e7e Binary files /dev/null and b/src/test/correct/cjump/clang_O2/cjump.gts differ diff --git a/src/test/correct/cjump/clang_no_plt_no_pic/cjump.gts b/src/test/correct/cjump/clang_no_plt_no_pic/cjump.gts new file mode 100644 index 000000000..a7df4ad0e Binary files /dev/null and b/src/test/correct/cjump/clang_no_plt_no_pic/cjump.gts differ diff --git a/src/test/correct/cjump/clang_pic/cjump.gts b/src/test/correct/cjump/clang_pic/cjump.gts new file mode 100644 index 000000000..5ace34b81 Binary files /dev/null and b/src/test/correct/cjump/clang_pic/cjump.gts differ diff --git a/src/test/correct/cjump/gcc/cjump.gts b/src/test/correct/cjump/gcc/cjump.gts new file mode 100644 index 000000000..0cb992099 Binary files /dev/null and b/src/test/correct/cjump/gcc/cjump.gts differ diff --git a/src/test/correct/cjump/gcc_O2/cjump.gts b/src/test/correct/cjump/gcc_O2/cjump.gts new file mode 100644 index 000000000..8844b8927 Binary files /dev/null and b/src/test/correct/cjump/gcc_O2/cjump.gts differ diff --git a/src/test/correct/cjump/gcc_no_plt_no_pic/cjump.gts b/src/test/correct/cjump/gcc_no_plt_no_pic/cjump.gts new file mode 100644 index 000000000..00b3afb02 Binary files /dev/null and b/src/test/correct/cjump/gcc_no_plt_no_pic/cjump.gts differ diff --git a/src/test/correct/cjump/gcc_pic/cjump.gts b/src/test/correct/cjump/gcc_pic/cjump.gts new file mode 100644 index 000000000..e3574d3d7 Binary files /dev/null and b/src/test/correct/cjump/gcc_pic/cjump.gts differ diff --git a/src/test/correct/function/clang/function.gts b/src/test/correct/function/clang/function.gts new file mode 100644 index 000000000..83d58c9f2 Binary files /dev/null and b/src/test/correct/function/clang/function.gts differ diff --git a/src/test/correct/function/clang_O2/function.gts b/src/test/correct/function/clang_O2/function.gts new file mode 100644 index 000000000..a45c6f1ce Binary files /dev/null and b/src/test/correct/function/clang_O2/function.gts differ diff --git a/src/test/correct/function/clang_no_plt_no_pic/function.gts b/src/test/correct/function/clang_no_plt_no_pic/function.gts new file mode 100644 index 000000000..73f02ccbe Binary files /dev/null and b/src/test/correct/function/clang_no_plt_no_pic/function.gts differ diff --git a/src/test/correct/function/clang_pic/function.gts b/src/test/correct/function/clang_pic/function.gts new file mode 100644 index 000000000..f3b45bd90 Binary files /dev/null and b/src/test/correct/function/clang_pic/function.gts differ diff --git a/src/test/correct/function/gcc/function.gts b/src/test/correct/function/gcc/function.gts new file mode 100644 index 000000000..5caf0107a Binary files /dev/null and b/src/test/correct/function/gcc/function.gts differ diff --git a/src/test/correct/function/gcc_O2/function.gts b/src/test/correct/function/gcc_O2/function.gts new file mode 100644 index 000000000..c306d5978 Binary files /dev/null and b/src/test/correct/function/gcc_O2/function.gts differ diff --git a/src/test/correct/function/gcc_no_plt_no_pic/function.gts b/src/test/correct/function/gcc_no_plt_no_pic/function.gts new file mode 100644 index 000000000..bf66356b0 Binary files /dev/null and b/src/test/correct/function/gcc_no_plt_no_pic/function.gts differ diff --git a/src/test/correct/function/gcc_pic/function.gts b/src/test/correct/function/gcc_pic/function.gts new file mode 100644 index 000000000..6ae7b0886 Binary files /dev/null and b/src/test/correct/function/gcc_pic/function.gts differ diff --git a/src/test/correct/function1/clang/function1.gts b/src/test/correct/function1/clang/function1.gts new file mode 100644 index 000000000..759968216 Binary files /dev/null and b/src/test/correct/function1/clang/function1.gts differ diff --git a/src/test/correct/function1/clang_O2/function1.gts b/src/test/correct/function1/clang_O2/function1.gts new file mode 100644 index 000000000..c46304c7a Binary files /dev/null and b/src/test/correct/function1/clang_O2/function1.gts differ diff --git a/src/test/correct/function1/clang_no_plt_no_pic/function1.gts b/src/test/correct/function1/clang_no_plt_no_pic/function1.gts new file mode 100644 index 000000000..0a3562e4d Binary files /dev/null and b/src/test/correct/function1/clang_no_plt_no_pic/function1.gts differ diff --git a/src/test/correct/function1/clang_pic/function1.gts b/src/test/correct/function1/clang_pic/function1.gts new file mode 100644 index 000000000..029d24778 Binary files /dev/null and b/src/test/correct/function1/clang_pic/function1.gts differ diff --git a/src/test/correct/function1/gcc/function1.gts b/src/test/correct/function1/gcc/function1.gts new file mode 100644 index 000000000..e43e5e88a Binary files /dev/null and b/src/test/correct/function1/gcc/function1.gts differ diff --git a/src/test/correct/function1/gcc_O2/function1.gts b/src/test/correct/function1/gcc_O2/function1.gts new file mode 100644 index 000000000..577055e0f Binary files /dev/null and b/src/test/correct/function1/gcc_O2/function1.gts differ diff --git a/src/test/correct/function1/gcc_no_plt_no_pic/function1.gts b/src/test/correct/function1/gcc_no_plt_no_pic/function1.gts new file mode 100644 index 000000000..8a63a2d10 Binary files /dev/null and b/src/test/correct/function1/gcc_no_plt_no_pic/function1.gts differ diff --git a/src/test/correct/function1/gcc_pic/function1.gts b/src/test/correct/function1/gcc_pic/function1.gts new file mode 100644 index 000000000..fa305b4af Binary files /dev/null and b/src/test/correct/function1/gcc_pic/function1.gts differ diff --git a/src/test/correct/functionpointer/clang/functionpointer.gts b/src/test/correct/functionpointer/clang/functionpointer.gts new file mode 100644 index 000000000..ab41a4fd5 Binary files /dev/null and b/src/test/correct/functionpointer/clang/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/clang_O2/functionpointer.gts b/src/test/correct/functionpointer/clang_O2/functionpointer.gts new file mode 100644 index 000000000..1d20aed98 Binary files /dev/null and b/src/test/correct/functionpointer/clang_O2/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/clang_no_plt_no_pic/functionpointer.gts b/src/test/correct/functionpointer/clang_no_plt_no_pic/functionpointer.gts new file mode 100644 index 000000000..5fffaff66 Binary files /dev/null and b/src/test/correct/functionpointer/clang_no_plt_no_pic/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/clang_pic/functionpointer.gts b/src/test/correct/functionpointer/clang_pic/functionpointer.gts new file mode 100644 index 000000000..cf296d732 Binary files /dev/null and b/src/test/correct/functionpointer/clang_pic/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/gcc/functionpointer.gts b/src/test/correct/functionpointer/gcc/functionpointer.gts new file mode 100644 index 000000000..215e96f51 Binary files /dev/null and b/src/test/correct/functionpointer/gcc/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/gcc_O2/functionpointer.gts b/src/test/correct/functionpointer/gcc_O2/functionpointer.gts new file mode 100644 index 000000000..a26d96a0b Binary files /dev/null and b/src/test/correct/functionpointer/gcc_O2/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/gcc_no_plt_no_pic/functionpointer.gts b/src/test/correct/functionpointer/gcc_no_plt_no_pic/functionpointer.gts new file mode 100644 index 000000000..71f04d41c Binary files /dev/null and b/src/test/correct/functionpointer/gcc_no_plt_no_pic/functionpointer.gts differ diff --git a/src/test/correct/functionpointer/gcc_pic/functionpointer.gts b/src/test/correct/functionpointer/gcc_pic/functionpointer.gts new file mode 100644 index 000000000..50ea37edb Binary files /dev/null and b/src/test/correct/functionpointer/gcc_pic/functionpointer.gts differ 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 new file mode 100644 index 000000000..8dac35abc Binary files /dev/null and b/src/test/correct/functions_with_params/clang/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/clang_O2/functions_with_params.gts b/src/test/correct/functions_with_params/clang_O2/functions_with_params.gts new file mode 100644 index 000000000..32612eb9b Binary files /dev/null and b/src/test/correct/functions_with_params/clang_O2/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/clang_no_plt_no_pic/functions_with_params.gts b/src/test/correct/functions_with_params/clang_no_plt_no_pic/functions_with_params.gts new file mode 100644 index 000000000..3412e10df Binary files /dev/null and b/src/test/correct/functions_with_params/clang_no_plt_no_pic/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/clang_pic/functions_with_params.gts b/src/test/correct/functions_with_params/clang_pic/functions_with_params.gts new file mode 100644 index 000000000..de1afb436 Binary files /dev/null and b/src/test/correct/functions_with_params/clang_pic/functions_with_params.gts differ 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 new file mode 100644 index 000000000..f5611a59b Binary files /dev/null and b/src/test/correct/functions_with_params/gcc/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/gcc_O2/functions_with_params.gts b/src/test/correct/functions_with_params/gcc_O2/functions_with_params.gts new file mode 100644 index 000000000..1f95ae8b8 Binary files /dev/null and b/src/test/correct/functions_with_params/gcc_O2/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/gcc_no_plt_no_pic/functions_with_params.gts b/src/test/correct/functions_with_params/gcc_no_plt_no_pic/functions_with_params.gts new file mode 100644 index 000000000..dcab1609c Binary files /dev/null and b/src/test/correct/functions_with_params/gcc_no_plt_no_pic/functions_with_params.gts differ diff --git a/src/test/correct/functions_with_params/gcc_pic/functions_with_params.gts b/src/test/correct/functions_with_params/gcc_pic/functions_with_params.gts new file mode 100644 index 000000000..c261acb68 Binary files /dev/null and b/src/test/correct/functions_with_params/gcc_pic/functions_with_params.gts differ diff --git a/src/test/correct/ifbranches/clang/ifbranches.gts b/src/test/correct/ifbranches/clang/ifbranches.gts new file mode 100644 index 000000000..e4bc4bf39 Binary files /dev/null and b/src/test/correct/ifbranches/clang/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/clang_O2/ifbranches.gts b/src/test/correct/ifbranches/clang_O2/ifbranches.gts new file mode 100644 index 000000000..4801ef2cb Binary files /dev/null and b/src/test/correct/ifbranches/clang_O2/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/clang_no_plt_no_pic/ifbranches.gts b/src/test/correct/ifbranches/clang_no_plt_no_pic/ifbranches.gts new file mode 100644 index 000000000..2d56197d3 Binary files /dev/null and b/src/test/correct/ifbranches/clang_no_plt_no_pic/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/clang_pic/ifbranches.gts b/src/test/correct/ifbranches/clang_pic/ifbranches.gts new file mode 100644 index 000000000..770314e19 Binary files /dev/null and b/src/test/correct/ifbranches/clang_pic/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/gcc/ifbranches.gts b/src/test/correct/ifbranches/gcc/ifbranches.gts new file mode 100644 index 000000000..5d030a619 Binary files /dev/null and b/src/test/correct/ifbranches/gcc/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/gcc_O2/ifbranches.gts b/src/test/correct/ifbranches/gcc_O2/ifbranches.gts new file mode 100644 index 000000000..6ebdd5591 Binary files /dev/null and b/src/test/correct/ifbranches/gcc_O2/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/gcc_no_plt_no_pic/ifbranches.gts b/src/test/correct/ifbranches/gcc_no_plt_no_pic/ifbranches.gts new file mode 100644 index 000000000..1fa9f90e1 Binary files /dev/null and b/src/test/correct/ifbranches/gcc_no_plt_no_pic/ifbranches.gts differ diff --git a/src/test/correct/ifbranches/gcc_pic/ifbranches.gts b/src/test/correct/ifbranches/gcc_pic/ifbranches.gts new file mode 100644 index 000000000..fa005bc54 Binary files /dev/null and b/src/test/correct/ifbranches/gcc_pic/ifbranches.gts differ diff --git a/src/test/correct/ifglobal/clang/ifglobal.gts b/src/test/correct/ifglobal/clang/ifglobal.gts new file mode 100644 index 000000000..3944f86ae Binary files /dev/null and b/src/test/correct/ifglobal/clang/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/clang_O2/ifglobal.gts b/src/test/correct/ifglobal/clang_O2/ifglobal.gts new file mode 100644 index 000000000..f2f383c8c Binary files /dev/null and b/src/test/correct/ifglobal/clang_O2/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/clang_no_plt_no_pic/ifglobal.gts b/src/test/correct/ifglobal/clang_no_plt_no_pic/ifglobal.gts new file mode 100644 index 000000000..812eecc66 Binary files /dev/null and b/src/test/correct/ifglobal/clang_no_plt_no_pic/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/clang_pic/ifglobal.gts b/src/test/correct/ifglobal/clang_pic/ifglobal.gts new file mode 100644 index 000000000..42e7893d2 Binary files /dev/null and b/src/test/correct/ifglobal/clang_pic/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/gcc/ifglobal.gts b/src/test/correct/ifglobal/gcc/ifglobal.gts new file mode 100644 index 000000000..12e587eba Binary files /dev/null and b/src/test/correct/ifglobal/gcc/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/gcc_O2/ifglobal.gts b/src/test/correct/ifglobal/gcc_O2/ifglobal.gts new file mode 100644 index 000000000..46b17d4b5 Binary files /dev/null and b/src/test/correct/ifglobal/gcc_O2/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/gcc_no_plt_no_pic/ifglobal.gts b/src/test/correct/ifglobal/gcc_no_plt_no_pic/ifglobal.gts new file mode 100644 index 000000000..3b61653f0 Binary files /dev/null and b/src/test/correct/ifglobal/gcc_no_plt_no_pic/ifglobal.gts differ diff --git a/src/test/correct/ifglobal/gcc_pic/ifglobal.gts b/src/test/correct/ifglobal/gcc_pic/ifglobal.gts new file mode 100644 index 000000000..8b3afc17b Binary files /dev/null and b/src/test/correct/ifglobal/gcc_pic/ifglobal.gts differ diff --git a/src/test/correct/indirect_call/clang/indirect_call.gts b/src/test/correct/indirect_call/clang/indirect_call.gts new file mode 100644 index 000000000..aa1396db1 Binary files /dev/null and b/src/test/correct/indirect_call/clang/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/clang_O2/indirect_call.gts b/src/test/correct/indirect_call/clang_O2/indirect_call.gts new file mode 100644 index 000000000..585e5acf0 Binary files /dev/null and b/src/test/correct/indirect_call/clang_O2/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/clang_no_plt_no_pic/indirect_call.gts b/src/test/correct/indirect_call/clang_no_plt_no_pic/indirect_call.gts new file mode 100644 index 000000000..73bd84314 Binary files /dev/null and b/src/test/correct/indirect_call/clang_no_plt_no_pic/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/clang_pic/indirect_call.gts b/src/test/correct/indirect_call/clang_pic/indirect_call.gts new file mode 100644 index 000000000..85cbeb6ff Binary files /dev/null and b/src/test/correct/indirect_call/clang_pic/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/gcc/indirect_call.gts b/src/test/correct/indirect_call/gcc/indirect_call.gts new file mode 100644 index 000000000..3078ed3c5 Binary files /dev/null and b/src/test/correct/indirect_call/gcc/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/gcc_O2/indirect_call.gts b/src/test/correct/indirect_call/gcc_O2/indirect_call.gts new file mode 100644 index 000000000..26297164e Binary files /dev/null and b/src/test/correct/indirect_call/gcc_O2/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/gcc_no_plt_no_pic/indirect_call.gts b/src/test/correct/indirect_call/gcc_no_plt_no_pic/indirect_call.gts new file mode 100644 index 000000000..c2d19b711 Binary files /dev/null and b/src/test/correct/indirect_call/gcc_no_plt_no_pic/indirect_call.gts differ diff --git a/src/test/correct/indirect_call/gcc_pic/indirect_call.gts b/src/test/correct/indirect_call/gcc_pic/indirect_call.gts new file mode 100644 index 000000000..47ab8d08e Binary files /dev/null and b/src/test/correct/indirect_call/gcc_pic/indirect_call.gts differ diff --git a/src/test/correct/initialisation/clang/initialisation.gts b/src/test/correct/initialisation/clang/initialisation.gts new file mode 100644 index 000000000..4d249343c Binary files /dev/null and b/src/test/correct/initialisation/clang/initialisation.gts differ diff --git a/src/test/correct/initialisation/clang_O2/initialisation.gts b/src/test/correct/initialisation/clang_O2/initialisation.gts new file mode 100644 index 000000000..c911386c3 Binary files /dev/null and b/src/test/correct/initialisation/clang_O2/initialisation.gts differ diff --git a/src/test/correct/initialisation/clang_no_plt_no_pic/initialisation.gts b/src/test/correct/initialisation/clang_no_plt_no_pic/initialisation.gts new file mode 100644 index 000000000..9898a414b Binary files /dev/null and b/src/test/correct/initialisation/clang_no_plt_no_pic/initialisation.gts differ diff --git a/src/test/correct/initialisation/clang_pic/initialisation.gts b/src/test/correct/initialisation/clang_pic/initialisation.gts new file mode 100644 index 000000000..a20517772 Binary files /dev/null and b/src/test/correct/initialisation/clang_pic/initialisation.gts differ diff --git a/src/test/correct/initialisation/gcc/initialisation.gts b/src/test/correct/initialisation/gcc/initialisation.gts new file mode 100644 index 000000000..4d205862f Binary files /dev/null and b/src/test/correct/initialisation/gcc/initialisation.gts differ diff --git a/src/test/correct/initialisation/gcc_O2/initialisation.gts b/src/test/correct/initialisation/gcc_O2/initialisation.gts new file mode 100644 index 000000000..69fd020ae Binary files /dev/null and b/src/test/correct/initialisation/gcc_O2/initialisation.gts differ diff --git a/src/test/correct/initialisation/gcc_no_plt_no_pic/initialisation.gts b/src/test/correct/initialisation/gcc_no_plt_no_pic/initialisation.gts new file mode 100644 index 000000000..5185fb7f2 Binary files /dev/null and b/src/test/correct/initialisation/gcc_no_plt_no_pic/initialisation.gts differ diff --git a/src/test/correct/initialisation/gcc_pic/initialisation.gts b/src/test/correct/initialisation/gcc_pic/initialisation.gts new file mode 100644 index 000000000..f50496442 Binary files /dev/null and b/src/test/correct/initialisation/gcc_pic/initialisation.gts differ diff --git a/src/test/correct/jumptable/clang/jumptable.gts b/src/test/correct/jumptable/clang/jumptable.gts new file mode 100644 index 000000000..7c4eec2cd Binary files /dev/null and b/src/test/correct/jumptable/clang/jumptable.gts differ diff --git a/src/test/correct/jumptable/clang_O2/jumptable.gts b/src/test/correct/jumptable/clang_O2/jumptable.gts new file mode 100644 index 000000000..6a6f59b94 Binary files /dev/null and b/src/test/correct/jumptable/clang_O2/jumptable.gts differ diff --git a/src/test/correct/jumptable/clang_no_plt_no_pic/jumptable.gts b/src/test/correct/jumptable/clang_no_plt_no_pic/jumptable.gts new file mode 100644 index 000000000..76ee917c0 Binary files /dev/null and b/src/test/correct/jumptable/clang_no_plt_no_pic/jumptable.gts differ diff --git a/src/test/correct/jumptable/clang_pic/jumptable.gts b/src/test/correct/jumptable/clang_pic/jumptable.gts new file mode 100644 index 000000000..154ba7a36 Binary files /dev/null and b/src/test/correct/jumptable/clang_pic/jumptable.gts differ diff --git a/src/test/correct/jumptable/gcc/jumptable.gts b/src/test/correct/jumptable/gcc/jumptable.gts new file mode 100644 index 000000000..36b62af57 Binary files /dev/null and b/src/test/correct/jumptable/gcc/jumptable.gts differ diff --git a/src/test/correct/jumptable/gcc_O2/jumptable.gts b/src/test/correct/jumptable/gcc_O2/jumptable.gts new file mode 100644 index 000000000..8a7761546 Binary files /dev/null and b/src/test/correct/jumptable/gcc_O2/jumptable.gts differ diff --git a/src/test/correct/jumptable/gcc_pic/jumptable.gts b/src/test/correct/jumptable/gcc_pic/jumptable.gts new file mode 100644 index 000000000..4fce93cf0 Binary files /dev/null and b/src/test/correct/jumptable/gcc_pic/jumptable.gts differ diff --git a/src/test/correct/jumptable2/clang/jumptable2.gts b/src/test/correct/jumptable2/clang/jumptable2.gts new file mode 100644 index 000000000..928e22416 Binary files /dev/null and b/src/test/correct/jumptable2/clang/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/clang_O2/jumptable2.gts b/src/test/correct/jumptable2/clang_O2/jumptable2.gts new file mode 100644 index 000000000..352e06d22 Binary files /dev/null and b/src/test/correct/jumptable2/clang_O2/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/clang_no_plt_no_pic/jumptable2.gts b/src/test/correct/jumptable2/clang_no_plt_no_pic/jumptable2.gts new file mode 100644 index 000000000..6bd6d6a09 Binary files /dev/null and b/src/test/correct/jumptable2/clang_no_plt_no_pic/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/clang_pic/jumptable2.gts b/src/test/correct/jumptable2/clang_pic/jumptable2.gts new file mode 100644 index 000000000..965d12ddf Binary files /dev/null and b/src/test/correct/jumptable2/clang_pic/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/gcc/jumptable2.gts b/src/test/correct/jumptable2/gcc/jumptable2.gts new file mode 100644 index 000000000..3754688e4 Binary files /dev/null and b/src/test/correct/jumptable2/gcc/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/gcc_O2/jumptable2.gts b/src/test/correct/jumptable2/gcc_O2/jumptable2.gts new file mode 100644 index 000000000..f2ce9bac6 Binary files /dev/null and b/src/test/correct/jumptable2/gcc_O2/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/gcc_no_plt_no_pic/jumptable2.gts b/src/test/correct/jumptable2/gcc_no_plt_no_pic/jumptable2.gts new file mode 100644 index 000000000..d75b5ce62 Binary files /dev/null and b/src/test/correct/jumptable2/gcc_no_plt_no_pic/jumptable2.gts differ diff --git a/src/test/correct/jumptable2/gcc_pic/jumptable2.gts b/src/test/correct/jumptable2/gcc_pic/jumptable2.gts new file mode 100644 index 000000000..7b286cd1b Binary files /dev/null and b/src/test/correct/jumptable2/gcc_pic/jumptable2.gts differ diff --git a/src/test/correct/jumptable3/clang/jumptable3.gts b/src/test/correct/jumptable3/clang/jumptable3.gts new file mode 100644 index 000000000..254155d23 Binary files /dev/null and b/src/test/correct/jumptable3/clang/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/clang_O2/jumptable3.gts b/src/test/correct/jumptable3/clang_O2/jumptable3.gts new file mode 100644 index 000000000..386a75ff3 Binary files /dev/null and b/src/test/correct/jumptable3/clang_O2/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/clang_no_plt_no_pic/jumptable3.gts b/src/test/correct/jumptable3/clang_no_plt_no_pic/jumptable3.gts new file mode 100644 index 000000000..cbacd55ea Binary files /dev/null and b/src/test/correct/jumptable3/clang_no_plt_no_pic/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/clang_pic/jumptable3.gts b/src/test/correct/jumptable3/clang_pic/jumptable3.gts new file mode 100644 index 000000000..f352ad825 Binary files /dev/null and b/src/test/correct/jumptable3/clang_pic/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/gcc/jumptable3.gts b/src/test/correct/jumptable3/gcc/jumptable3.gts new file mode 100644 index 000000000..cb2db96ad Binary files /dev/null and b/src/test/correct/jumptable3/gcc/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/gcc_O2/jumptable3.gts b/src/test/correct/jumptable3/gcc_O2/jumptable3.gts new file mode 100644 index 000000000..565367618 Binary files /dev/null and b/src/test/correct/jumptable3/gcc_O2/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/gcc_no_plt_no_pic/jumptable3.gts b/src/test/correct/jumptable3/gcc_no_plt_no_pic/jumptable3.gts new file mode 100644 index 000000000..9b7221df2 Binary files /dev/null and b/src/test/correct/jumptable3/gcc_no_plt_no_pic/jumptable3.gts differ diff --git a/src/test/correct/jumptable3/gcc_pic/jumptable3.gts b/src/test/correct/jumptable3/gcc_pic/jumptable3.gts new file mode 100644 index 000000000..e6f8b9f5e Binary files /dev/null and b/src/test/correct/jumptable3/gcc_pic/jumptable3.gts differ diff --git a/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt b/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt index 483b4d70d..871b8bf48 100644 --- a/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt +++ b/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt @@ -1,742 +1,740 @@ 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 2456 20 2456)\n(code-region 2048 408 2048)\n(code-region 1856 192 1856)\n(code-region 1832 24 1832)\n(code-start 2100)\n(code-start 2048)\n(code-start 2324)\n(entry-point 2048)\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 memcpy)\n(external-reference 131080 strlen)\n(external-reference 131088 __libc_start_main)\n(external-reference 131096 __cxa_finalize)\n(external-reference 131104 malloc)\n(external-reference 131112 memset)\n(external-reference 131120 __gmon_start__)\n(external-reference 131128 abort)\n(external-reference 131136 puts)\n(external-reference 131144 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 1832 0)\n(llvm:code-entry main 2324 132)\n(llvm:code-entry _start 2048 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 2456 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 2320 0)\n(llvm:code-entry __do_global_dtors_aux 2240 0)\n(llvm:code-entry register_tm_clones 2176 0)\n(llvm:code-entry deregister_tm_clones 2128 0)\n(llvm:code-entry call_weak_fn 2100 20)\n(llvm:code-entry .fini 2456 20)\n(llvm:code-entry .text 2048 408)\n(llvm:code-entry .plt 1856 192)\n(llvm:code-entry .init 1832 24)\n(llvm:elf-program-header 08 64952 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2480 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 64968 496)\n(llvm:elf-program-header 03 64952 692)\n(llvm:elf-program-header 02 0 2752)\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 130488 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2480 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 130504 496)\n(llvm:elf-virtual-program-header 03 130488 712)\n(llvm:elf-virtual-program-header 02 0 2752)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 2048)\n(llvm:name-reference 131144 free)\n(llvm:name-reference 131136 puts)\n(llvm:name-reference 131128 abort)\n(llvm:name-reference 131120 __gmon_start__)\n(llvm:name-reference 131112 memset)\n(llvm:name-reference 131104 malloc)\n(llvm:name-reference 131096 __cxa_finalize)\n(llvm:name-reference 131088 __libc_start_main)\n(llvm:name-reference 131080 strlen)\n(llvm:name-reference 131072 memcpy)\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 68820)\n(llvm:section-entry .strtab 0 716 68104)\n(llvm:section-entry .symtab 0 2400 65704)\n(llvm:section-entry .comment 0 58 65644)\n(llvm:section-entry .bss 131184 16 65644)\n(llvm:section-entry .data 131152 28 65616)\n(llvm:section-entry .got.plt 131048 104 65512)\n(llvm:section-entry .got 131000 48 65464)\n(llvm:section-entry .dynamic 130504 496 64968)\n(llvm:section-entry .fini_array 130496 8 64960)\n(llvm:section-entry .init_array 130488 8 64952)\n(llvm:section-entry .eh_frame 2544 208 2544)\n(llvm:section-entry .eh_frame_hdr 2480 60 2480)\n(llvm:section-entry .rodata 2476 4 2476)\n(llvm:section-entry .fini 2456 20 2456)\n(llvm:section-entry .text 2048 408 2048)\n(llvm:section-entry .plt 1856 192 1856)\n(llvm:section-entry .init 1832 24 1832)\n(llvm:section-entry .rela.plt 1592 240 1592)\n(llvm:section-entry .rela.dyn 1400 192 1400)\n(llvm:section-entry .gnu.version_r 1352 48 1352)\n(llvm:section-entry .gnu.version 1316 30 1316)\n(llvm:section-entry .dynstr 1136 179 1136)\n(llvm:section-entry .dynsym 776 360 776)\n(llvm:section-entry .gnu.hash 744 28 744)\n(llvm:section-entry .hash 664 80 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 .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 1832 0 1832 1832)\n(llvm:symbol-entry main 2324 132 2324 2324)\n(llvm:symbol-entry _start 2048 52 2048 2048)\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 2456 0 2456 2456)\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 2320 0 2320 2320)\n(llvm:symbol-entry __do_global_dtors_aux 2240 0 2240 2240)\n(llvm:symbol-entry register_tm_clones 2176 0 2176 2176)\n(llvm:symbol-entry deregister_tm_clones 2128 0 2128 2128)\n(llvm:symbol-entry call_weak_fn 2100 20 2100 2100)\n(mapped 0 2752 0)\n(mapped 130488 692 64952)\n(named-region 0 2752 02)\n(named-region 130488 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 80 .hash)\n(named-region 744 28 .gnu.hash)\n(named-region 776 360 .dynsym)\n(named-region 1136 179 .dynstr)\n(named-region 1316 30 .gnu.version)\n(named-region 1352 48 .gnu.version_r)\n(named-region 1400 192 .rela.dyn)\n(named-region 1592 240 .rela.plt)\n(named-region 1832 24 .init)\n(named-region 1856 192 .plt)\n(named-region 2048 408 .text)\n(named-region 2456 20 .fini)\n(named-region 2476 4 .rodata)\n(named-region 2480 60 .eh_frame_hdr)\n(named-region 2544 208 .eh_frame)\n(named-region 130488 8 .init_array)\n(named-region 130496 8 .fini_array)\n(named-region 130504 496 .dynamic)\n(named-region 131000 48 .got)\n(named-region 131048 104 .got.plt)\n(named-region 131152 28 .data)\n(named-region 131184 16 .bss)\n(named-region 0 58 .comment)\n(named-region 0 2400 .symtab)\n(named-region 0 716 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 2100 call_weak_fn)\n(named-symbol 2128 deregister_tm_clones)\n(named-symbol 2176 register_tm_clones)\n(named-symbol 2240 __do_global_dtors_aux)\n(named-symbol 2320 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 2456 _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 2048 _start)\n(named-symbol 2324 main)\n(named-symbol 1832 _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 80)\n(section 744 28)\n(section 776 360)\n(section 1136 179)\n(section 1316 30)\n(section 1352 48)\n(section 1400 192)\n(section 1592 240)\n(section 1832 24)\n(section 1856 192)\n(section 2048 408)\n(section 2456 20)\n(section 2476 4)\n(section 2480 60)\n(section 2544 208)\n(section 130488 8)\n(section 130496 8)\n(section 130504 496)\n(section 131000 48)\n(section 131048 104)\n(section 131152 28)\n(section 131184 16)\n(section 0 58)\n(section 0 2400)\n(section 0 716)\n(section 0 259)\n(segment 0 2752 true false true)\n(segment 130488 712 true true false)\n(subarch v8)\n(symbol-chunk 2100 20 2100)\n(symbol-chunk 2048 52 2048)\n(symbol-chunk 2324 132 2324)\n(symbol-value 2100 2100)\n(symbol-value 2128 2128)\n(symbol-value 2176 2176)\n(symbol-value 2240 2240)\n(symbol-value 2320 2320)\n(symbol-value 2456 2456)\n(symbol-value 2048 2048)\n(symbol-value 2324 2324)\n(symbol-value 1832 1832)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), +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\x00\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\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\xc0\x0a\x00\x00\x00\x00\x00\x00\xc0\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\xfd\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\xb8\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\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\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\xc0\x0a\x00\x00\x00\x00\x00\x00\xc0\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\xfd\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\xb8\xfd\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\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\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\x09\x00\x00\x00\x00\x00\x00\xb0\x09\x00\x00\x00\x00\x00\x00\xb0\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\xb8\xfd\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\xb8\xfd\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\x04\x0b\xe4\xbb\x89\x3b\x0a\xd5\xd2\xae\xa0\x3d\x1e\x08\x67\x4c\x52\x3d\x90\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\x03\x00\x00\x00\x0f\x00\x00\x00\x0a\x00\x00\x00\x0e\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\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\x00\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\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\xc0\x0a\x00\x00\x00\x00\x00\x00\xc0\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\xfd\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\xb8\xfd\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\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\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\x09\x00\x00\x00\x00\x00\x00\xb0\x09\x00\x00\x00\x00\x00\x00\xb0\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\xb8\xfd\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\xb8\xfd\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\x04\x0b\xe4\xbb\x89\x3b\x0a\xd5\xd2\xae\xa0\x3d\x1e\x08\x67\x4c\x52\x3d\x90\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\x03\x00\x00\x00\x0f\x00\x00\x00\x0a\x00\x00\x00\x0e\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x06\x00\x00\x00\x0c\x00\x00\x00\x0d\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\x0c\x00\x28\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x18\x00\x50\x00\x02\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\x0b\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\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\x2b\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\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\x8a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\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\x06\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\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\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\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x65\x6d\x73\x65\x74\x00\x6d\x65\x6d\x63\x70\x79\x00\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\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\xb8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\xc0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0e\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\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\x20\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x02\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\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\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\x10\x01\x00\x90\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1e\x40\xf9\x10\xe2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x22\x40\xf9\x10\x02\x01\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x26\x40\xf9\x10\x22\x01\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\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe8\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe0\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x41\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x2c\x40\xf9\xa9\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\x9e\xff\xff\x97\x15\x01\x00\x90\x14\x01\x00\x90\x94\x86\x01\x91\xf3\x03\x00\xaa\xa0\x3e\x00\xf9\xe0\x03\x14\xaa\x8b\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xe1\x03\x14\xaa\x83\xff\xff\x97\xe0\x03\x13\xaa\xa1\xff\xff\x97"), -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\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00"), +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\x04\x0b\xe4\xbb\x89\x3b\x0a\xd5\xd2\xae\xa0\x3d\x1e\x08\x67\x4c\x52\x3d\x90\xcc"), +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(".hash", 0x298, "\x03\x00\x00\x00\x0f\x00\x00\x00\x0a\x00\x00\x00\x0e\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x06\x00\x00\x00\x0c\x00\x00\x00\x0d\x00\x00\x00"), -Section(".gnu.hash", 0x2E8, "\x01\x00\x00\x00\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", 0x308, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0c\x00\x28\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x18\x00\x50\x00\x02\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\x0b\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\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\x2b\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\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\x8a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\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\x06\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", 0x470, "\x00\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\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\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x65\x6d\x73\x65\x74\x00\x6d\x65\x6d\x63\x70\x79\x00\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", 0x524, "\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", 0x548, "\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", 0x578, "\xb8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\xc0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\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", 0x638, "\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\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\x20\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x728, "\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", 0x740, "\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\x10\x01\x00\x90\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1e\x40\xf9\x10\xe2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x22\x40\xf9\x10\x02\x01\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x26\x40\xf9\x10\x22\x01\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x998, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x9AC, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x9B0, "\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", 0x9F0, "\x10\x00\x00\x00\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", 0x1FDC0, "\xc0\x08\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x28\x07\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x98\x09\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\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\xc0\xfd\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\xe8\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x70\x04\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x08\x03\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\xff\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\x38\x06\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x78\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\x48\x05\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\x24\x05\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", 0x1FDB8, "\x10\x09\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x1FFB8, "\xc8\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\x14\x09\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\x40\x07\x00\x00\x00\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\x40\x07\x00\x00\x00\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\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x20050, "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\x07\x75\x73\x65\x72\x3a\x70\x61\x73\x73\x00\x00"), -Section(".text", 0x800, "\x1f\x20\x03\xd5\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\xe8\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe0\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x41\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x2c\x40\xf9\xa9\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\x9e\xff\xff\x97\x15\x01\x00\x90\x14\x01\x00\x90\x94\x86\x01\x91\xf3\x03\x00\xaa\xa0\x3e\x00\xf9\xe0\x03\x14\xaa\x8b\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xe1\x03\x14\xaa\x83\xff\xff\x97\xe0\x03\x13\xaa\xa1\xff\xff\x97\xb3\x3e\x40\xf9\xe0\x03\x13\xaa\x82\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\x21\x00\x80\x52\x8e\xff\xff\x97\xa0\x3e\x40\xf9\x9c\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,0xABF), Attr("segment","02 0 2752")), -Annotation(Region(0x800,0x833), Attr("symbol","\"_start\"")), +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,0x95F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x39), Attr("section","\".comment\"")), +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,0x2E7), Attr("section","\".hash\"")), -Annotation(Region(0x2E8,0x303), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x308,0x46F), Attr("section","\".dynsym\"")), -Annotation(Region(0x470,0x522), Attr("section","\".dynstr\"")), -Annotation(Region(0x524,0x541), Attr("section","\".gnu.version\"")), -Annotation(Region(0x548,0x577), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x578,0x637), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x638,0x727), Attr("section","\".rela.plt\"")), -Annotation(Region(0x728,0x73F), Attr("section","\".init\"")), -Annotation(Region(0x740,0x7FF), Attr("section","\".plt\"")), -Annotation(Region(0x728,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x7FF), Attr("code-region","()")), -Annotation(Region(0x800,0x833), Attr("symbol-info","_start 0x800 52")), -Annotation(Region(0x834,0x847), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x834,0x847), Attr("symbol-info","call_weak_fn 0x834 20")), -Annotation(Region(0x914,0x997), Attr("symbol","\"main\"")), -Annotation(Region(0x914,0x997), Attr("symbol-info","main 0x914 132")), -Annotation(Region(0x998,0x9AB), Attr("section","\".fini\"")), -Annotation(Region(0x9AC,0x9AF), Attr("section","\".rodata\"")), -Annotation(Region(0x9B0,0x9EB), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x9F0,0xABF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x1FDB8,0x2006B), Attr("segment","03 0x1FDB8 712")), -Annotation(Region(0x1FDC0,0x1FDC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDC8,0x1FFB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FDB8,0x1FDBF), Attr("section","\".init_array\"")), -Annotation(Region(0x1FFB8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2004F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20050,0x2006B), Attr("section","\".data\"")), -Annotation(Region(0x800,0x997), Attr("section","\".text\"")), -Annotation(Region(0x800,0x997), Attr("code-region","()")), -Annotation(Region(0x998,0x9AB), Attr("code-region","()"))]), -Program(Tid(2_090, "%0000082a"), Attrs([]), - Subs([Sub(Tid(2_019, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x790"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_091, "%0000082b"), +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","0x790")]), Phis([]), -Defs([Def(Tid(1_517, "%000005ed"), Attrs([Attr("address","0x790"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_524, "%000005f4"), Attrs([Attr("address","0x794"), + 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","0x798"), +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","0x79C"), Attr("insn","br x17")]), Int(1,1), + Attrs([Attr("address","0x74C"), Attr("insn","br x17")]), Int(1,1), (Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_020, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_092, "%0000082c"), +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(723, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x8C0")]), Phis([]), Defs([Def(Tid(727, "%000002d7"), - Attrs([Attr("address","0x8C0"), +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(733, "%000002dd"), Attrs([Attr("address","0x8C0"), +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(739, "%000002e3"), Attrs([Attr("address","0x8C0"), +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(743, "%000002e7"), Attrs([Attr("address","0x8C0"), +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(749, "%000002ed"), - Attrs([Attr("address","0x8C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(757, "%000002f5"), - Attrs([Attr("address","0x8C8"), Attr("insn","str x19, [sp, #0x10]")]), +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(762, "%000002fa"), Attrs([Attr("address","0x8CC"), -Attr("insn","adrp x19, #0x20000")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(769, "%00000301"), Attrs([Attr("address","0x8D0"), +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","0x8D4"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(773, "%00000305"))), -Goto(Tid(2_080, "%00000820"), Attrs([]), Int(1,1), -Direct(Tid(1_074, "%00000432")))])), Blk(Tid(1_074, "%00000432"), - Attrs([Attr("address","0x8D8")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x8D8"), -Attr("insn","adrp x0, #0x1f000")]), Var("R0",Imm(64)), Int(126976,64)), -Def(Tid(1_084, "%0000043c"), Attrs([Attr("address","0x8DC"), +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","0x8E0"), +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(2_081, "%00000821"), Attrs([]), +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","0x8E4")]), Phis([]), -Defs([Def(Tid(1_116, "%0000045c"), Attrs([Attr("address","0x8E4"), -Attr("insn","adrp x0, #0x20000")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(1_123, "%00000463"), Attrs([Attr("address","0x8E8"), + 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","0x8EC"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(2288,64))]), -Jmps([Call(Tid(1_131, "%0000046b"), Attrs([Attr("address","0x8EC"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(2_019, "@__cxa_finalize")),Direct(Tid(1_088, "%00000440"))))])), -Blk(Tid(1_088, "%00000440"), Attrs([Attr("address","0x8F0")]), Phis([]), -Defs([Def(Tid(1_096, "%00000448"), Attrs([Attr("address","0x8F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2292,64))]), -Jmps([Call(Tid(1_098, "%0000044a"), Attrs([Attr("address","0x8F0"), +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(2_033, "@deregister_tm_clones")),Direct(Tid(1_100, "%0000044c"))))])), -Blk(Tid(1_100, "%0000044c"), Attrs([Attr("address","0x8F4")]), Phis([]), -Defs([Def(Tid(1_103, "%0000044f"), Attrs([Attr("address","0x8F4"), +(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","0x8F8"), +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(2_082, "%00000822"), Attrs([]), Int(1,1), +Jmps([Goto(Tid(1_973, "%000007b5"), Attrs([]), Int(1,1), Direct(Tid(773, "%00000305")))])), Blk(Tid(773, "%00000305"), - Attrs([Attr("address","0x8FC")]), Phis([]), Defs([Def(Tid(783, "%0000030f"), - Attrs([Attr("address","0x8FC"), Attr("insn","ldr x19, [sp, #0x10]")]), + 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","0x900"), +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","0x900"), +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","0x900"), +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","0x904"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_024, "@__libc_start_main"), + 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","0x780"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_093, "%0000082d"), +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(2_094, "%0000082e"), Attrs([Attr("c.layout","[signed : 32]"), +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(2_095, "%0000082f"), Attrs([Attr("c.layout","**[char : 8]"), +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(2_096, "%00000830"), Attrs([Attr("c.layout","*[ : 8]"), +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(2_097, "%00000831"), Attrs([Attr("c.layout","[signed : 32]"), +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(556, "@__libc_start_main"), - Attrs([Attr("address","0x780")]), Phis([]), -Defs([Def(Tid(1_495, "%000005d7"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_502, "%000005de"), Attrs([Attr("address","0x784"), +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","0x788"), +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","0x78C"), 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","0x998")]), - "_fini", Args([Arg(Tid(2_098, "%00000832"), + 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(32, "@_fini"), - Attrs([Attr("address","0x998")]), Phis([]), Defs([Def(Tid(38, "%00000026"), - Attrs([Attr("address","0x99C"), +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(44, "%0000002c"), Attrs([Attr("address","0x99C"), +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(50, "%00000032"), Attrs([Attr("address","0x99C"), +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(54, "%00000036"), Attrs([Attr("address","0x99C"), +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(60, "%0000003c"), Attrs([Attr("address","0x9A0"), +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(67, "%00000043"), Attrs([Attr("address","0x9A4"), +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(72, "%00000048"), Attrs([Attr("address","0x9A4"), +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(76, "%0000004c"), Attrs([Attr("address","0x9A4"), +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(81, "%00000051"), - Attrs([Attr("address","0x9A8"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_026, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x728")]), - "_init", Args([Arg(Tid(2_099, "%00000833"), +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_804, "@_init"), - Attrs([Attr("address","0x728")]), Phis([]), -Defs([Def(Tid(1_810, "%00000712"), Attrs([Attr("address","0x72C"), +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_816, "%00000718"), Attrs([Attr("address","0x72C"), +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_822, "%0000071e"), Attrs([Attr("address","0x72C"), +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_826, "%00000722"), Attrs([Attr("address","0x72C"), +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_832, "%00000728"), - Attrs([Attr("address","0x730"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_837, "%0000072d"), - Attrs([Attr("address","0x734"), Attr("insn","bl #0x100")]), - Var("R30",Imm(64)), Int(1848,64))]), Jmps([Call(Tid(1_839, "%0000072f"), - Attrs([Attr("address","0x734"), Attr("insn","bl #0x100")]), Int(1,1), -(Direct(Tid(2_031, "@call_weak_fn")),Direct(Tid(1_841, "%00000731"))))])), -Blk(Tid(1_841, "%00000731"), Attrs([Attr("address","0x738")]), Phis([]), -Defs([Def(Tid(1_846, "%00000736"), Attrs([Attr("address","0x738"), +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_851, "%0000073b"), Attrs([Attr("address","0x738"), +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_855, "%0000073f"), Attrs([Attr("address","0x738"), +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_860, "%00000744"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_027, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x800"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(2_100, "%00000834"), 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(493, "@_start"), Attrs([Attr("address","0x800")]), Phis([]), -Defs([Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x804"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x808"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(509, "%000001fd"), Attrs([Attr("address","0x80C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(516, "%00000204"), Attrs([Attr("address","0x810"), -Attr("insn","ldr x1, [sp]")]), Var("R1",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(522, "%0000020a"), Attrs([Attr("address","0x814"), +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(528, "%00000210"), - Attrs([Attr("address","0x818"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(533, "%00000215"), - Attrs([Attr("address","0x81C"), Attr("insn","adrp x0, #0x1f000")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(540, "%0000021c"), - Attrs([Attr("address","0x820"), Attr("insn","ldr x0, [x0, #0xfd8]")]), +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(545, "%00000221"), Attrs([Attr("address","0x824"), +Def(Tid(544, "%00000220"), Attrs([Attr("address","0x7E4"), Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(550, "%00000226"), Attrs([Attr("address","0x828"), +Def(Tid(549, "%00000225"), Attrs([Attr("address","0x7E8"), Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(555, "%0000022b"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(2096,64))]), -Jmps([Call(Tid(558, "%0000022e"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(2_024, "@__libc_start_main")),Direct(Tid(560, "%00000230"))))])), -Blk(Tid(560, "%00000230"), Attrs([Attr("address","0x830")]), Phis([]), -Defs([Def(Tid(563, "%00000233"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x60")]), Var("R30",Imm(64)), Int(2100,64))]), -Jmps([Call(Tid(566, "%00000236"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x60")]), Int(1,1), -(Direct(Tid(2_030, "@abort")),Direct(Tid(2_083, "%00000823"))))])), -Blk(Tid(2_083, "%00000823"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_084, "%00000824"), Attrs([]), Int(1,1), -(Direct(Tid(2_031, "@call_weak_fn")),))]))])), Sub(Tid(2_030, "@abort"), +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","0x7D0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(564, "@abort"), Attrs([Attr("address","0x7D0")]), Phis([]), -Defs([Def(Tid(1_605, "%00000645"), Attrs([Attr("address","0x7D0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_612, "%0000064c"), Attrs([Attr("address","0x7D4"), +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","0x7D8"), +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","0x7DC"), 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","0x834")]), - "call_weak_fn", Args([Arg(Tid(2_101, "%00000835"), + 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(568, "@call_weak_fn"), - Attrs([Attr("address","0x834")]), Phis([]), Defs([Def(Tid(571, "%0000023b"), - Attrs([Attr("address","0x834"), Attr("insn","adrp x0, #0x1f000")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x838"), Attr("insn","ldr x0, [x0, #0xfd0]")]), +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(584, "%00000248"), Attrs([Attr("address","0x83C"), +Jmps([Goto(Tid(583, "%00000247"), Attrs([Attr("address","0x7FC"), Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(582, "%00000246"))), Goto(Tid(2_085, "%00000825"), Attrs([]), - Int(1,1), Direct(Tid(1_193, "%000004a9")))])), Blk(Tid(582, "%00000246"), - Attrs([Attr("address","0x844")]), Phis([]), Defs([]), -Jmps([Call(Tid(590, "%0000024e"), Attrs([Attr("address","0x844"), +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","0x840")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x840"), -Attr("insn","b #-0x80")]), Int(1,1), +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","0x7C0")]), Phis([]), -Defs([Def(Tid(1_583, "%0000062f"), Attrs([Attr("address","0x7C0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_590, "%00000636"), Attrs([Attr("address","0x7C4"), + 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","0x7C8"), +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","0x7CC"), Attr("insn","br x17")]), Int(1,1), + 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","0x850")]), - "deregister_tm_clones", Args([Arg(Tid(2_102, "%00000836"), +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(596, "@deregister_tm_clones"), - Attrs([Attr("address","0x850")]), Phis([]), Defs([Def(Tid(599, "%00000257"), - Attrs([Attr("address","0x850"), Attr("insn","adrp x0, #0x20000")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(605, "%0000025d"), - Attrs([Attr("address","0x854"), Attr("insn","add x0, x0, #0x70")]), +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(610, "%00000262"), Attrs([Attr("address","0x858"), -Attr("insn","adrp x1, #0x20000")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(616, "%00000268"), Attrs([Attr("address","0x85C"), +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(622, "%0000026e"), - Attrs([Attr("address","0x860"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(627, "%00000273"), - Attrs([Attr("address","0x860"), Attr("insn","cmp x1, x0")]), +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(633, "%00000279"), Attrs([Attr("address","0x860"), +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(639, "%0000027f"), Attrs([Attr("address","0x860"), +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(643, "%00000283"), Attrs([Attr("address","0x860"), +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(647, "%00000287"), - Attrs([Attr("address","0x860"), Attr("insn","cmp x1, x0")]), +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(653, "%0000028d"), Attrs([Attr("address","0x864"), +Jmps([Goto(Tid(652, "%0000028c"), Attrs([Attr("address","0x824"), Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(651, "%0000028b"))), Goto(Tid(2_086, "%00000826"), Attrs([]), +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","0x868")]), Phis([]), -Defs([Def(Tid(1_166, "%0000048e"), Attrs([Attr("address","0x868"), -Attr("insn","adrp x1, #0x1f000")]), Var("R1",Imm(64)), Int(126976,64)), -Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x86C"), + 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","0x870"), +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(651, "%0000028b"))), Goto(Tid(2_087, "%00000827"), Attrs([]), - Int(1,1), Direct(Tid(1_182, "%0000049e")))])), Blk(Tid(651, "%0000028b"), - Attrs([Attr("address","0x87C")]), Phis([]), Defs([]), -Jmps([Call(Tid(659, "%00000293"), Attrs([Attr("address","0x87C"), +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","0x874")]), Phis([]), -Defs([Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x874"), +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","0x878"), +Jmps([Call(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x838"), 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","0x910")]), "frame_dummy", Args([Arg(Tid(2_103, "%00000837"), +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","0x910")]), Phis([]), Defs([]), -Jmps([Call(Tid(812, "%0000032c"), Attrs([Attr("address","0x910"), + Attrs([Attr("address","0x8D0")]), Phis([]), Defs([]), +Jmps([Call(Tid(812, "%0000032c"), Attrs([Attr("address","0x8D0"), Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_043, "@register_tm_clones")),))]))])), Sub(Tid(2_037, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x7F0"), -Attr("stub","()")]), "free", Args([Arg(Tid(2_104, "%00000838"), +(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","0x7F0")]), - Phis([]), Defs([Def(Tid(1_649, "%00000671"), Attrs([Attr("address","0x7F0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_656, "%00000678"), Attrs([Attr("address","0x7F4"), +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","0x7F8"), +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","0x7FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_038, "@main"), + 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","0x914")]), "main", Args([Arg(Tid(2_105, "%00000839"), +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(2_106, "%0000083a"), +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(2_107, "%0000083b"), +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","0x914")]), Phis([]), Defs([Def(Tid(818, "%00000332"), - Attrs([Attr("address","0x914"), + 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","0x914"), +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","0x914"), +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","0x914"), +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","0x918"), Attr("insn","str x21, [sp, #0x10]")]), + 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","0x91C"), +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","0x91C"), Attr("insn","stp x20, x19, [sp, #0x20]")]), + 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","0x91C"), +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","0x920"), +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","0x924"), +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","0x928"), -Attr("insn","bl #-0x188")]), Var("R30",Imm(64)), Int(2348,64))]), -Jmps([Call(Tid(879, "%0000036f"), Attrs([Attr("address","0x928"), -Attr("insn","bl #-0x188")]), Int(1,1), -(Direct(Tid(2_039, "@malloc")),Direct(Tid(881, "%00000371"))))])), -Blk(Tid(881, "%00000371"), Attrs([Attr("address","0x92C")]), Phis([]), -Defs([Def(Tid(884, "%00000374"), Attrs([Attr("address","0x92C"), -Attr("insn","adrp x21, #0x20000")]), Var("R21",Imm(64)), Int(131072,64)), -Def(Tid(889, "%00000379"), Attrs([Attr("address","0x930"), -Attr("insn","adrp x20, #0x20000")]), Var("R20",Imm(64)), Int(131072,64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x934"), +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","0x938"), Attr("insn","mov x19, x0")]), + Attrs([Attr("address","0x8F8"), Attr("insn","mov x19, x0")]), Var("R19",Imm(64)), Var("R0",Imm(64))), Def(Tid(909, "%0000038d"), - Attrs([Attr("address","0x93C"), Attr("insn","str x0, [x21, #0x78]")]), + 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","0x940"), +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","0x944"), -Attr("insn","bl #-0x1d4")]), Var("R30",Imm(64)), Int(2376,64))]), -Jmps([Call(Tid(923, "%0000039b"), Attrs([Attr("address","0x944"), -Attr("insn","bl #-0x1d4")]), Int(1,1), -(Direct(Tid(2_046, "@strlen")),Direct(Tid(925, "%0000039d"))))])), -Blk(Tid(925, "%0000039d"), Attrs([Attr("address","0x948")]), Phis([]), -Defs([Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x948"), +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","0x94C"), +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","0x950"), +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","0x954"), -Attr("insn","bl #-0x1f4")]), Var("R30",Imm(64)), Int(2392,64))]), -Jmps([Call(Tid(949, "%000003b5"), Attrs([Attr("address","0x954"), -Attr("insn","bl #-0x1f4")]), Int(1,1), -(Direct(Tid(2_040, "@memcpy")),Direct(Tid(951, "%000003b7"))))])), -Blk(Tid(951, "%000003b7"), Attrs([Attr("address","0x958")]), Phis([]), -Defs([Def(Tid(955, "%000003bb"), Attrs([Attr("address","0x958"), +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","0x95C"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2400,64))]), -Jmps([Call(Tid(963, "%000003c3"), Attrs([Attr("address","0x95C"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(2_042, "@puts")),Direct(Tid(965, "%000003c5"))))])), -Blk(Tid(965, "%000003c5"), Attrs([Attr("address","0x960")]), Phis([]), -Defs([Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x960"), +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","0x964"), +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","0x968"), -Attr("insn","bl #-0x1f8")]), Var("R30",Imm(64)), Int(2412,64))]), -Jmps([Call(Tid(983, "%000003d7"), Attrs([Attr("address","0x968"), -Attr("insn","bl #-0x1f8")]), Int(1,1), -(Direct(Tid(2_046, "@strlen")),Direct(Tid(985, "%000003d9"))))])), -Blk(Tid(985, "%000003d9"), Attrs([Attr("address","0x96C")]), Phis([]), -Defs([Def(Tid(989, "%000003dd"), Attrs([Attr("address","0x96C"), +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","0x970"), +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","0x974"), +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","0x978"), -Attr("insn","bl #-0x1c8")]), Var("R30",Imm(64)), Int(2428,64))]), -Jmps([Call(Tid(1_008, "%000003f0"), Attrs([Attr("address","0x978"), -Attr("insn","bl #-0x1c8")]), Int(1,1), -(Direct(Tid(2_041, "@memset")),Direct(Tid(1_010, "%000003f2"))))])), -Blk(Tid(1_010, "%000003f2"), Attrs([Attr("address","0x97C")]), Phis([]), -Defs([Def(Tid(1_015, "%000003f7"), Attrs([Attr("address","0x97C"), +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","0x980"), -Attr("insn","bl #-0x190")]), Var("R30",Imm(64)), Int(2436,64))]), -Jmps([Call(Tid(1_023, "%000003ff"), Attrs([Attr("address","0x980"), -Attr("insn","bl #-0x190")]), Int(1,1), -(Direct(Tid(2_037, "@free")),Direct(Tid(1_025, "%00000401"))))])), -Blk(Tid(1_025, "%00000401"), Attrs([Attr("address","0x984")]), Phis([]), -Defs([Def(Tid(1_028, "%00000404"), Attrs([Attr("address","0x984"), +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","0x988"), +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","0x988"), Attr("insn","ldp x20, x19, [sp, #0x20]")]), + 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","0x988"), +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","0x98C"), +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","0x990"), +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","0x990"), +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","0x990"), +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","0x994"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_039, "@malloc"), + 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","0x7A0"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(2_108, "%0000083c"), Attrs([Attr("alloc-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_109, "%0000083d"), +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","0x7A0")]), Phis([]), -Defs([Def(Tid(1_539, "%00000603"), Attrs([Attr("address","0x7A0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_546, "%0000060a"), Attrs([Attr("address","0x7A4"), +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","0x7A8"), +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","0x7AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_040, "@memcpy"), + 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","0x760"), Attr("stub","()")]), "memcpy", - Args([Arg(Tid(2_110, "%0000083e"), Attrs([Attr("nonnull","()"), +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_111, "%0000083f"), +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_112, "%00000840"), Attrs([Attr("c.layout","[unsigned long : 64]"), +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_113, "%00000841"), Attrs([Attr("c.layout","*[ : 8]"), +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","0x760")]), Phis([]), -Defs([Def(Tid(1_451, "%000005ab"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_458, "%000005b2"), Attrs([Attr("address","0x764"), +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","0x768"), +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","0x76C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_041, "@memset"), + 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","0x7B0"), Attr("stub","()")]), "memset", - Args([Arg(Tid(2_114, "%00000842"), Attrs([Attr("nonnull","()"), +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_115, "%00000843"), +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_116, "%00000844"), +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_117, "%00000845"), Attrs([Attr("c.layout","*[ : 8]"), +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","0x7B0")]), Phis([]), -Defs([Def(Tid(1_561, "%00000619"), Attrs([Attr("address","0x7B0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_568, "%00000620"), Attrs([Attr("address","0x7B4"), +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","0x7B8"), +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","0x7BC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_042, "@puts"), + 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","0x7E0"), Attr("stub","()")]), "puts", - Args([Arg(Tid(2_118, "%00000846"), Attrs([Attr("c.layout","*[char : 8]"), +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_119, "%00000847"), Attrs([Attr("c.layout","[signed : 32]"), +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","0x7E0")]), Phis([]), -Defs([Def(Tid(1_627, "%0000065b"), Attrs([Attr("address","0x7E0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_634, "%00000662"), Attrs([Attr("address","0x7E4"), +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","0x7E8"), +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","0x7EC"), Attr("insn","br x17")]), Int(1,1), + Attrs([Attr("address","0x79C"), Attr("insn","br x17")]), Int(1,1), (Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_043, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x880")]), - "register_tm_clones", Args([Arg(Tid(2_120, "%00000848"), +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(661, "@register_tm_clones"), Attrs([Attr("address","0x880")]), - Phis([]), Defs([Def(Tid(664, "%00000298"), Attrs([Attr("address","0x880"), -Attr("insn","adrp x0, #0x20000")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(670, "%0000029e"), Attrs([Attr("address","0x884"), +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(675, "%000002a3"), - Attrs([Attr("address","0x888"), Attr("insn","adrp x1, #0x20000")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(681, "%000002a9"), - Attrs([Attr("address","0x88C"), Attr("insn","add x1, x1, #0x70")]), +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(688, "%000002b0"), Attrs([Attr("address","0x890"), +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(694, "%000002b6"), Attrs([Attr("address","0x894"), +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(701, "%000002bd"), Attrs([Attr("address","0x898"), +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(707, "%000002c3"), Attrs([Attr("address","0x89C"), +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(713, "%000002c9"), Attrs([Attr("address","0x8A0"), +Jmps([Goto(Tid(712, "%000002c8"), Attrs([Attr("address","0x860"), Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(711, "%000002c7"))), Goto(Tid(2_088, "%00000828"), Attrs([]), +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","0x8A4")]), Phis([]), -Defs([Def(Tid(1_136, "%00000470"), Attrs([Attr("address","0x8A4"), -Attr("insn","adrp x2, #0x1f000")]), Var("R2",Imm(64)), Int(126976,64)), -Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x8A8"), + 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","0x8AC"), +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(711, "%000002c7"))), Goto(Tid(2_089, "%00000829"), Attrs([]), - Int(1,1), Direct(Tid(1_152, "%00000480")))])), Blk(Tid(711, "%000002c7"), - Attrs([Attr("address","0x8B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(719, "%000002cf"), Attrs([Attr("address","0x8B8"), +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","0x8B0")]), Phis([]), -Defs([Def(Tid(1_156, "%00000484"), Attrs([Attr("address","0x8B0"), +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","0x8B4"), +Jmps([Call(Tid(1_161, "%00000489"), Attrs([Attr("address","0x874"), Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_046, "@strlen"), +Sub(Tid(1_937, "@strlen"), Attrs([Attr("c.proto","unsigned long (*)( const char* s)"), -Attr("pure","()"), Attr("address","0x770"), Attr("stub","()")]), "strlen", - Args([Arg(Tid(2_121, "%00000849"), Attrs([Attr("nonnull","()"), +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_122, "%0000084a"), +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","0x770")]), Phis([]), -Defs([Def(Tid(1_473, "%000005c1"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_480, "%000005c8"), Attrs([Attr("address","0x774"), + 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","0x778"), +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","0x77C"), Attr("insn","br x17")]), Int(1,1), + 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/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir b/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir index 6e0377703..fa9dd576a 100644 --- a/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir +++ b/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir @@ -1,48 +1,48 @@ -0000082a: program -000007e3: sub __cxa_finalize(__cxa_finalize_result) -0000082b: __cxa_finalize_result :: out u32 = low:32[R0] +000007bd: program +00000776: sub __cxa_finalize(__cxa_finalize_result) +000007be: __cxa_finalize_result :: out u32 = low:32[R0] 00000469: -000005ed: R16 := 0x20000 +000005ed: R16 := 0x11000 000005f4: R17 := mem[R16 + 0x18, el]:u64 000005fa: R16 := R16 + 0x18 000005ff: call R17 with noreturn -000007e4: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -0000082c: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002d3: -000002d7: #3 := R31 - 0x20 -000002dd: mem := mem with [#3, el]:u64 <- R29 -000002e3: mem := mem with [#3 + 8, el]:u64 <- R30 -000002e7: R31 := #3 -000002ed: R29 := R31 -000002f5: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002fa: R19 := 0x20000 -00000301: R0 := pad:64[mem[R19 + 0x70]] -00000307: when 0:0[R0] goto %00000305 -00000820: goto %00000432 +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 := 0x1F000 +00000435: R0 := 0x10000 0000043c: R0 := mem[R0 + 0xFC8, el]:u64 00000442: when R0 = 0 goto %00000440 -00000821: goto %00000459 +000007b4: goto %00000459 00000459: -0000045c: R0 := 0x20000 +0000045c: R0 := 0x11000 00000463: R0 := mem[R0 + 0x58, el]:u64 -00000468: R30 := 0x8F0 +00000468: R30 := 0x8B0 0000046b: call @__cxa_finalize with return %00000440 00000440: -00000448: R30 := 0x8F4 +00000448: R30 := 0x8B4 0000044a: call @deregister_tm_clones with return %0000044c 0000044c: 0000044f: R0 := 1 00000457: mem := mem with [R19 + 0x70] <- 7:0[R0] -00000822: goto %00000305 +000007b5: goto %00000305 00000305: 0000030f: R19 := mem[R31 + 0x10, el]:u64 @@ -51,154 +51,154 @@ 0000031f: R31 := R31 + 0x20 00000324: call R30 with noreturn -000007e8: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -0000082d: __libc_start_main_main :: in u64 = R0 -0000082e: __libc_start_main_arg2 :: in u32 = low:32[R1] -0000082f: __libc_start_main_arg3 :: in out u64 = R2 -00000830: __libc_start_main_auxv :: in out u64 = R3 -00000831: __libc_start_main_result :: out u32 = low:32[R0] +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] -0000022c: -000005d7: R16 := 0x20000 +0000022b: +000005d7: R16 := 0x11000 000005de: R17 := mem[R16 + 0x10, el]:u64 000005e4: R16 := R16 + 0x10 000005e9: call R17 with noreturn -000007e9: sub _fini(_fini_result) -00000832: _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 - -000007ea: sub _init(_init_result) -00000833: _init_result :: out u32 = low:32[R0] - -0000070c: -00000712: #8 := R31 - 0x10 -00000718: mem := mem with [#8, el]:u64 <- R29 -0000071e: mem := mem with [#8 + 8, el]:u64 <- R30 -00000722: R31 := #8 -00000728: R29 := R31 -0000072d: R30 := 0x738 -0000072f: call @call_weak_fn with return %00000731 - -00000731: -00000736: R29 := mem[R31, el]:u64 -0000073b: R30 := mem[R31 + 8, el]:u64 -0000073f: R31 := R31 + 0x10 -00000744: call R30 with noreturn - -000007eb: sub _start(_start_result) -00000834: _start_result :: out u32 = low:32[R0] - -000001ed: -000001f2: R29 := 0 -000001f7: R30 := 0 -000001fd: R5 := R0 -00000204: R1 := mem[R31, el]:u64 -0000020a: R2 := R31 + 8 -00000210: R6 := R31 -00000215: R0 := 0x1F000 -0000021c: R0 := mem[R0 + 0xFD8, el]:u64 -00000221: R3 := 0 -00000226: R4 := 0 -0000022b: R30 := 0x830 -0000022e: call @__libc_start_main with return %00000230 - -00000230: -00000233: R30 := 0x834 -00000236: call @abort with return %00000823 - -00000823: -00000824: call @call_weak_fn with noreturn - -000007ee: sub abort() - - -00000234: -00000645: R16 := 0x20000 +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 -000007ef: sub call_weak_fn(call_weak_fn_result) -00000835: call_weak_fn_result :: out u32 = low:32[R0] +00000782: sub call_weak_fn(call_weak_fn_result) +000007c8: call_weak_fn_result :: out u32 = low:32[R0] -00000238: -0000023b: R0 := 0x1F000 -00000242: R0 := mem[R0 + 0xFD0, el]:u64 -00000248: when R0 = 0 goto %00000246 -00000825: goto %000004a9 +00000237: +0000023a: R0 := 0x10000 +00000241: R0 := mem[R0 + 0xFD0, el]:u64 +00000247: when R0 = 0 goto %00000245 +000007b8: goto %000004a9 -00000246: -0000024e: call R30 with noreturn +00000245: +0000024d: call R30 with noreturn 000004a9: 000004ac: goto @__gmon_start__ 000004aa: -0000062f: R16 := 0x20000 +0000062f: R16 := 0x11000 00000636: R17 := mem[R16 + 0x30, el]:u64 0000063c: R16 := R16 + 0x30 00000641: call R17 with noreturn -000007f1: sub deregister_tm_clones(deregister_tm_clones_result) -00000836: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000254: -00000257: R0 := 0x20000 -0000025d: R0 := R0 + 0x70 -00000262: R1 := 0x20000 -00000268: R1 := R1 + 0x70 -0000026e: #1 := ~R0 -00000273: #2 := R1 + ~R0 -00000279: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -0000027f: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000283: ZF := #2 + 1 = 0 -00000287: NF := 63:63[#2 + 1] -0000028d: when ZF goto %0000028b -00000826: goto %0000048b +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 := 0x1F000 +0000048e: R1 := 0x10000 00000495: R1 := mem[R1 + 0xFC0, el]:u64 -0000049a: when R1 = 0 goto %0000028b -00000827: goto %0000049e +0000049a: when R1 = 0 goto %0000028a +000007ba: goto %0000049e -0000028b: -00000293: call R30 with noreturn +0000028a: +00000292: call R30 with noreturn 0000049e: 000004a2: R16 := R1 000004a7: call R16 with noreturn -000007f4: sub frame_dummy(frame_dummy_result) -00000837: frame_dummy_result :: out u32 = low:32[R0] +00000787: sub frame_dummy(frame_dummy_result) +000007ca: frame_dummy_result :: out u32 = low:32[R0] 0000032a: 0000032c: call @register_tm_clones with noreturn -000007f5: sub free(free_ptr) -00000838: free_ptr :: in out u64 = R0 +00000788: sub free(free_ptr) +000007cb: free_ptr :: in out u64 = R0 000003fd: -00000671: R16 := 0x20000 +00000671: R16 := 0x11000 00000678: R17 := mem[R16 + 0x48, el]:u64 0000067e: R16 := R16 + 0x48 00000683: call R17 with noreturn -000007f6: sub main(main_argc, main_argv, main_result) -00000839: main_argc :: in u32 = low:32[R0] -0000083a: main_argv :: in out u64 = R1 -0000083b: main_result :: out u32 = low:32[R0] +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 @@ -211,47 +211,47 @@ 0000035c: mem := mem with [#5 + 8, el]:u64 <- R19 00000362: R29 := R31 00000367: R0 := 0xB -0000036c: R30 := 0x92C +0000036c: R30 := 0x8EC 0000036f: call @malloc with return %00000371 00000371: -00000374: R21 := 0x20000 -00000379: R20 := 0x20000 +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 := 0x948 +00000398: R30 := 0x908 0000039b: call @strlen with return %0000039d 0000039d: 000003a1: R2 := R0 000003a7: R0 := R19 000003ad: R1 := R20 -000003b2: R30 := 0x958 +000003b2: R30 := 0x918 000003b5: call @memcpy with return %000003b7 000003b7: 000003bb: R0 := R19 -000003c0: R30 := 0x960 +000003c0: R30 := 0x920 000003c3: call @puts with return %000003c5 000003c5: 000003ca: R19 := mem[R21 + 0x78, el]:u64 000003d0: R0 := R19 -000003d5: R30 := 0x96C +000003d5: R30 := 0x92C 000003d7: call @strlen with return %000003d9 000003d9: 000003dd: R2 := R0 000003e3: R0 := R19 000003e8: R1 := 1 -000003ed: R30 := 0x97C +000003ed: R30 := 0x93C 000003f0: call @memset with return %000003f2 000003f2: 000003f7: R0 := mem[R21 + 0x78, el]:u64 -000003fc: R30 := 0x984 +000003fc: R30 := 0x944 000003ff: call @free with return %00000401 00000401: @@ -265,84 +265,84 @@ 0000042b: R31 := R31 + 0x30 00000430: call R30 with noreturn -000007f7: sub malloc(malloc_size, malloc_result) -0000083c: malloc_size :: in u64 = R0 -0000083d: malloc_result :: out u64 = R0 +0000078a: sub malloc(malloc_size, malloc_result) +000007cf: malloc_size :: in u64 = R0 +000007d0: malloc_result :: out u64 = R0 0000036d: -00000603: R16 := 0x20000 +00000603: R16 := 0x11000 0000060a: R17 := mem[R16 + 0x20, el]:u64 00000610: R16 := R16 + 0x20 00000615: call R17 with noreturn -000007f8: sub memcpy(memcpy_dst, memcpy_src, memcpy_n, memcpy_result) -0000083e: memcpy_dst :: in out u64 = R0 -0000083f: memcpy_src :: in out u64 = R1 -00000840: memcpy_n :: in u64 = R2 -00000841: memcpy_result :: out u64 = R0 +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 := 0x20000 +000005ab: R16 := 0x11000 000005b2: R17 := mem[R16, el]:u64 000005b8: R16 := R16 000005bd: call R17 with noreturn -000007f9: sub memset(memset_buf, memset_c, memset_n, memset_result) -00000842: memset_buf :: in out u64 = R0 -00000843: memset_c :: in u32 = low:32[R1] -00000844: memset_n :: in u64 = R2 -00000845: memset_result :: out u64 = R0 +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 := 0x20000 +00000619: R16 := 0x11000 00000620: R17 := mem[R16 + 0x28, el]:u64 00000626: R16 := R16 + 0x28 0000062b: call R17 with noreturn -000007fa: sub puts(puts_s, puts_result) -00000846: puts_s :: in u64 = R0 -00000847: puts_result :: out u32 = low:32[R0] +0000078d: sub puts(puts_s, puts_result) +000007d9: puts_s :: in u64 = R0 +000007da: puts_result :: out u32 = low:32[R0] 000003c1: -0000065b: R16 := 0x20000 +0000065b: R16 := 0x11000 00000662: R17 := mem[R16 + 0x40, el]:u64 00000668: R16 := R16 + 0x40 0000066d: call R17 with noreturn -000007fb: sub register_tm_clones(register_tm_clones_result) -00000848: register_tm_clones_result :: out u32 = low:32[R0] - -00000295: -00000298: R0 := 0x20000 -0000029e: R0 := R0 + 0x70 -000002a3: R1 := 0x20000 -000002a9: R1 := R1 + 0x70 -000002b0: R1 := R1 + ~R0 + 1 -000002b6: R2 := 0.63:63[R1] -000002bd: R1 := R2 + (R1 ~>> 3) -000002c3: R1 := extend:64[63:1[R1]] -000002c9: when R1 = 0 goto %000002c7 -00000828: goto %0000046d +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 := 0x1F000 +00000470: R2 := 0x10000 00000477: R2 := mem[R2 + 0xFE0, el]:u64 -0000047c: when R2 = 0 goto %000002c7 -00000829: goto %00000480 +0000047c: when R2 = 0 goto %000002c6 +000007bc: goto %00000480 -000002c7: -000002cf: call R30 with noreturn +000002c6: +000002ce: call R30 with noreturn 00000480: 00000484: R16 := R2 00000489: call R16 with noreturn -000007fe: sub strlen(strlen_s, strlen_result) -00000849: strlen_s :: in u64 = R0 -0000084a: strlen_result :: out u64 = R0 +00000791: sub strlen(strlen_s, strlen_result) +000007dc: strlen_s :: in u64 = R0 +000007dd: strlen_result :: out u64 = R0 00000399: -000005c1: R16 := 0x20000 +000005c1: R16 := 0x11000 000005c8: R17 := mem[R16 + 8, el]:u64 000005ce: R16 := R16 + 8 000005d3: call R17 with noreturn diff --git a/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts b/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts new file mode 100644 index 000000000..94dafbe74 Binary files /dev/null and b/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts differ diff --git a/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf b/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf index cc545d703..3164ecd00 100644 --- a/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf +++ b/src/test/correct/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf @@ -1,33 +1,33 @@ -Relocation section '.rela.dyn' at offset 0x578 contains 8 entries: +Relocation section '.rela.dyn' at offset 0x528 contains 8 entries: Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdb8 0000000000000403 R_AARCH64_RELATIVE 910 -000000000001fdc0 0000000000000403 R_AARCH64_RELATIVE 8c0 -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 914 -0000000000020058 0000000000000403 R_AARCH64_RELATIVE 20058 -000000000001ffc0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000e00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 +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 0x638 contains 10 entries: +Relocation section '.rela.plt' at offset 0x5e8 contains 10 entries: Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 memcpy@GLIBC_2.17 + 0 -0000000000020008 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000000000 strlen@GLIBC_2.17 + 0 -0000000000020010 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000020028 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 memset@GLIBC_2.17 + 0 -0000000000020030 0000000a00000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020038 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000020040 0000000c00000402 R_AARCH64_JUMP_SLOT 0000000000000000 puts@GLIBC_2.17 + 0 -0000000000020048 0000000d00000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 +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: 0000000000000728 0 SECTION LOCAL DEFAULT 12 .init - 2: 0000000000020050 0 SECTION LOCAL DEFAULT 24 .data + 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) @@ -41,105 +41,104 @@ Symbol table '.dynsym' contains 15 entries: 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 100 entries: +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 .hash - 5: 00000000000002e8 0 SECTION LOCAL DEFAULT 5 .gnu.hash - 6: 0000000000000308 0 SECTION LOCAL DEFAULT 6 .dynsym - 7: 0000000000000470 0 SECTION LOCAL DEFAULT 7 .dynstr - 8: 0000000000000524 0 SECTION LOCAL DEFAULT 8 .gnu.version - 9: 0000000000000548 0 SECTION LOCAL DEFAULT 9 .gnu.version_r - 10: 0000000000000578 0 SECTION LOCAL DEFAULT 10 .rela.dyn - 11: 0000000000000638 0 SECTION LOCAL DEFAULT 11 .rela.plt - 12: 0000000000000728 0 SECTION LOCAL DEFAULT 12 .init - 13: 0000000000000740 0 SECTION LOCAL DEFAULT 13 .plt - 14: 0000000000000800 0 SECTION LOCAL DEFAULT 14 .text - 15: 0000000000000998 0 SECTION LOCAL DEFAULT 15 .fini - 16: 00000000000009ac 0 SECTION LOCAL DEFAULT 16 .rodata - 17: 00000000000009b0 0 SECTION LOCAL DEFAULT 17 .eh_frame_hdr - 18: 00000000000009f0 0 SECTION LOCAL DEFAULT 18 .eh_frame - 19: 000000000001fdb8 0 SECTION LOCAL DEFAULT 19 .init_array - 20: 000000000001fdc0 0 SECTION LOCAL DEFAULT 20 .fini_array - 21: 000000000001fdc8 0 SECTION LOCAL DEFAULT 21 .dynamic - 22: 000000000001ffb8 0 SECTION LOCAL DEFAULT 22 .got - 23: 000000000001ffe8 0 SECTION LOCAL DEFAULT 23 .got.plt - 24: 0000000000020050 0 SECTION LOCAL DEFAULT 24 .data - 25: 0000000000020070 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: 0000000000000800 0 NOTYPE LOCAL DEFAULT 14 $x - 31: 0000000000000a04 0 NOTYPE LOCAL DEFAULT 18 $d - 32: 00000000000009ac 0 NOTYPE LOCAL DEFAULT 16 $d - 33: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 34: 0000000000000834 0 NOTYPE LOCAL DEFAULT 14 $x - 35: 0000000000000834 20 FUNC LOCAL DEFAULT 14 call_weak_fn - 36: 0000000000000728 0 NOTYPE LOCAL DEFAULT 12 $x - 37: 0000000000000998 0 NOTYPE LOCAL DEFAULT 15 $x - 38: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 39: 0000000000000738 0 NOTYPE LOCAL DEFAULT 12 $x - 40: 00000000000009a4 0 NOTYPE LOCAL DEFAULT 15 $x - 41: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 42: 0000000000000850 0 NOTYPE LOCAL DEFAULT 14 $x - 43: 0000000000000850 0 FUNC LOCAL DEFAULT 14 deregister_tm_clones - 44: 0000000000000880 0 FUNC LOCAL DEFAULT 14 register_tm_clones - 45: 0000000000020058 0 NOTYPE LOCAL DEFAULT 24 $d - 46: 00000000000008c0 0 FUNC LOCAL DEFAULT 14 __do_global_dtors_aux - 47: 0000000000020070 1 OBJECT LOCAL DEFAULT 25 completed.0 - 48: 000000000001fdc0 0 NOTYPE LOCAL DEFAULT 20 $d - 49: 000000000001fdc0 0 OBJECT LOCAL DEFAULT 20 __do_global_dtors_aux_fini_array_entry - 50: 0000000000000910 0 FUNC LOCAL DEFAULT 14 frame_dummy - 51: 000000000001fdb8 0 NOTYPE LOCAL DEFAULT 19 $d - 52: 000000000001fdb8 0 OBJECT LOCAL DEFAULT 19 __frame_dummy_init_array_entry - 53: 0000000000000a18 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000020070 0 NOTYPE LOCAL DEFAULT 25 $d - 55: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_memcpy_strlen_memset_free.c - 56: 0000000000000914 0 NOTYPE LOCAL DEFAULT 14 $x.0 - 57: 0000000000020060 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 58: 0000000000020078 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 59: 000000000000001d 0 NOTYPE LOCAL DEFAULT 26 $d.3 - 60: 0000000000000a78 0 NOTYPE LOCAL DEFAULT 18 $d.4 - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 62: 0000000000000abc 0 NOTYPE LOCAL DEFAULT 18 $d - 63: 0000000000000abc 0 OBJECT LOCAL DEFAULT 18 __FRAME_END__ - 64: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 65: 000000000001fdc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 66: 00000000000009b0 0 NOTYPE LOCAL DEFAULT 17 __GNU_EH_FRAME_HDR - 67: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 68: 0000000000000740 0 NOTYPE LOCAL DEFAULT 13 $x - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.17 - 70: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.17 - 71: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 72: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 73: 0000000000020050 0 NOTYPE WEAK DEFAULT 24 data_start - 74: 000000000002006c 0 NOTYPE GLOBAL DEFAULT 25 __bss_start__ - 75: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 76: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 25 _bss_end__ - 77: 000000000002006c 0 NOTYPE GLOBAL DEFAULT 24 _edata - 78: 0000000000000998 0 FUNC GLOBAL HIDDEN 15 _fini - 79: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 25 __bss_end__ - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.17 - 82: 0000000000020060 1 OBJECT GLOBAL DEFAULT 24 password - 83: 0000000000020050 0 NOTYPE GLOBAL DEFAULT 24 __data_start - 84: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 85: 0000000000020058 0 OBJECT GLOBAL HIDDEN 24 __dso_handle - 86: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 87: 00000000000009ac 4 OBJECT GLOBAL DEFAULT 16 _IO_stdin_used - 88: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 - 89: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 25 _end - 90: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 91: 0000000000000800 52 FUNC GLOBAL DEFAULT 14 _start - 92: 0000000000020078 8 OBJECT GLOBAL DEFAULT 25 buf - 93: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 25 __end__ - 94: 0000000000020061 11 OBJECT GLOBAL DEFAULT 24 stext - 95: 000000000002006c 0 NOTYPE GLOBAL DEFAULT 25 __bss_start - 96: 0000000000000914 132 FUNC GLOBAL DEFAULT 14 main - 97: 0000000000020070 0 OBJECT GLOBAL HIDDEN 24 __TMC_END__ - 98: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 99: 0000000000000728 0 FUNC GLOBAL HIDDEN 12 _init + 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/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt b/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt index 31a71ad9a..fc64a47cf 100644 --- a/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt +++ b/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt @@ -1,46 +1,45 @@ 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 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 memcpy)\n(external-reference 131080 strlen)\n(external-reference 131088 __libc_start_main)\n(external-reference 131096 __cxa_finalize)\n(external-reference 131104 malloc)\n(external-reference 131112 memset)\n(external-reference 131120 __gmon_start__)\n(external-reference 131128 abort)\n(external-reference 131136 puts)\n(external-reference 131144 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 1984 132)\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 __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 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 64968 568)\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 64984 480)\n(llvm:elf-program-header 03 64968 676)\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 130504 568)\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 130520 480)\n(llvm:elf-virtual-program-header 03 130504 696)\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 131144 free)\n(llvm:name-reference 131136 puts)\n(llvm:name-reference 131128 abort)\n(llvm:name-reference 131120 __gmon_start__)\n(llvm:name-reference 131112 memset)\n(llvm:name-reference 131104 malloc)\n(llvm:name-reference 131096 __cxa_finalize)\n(llvm:name-reference 131088 __libc_start_main)\n(llvm:name-reference 131080 strlen)\n(llvm:name-reference 131072 memcpy)\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 68723)\n(llvm:section-entry .strtab 0 691 68032)\n(llvm:section-entry .symtab 0 2352 65680)\n(llvm:section-entry .comment 0 30 65644)\n(llvm:section-entry .bss 131184 16 65644)\n(llvm:section-entry .data 131152 28 65616)\n(llvm:section-entry .got.plt 131048 104 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 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 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 1984 132 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 __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 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 130504 676 64968)\n(named-region 0 2716 02)\n(named-region 130504 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 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 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 104 .got.plt)\n(named-region 131152 28 .data)\n(named-region 131184 16 .bss)\n(named-region 0 30 .comment)\n(named-region 0 2352 .symtab)\n(named-region 0 691 .strtab)\n(named-region 0 259 .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 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 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 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 468)\n(section 2452 20)\n(section 2472 4)\n(section 2476 60)\n(section 2536 180)\n(section 130504 8)\n(section 130512 8)\n(section 130520 480)\n(section 131000 48)\n(section 131048 104)\n(section 131152 28)\n(section 131184 16)\n(section 0 30)\n(section 0 2352)\n(section 0 691)\n(section 0 259)\n(segment 0 2716 true false true)\n(segment 130504 696 true true false)\n(subarch v8)\n(symbol-chunk 2228 20 2228)\n(symbol-chunk 2176 52 2176)\n(symbol-chunk 1984 132 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("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\x78\x0d\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\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\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\x80\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x0d\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\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\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\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\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\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\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\x0c\x82\xbb\xc0\xf6\x83\xc0\x7c\xfe\x2d\xa5\x06\xf5\xc5\x85\xc1\x9b\xf8\x1a\x1b\x04\x00\x00\x00\x10\x00\x00\x00\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"), -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\x78\x0d\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\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\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\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\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\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\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\x0c\x82\xbb\xc0\xf6\x83\xc0\x7c\xfe\x2d\xa5\x06\xf5\xc5\x85\xc1\x9b\xf8\x1a\x1b\x04\x00\x00\x00\x10\x00\x00\x00\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\x00\x02\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\x0b\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\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\x2b\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\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\x8a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\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\x06\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\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\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\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x65\x6d\x73\x65\x74\x00\x6d\x65\x6d\x63\x70\x79\x00\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\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\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x09\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0e\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\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\x20\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x02\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\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\x10\x01\x00\x90\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1e\x40\xf9\x10\xe2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x22\x40\xf9\x10\x02\x01\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\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\xfd\x7b\xbd\xa9\x60\x01\x80\xd2\xfd\x03\x00\x91\xf5\x13\x00\xf9\x15\x01\x00\x90\xf3\x53\x01\xa9\xde\xff\xff\x97\x14\x01\x00\x90\x94\x82\x01\x91\xf3\x03\x00\xaa\xe0\x03\x14\xaa\xb3\x3e\x00\xf9\xcc\xff\xff\x97\xe2\x03\x00\xaa\xe1\x03\x14\xaa\xe0\x03\x13\xaa\xc4\xff\xff\x97\xe0\x03\x13\xaa\xe2\xff\xff\x97\xb3\x3e\x40\xf9\xe0\x03\x13\xaa\xc3\xff\xff\x97\x21\x00\x80\x52\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xcf\xff\xff\x97\xa0\x3e\x40\xf9\xdd\xff\xff\x97\xf3\x53\x41\xa9\x00\x00\x80\x52\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\x1f\x20\x03\xd5\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\xa1\xff\xff\x97\xb4\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xac\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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"), -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"), +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\x0c\x82\xbb\xc0\xf6\x83\xc0\x7c\xfe\x2d\xa5\x06\xf5\xc5\x85\xc1\x9b\xf8\x1a\x1b"), +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\x17\x00\x50\x00\x02\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\x0b\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\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\x2b\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\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\x8a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\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\x06\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\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\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\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x65\x6d\x73\x65\x74\x00\x6d\x65\x6d\x63\x70\x79\x00\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", 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\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x09\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\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\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\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\x20\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0d\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\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\x10\x01\x00\x90\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1e\x40\xf9\x10\xe2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x22\x40\xf9\x10\x02\x01\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x26\x40\xf9\x10\x22\x01\x91\x20\x02\x1f\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\x84\x00\x00\x00\x00\x41\x0e\x30\x9d\x06\x9e\x05\x43\x95\x02\x42\x93\x04\x94\x03\x5a\xde\xdd\xd5\xd3\xd4\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x1FDD0, "\x40\x09\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x1FDC8, "\x90\x09\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDD8, "\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\x94\x09\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\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\xff\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(".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\xc0\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\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", 0x20050, "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x00\x02\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\x15\x01\x00\x90\xf3\x53\x01\xa9\xde\xff\xff\x97\x14\x01\x00\x90\x94\x82\x01\x91\xf3\x03\x00\xaa\xe0\x03\x14\xaa\xb3\x3e\x00\xf9\xcc\xff\xff\x97\xe2\x03\x00\xaa\xe1\x03\x14\xaa\xe0\x03\x13\xaa\xc4\xff\xff\x97\xe0\x03\x13\xaa\xe2\xff\xff\x97\xb3\x3e\x40\xf9\xe0\x03\x13\xaa\xc3\xff\xff\x97\x21\x00\x80\x52\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xcf\xff\xff\x97\xa0\x3e\x40\xf9\xdd\xff\xff\x97\xf3\x53\x41\xa9\x00\x00\x80\x52\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\x1f\x20\x03\xd5\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\xa1\xff\xff\x97\xb4\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xac\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x41\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x2c\x40\xf9\x75\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")]), +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,0x843), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x2B2), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x92F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x1D), Attr("section","\".comment\"")), +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,0x4D2), Attr("section","\".dynstr\"")), -Annotation(Region(0x4D4,0x4F1), Attr("section","\".gnu.version\"")), +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\"")), @@ -48,7 +47,7 @@ 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,0x843), Attr("symbol-info","main 0x7C0 132")), +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\"")), @@ -57,121 +56,120 @@ 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(0x1FDC8,0x2006B), Attr("segment","03 0x1FDC8 696")), -Annotation(Region(0x1FDD0,0x1FDD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDC8,0x1FDCF), Attr("section","\".init_array\"")), -Annotation(Region(0x1FDD8,0x1FFB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FFB8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2004F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20050,0x2006B), Attr("section","\".data\"")), +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_015, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740"), + 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_219, "@__cxa_finalize"), - Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(1_607, "%00000647"), Attrs([Attr("address","0x740"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_614, "%0000064e"), 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_620, "%00000654"), 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_625, "%00000659"), - Attrs([Attr("address","0x74C"), Attr("insn","br x17")]), Int(1,1), +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_016, "@__do_global_dtors_aux"), +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_073, "@__do_global_dtors_aux"), +Blks([Blk(Tid(1_075, "@__do_global_dtors_aux"), Attrs([Attr("address","0x940")]), Phis([]), -Defs([Def(Tid(1_077, "%00000435"), Attrs([Attr("address","0x940"), +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_083, "%0000043b"), Attrs([Attr("address","0x940"), +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_089, "%00000441"), Attrs([Attr("address","0x940"), +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_093, "%00000445"), Attrs([Attr("address","0x940"), +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_099, "%0000044b"), +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_107, "%00000453"), + 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_112, "%00000458"), Attrs([Attr("address","0x94C"), -Attr("insn","adrp x19, #0x20000")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(1_119, "%0000045f"), Attrs([Attr("address","0x950"), -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(1_125, "%00000465"), Attrs([Attr("address","0x954"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), -Direct(Tid(1_123, "%00000463"))), Goto(Tid(2_076, "%0000081c"), Attrs([]), - Int(1,1), Direct(Tid(1_164, "%0000048c")))])), Blk(Tid(1_164, "%0000048c"), +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_167, "%0000048f"), Attrs([Attr("address","0x958"), -Attr("insn","adrp x0, #0x1f000")]), Var("R0",Imm(64)), Int(126976,64)), -Def(Tid(1_174, "%00000496"), Attrs([Attr("address","0x95C"), -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_180, "%0000049c"), Attrs([Attr("address","0x960"), +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_178, "%0000049a"))), Goto(Tid(2_077, "%0000081d"), Attrs([]), - Int(1,1), Direct(Tid(1_203, "%000004b3")))])), Blk(Tid(1_203, "%000004b3"), +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_206, "%000004b6"), Attrs([Attr("address","0x964"), -Attr("insn","adrp x0, #0x20000")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x968"), -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_218, "%000004c2"), Attrs([Attr("address","0x96C"), -Attr("insn","bl #-0x22c")]), Var("R30",Imm(64)), Int(2416,64))]), -Jmps([Call(Tid(1_221, "%000004c5"), Attrs([Attr("address","0x96C"), -Attr("insn","bl #-0x22c")]), Int(1,1), -(Direct(Tid(2_015, "@__cxa_finalize")),Direct(Tid(1_178, "%0000049a"))))])), -Blk(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x970")]), Phis([]), -Defs([Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x970"), +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_188, "%000004a4"), Attrs([Attr("address","0x970"), +Jmps([Call(Tid(1_191, "%000004a7"), Attrs([Attr("address","0x970"), Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(2_029, "@deregister_tm_clones")),Direct(Tid(1_190, "%000004a6"))))])), -Blk(Tid(1_190, "%000004a6"), Attrs([Attr("address","0x974")]), Phis([]), -Defs([Def(Tid(1_193, "%000004a9"), Attrs([Attr("address","0x974"), +(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_201, "%000004b1"), Attrs([Attr("address","0x978"), -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))]), +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_123, "%00000463")))])), Blk(Tid(1_123, "%00000463"), +Direct(Tid(1_126, "%00000466")))])), Blk(Tid(1_126, "%00000466"), Attrs([Attr("address","0x97C")]), Phis([]), -Defs([Def(Tid(1_133, "%0000046d"), Attrs([Attr("address","0x97C"), +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_140, "%00000474"), Attrs([Attr("address","0x980"), +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_145, "%00000479"), Attrs([Attr("address","0x980"), +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_149, "%0000047d"), Attrs([Attr("address","0x980"), +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_154, "%00000482"), +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_020, "@__libc_start_main"), +(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","0x730"), Attr("stub","()")]), "__libc_start_main", +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"), @@ -189,553 +187,545 @@ Attr("c.data","{} ptr"), Attr("c.type","void*")]), 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(906, "@__libc_start_main"), - Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_585, "%00000631"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_592, "%00000638"), 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_598, "%0000063e"), 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_603, "%00000643"), - Attrs([Attr("address","0x73C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_021, "@_fini"), +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_094, "%0000082e"), + "_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(32, "@_fini"), - Attrs([Attr("address","0x994")]), Phis([]), Defs([Def(Tid(38, "%00000026"), +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(44, "%0000002c"), Attrs([Attr("address","0x998"), +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(50, "%00000032"), Attrs([Attr("address","0x998"), +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(54, "%00000036"), Attrs([Attr("address","0x998"), +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(60, "%0000003c"), Attrs([Attr("address","0x99C"), +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(67, "%00000043"), Attrs([Attr("address","0x9A0"), +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(72, "%00000048"), Attrs([Attr("address","0x9A0"), +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(76, "%0000004c"), Attrs([Attr("address","0x9A0"), +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(81, "%00000051"), +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_022, "@_init"), +(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_026, "@_init"), Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D8")]), - "_init", Args([Arg(Tid(2_095, "%0000082f"), + "_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_785, "@_init"), +LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_788, "@_init"), Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_791, "%000006ff"), Attrs([Attr("address","0x6DC"), +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_797, "%00000705"), Attrs([Attr("address","0x6DC"), +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_803, "%0000070b"), Attrs([Attr("address","0x6DC"), +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_807, "%0000070f"), Attrs([Attr("address","0x6DC"), +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_813, "%00000715"), +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_818, "%0000071a"), + 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_820, "%0000071c"), + 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_027, "@call_weak_fn")),Direct(Tid(1_822, "%0000071e"))))])), -Blk(Tid(1_822, "%0000071e"), Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_827, "%00000723"), Attrs([Attr("address","0x6E8"), +(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_832, "%00000728"), Attrs([Attr("address","0x6E8"), +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_836, "%0000072c"), Attrs([Attr("address","0x6E8"), +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_841, "%00000731"), +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_023, "@_start"), +(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_096, "%00000830"), +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(843, "@_start"), - Attrs([Attr("address","0x880")]), Phis([]), Defs([Def(Tid(848, "%00000350"), +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(853, "%00000355"), + 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(859, "%0000035b"), + 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(866, "%00000362"), + 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(872, "%00000368"), Attrs([Attr("address","0x894"), +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(878, "%0000036e"), +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(883, "%00000373"), - Attrs([Attr("address","0x89C"), Attr("insn","adrp x0, #0x1f000")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(890, "%0000037a"), - Attrs([Attr("address","0x8A0"), Attr("insn","ldr x0, [x0, #0xfd8]")]), + 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(4056,64)),LittleEndian(),64)), -Def(Tid(895, "%0000037f"), Attrs([Attr("address","0x8A4"), +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(900, "%00000384"), Attrs([Attr("address","0x8A8"), +Def(Tid(902, "%00000386"), Attrs([Attr("address","0x8A8"), Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2224,64))]), -Jmps([Call(Tid(908, "%0000038c"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(2_020, "@__libc_start_main")),Direct(Tid(910, "%0000038e"))))])), -Blk(Tid(910, "%0000038e"), Attrs([Attr("address","0x8B0")]), Phis([]), -Defs([Def(Tid(913, "%00000391"), Attrs([Attr("address","0x8B0"), +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(916, "%00000394"), Attrs([Attr("address","0x8B0"), +Jmps([Call(Tid(918, "%00000396"), Attrs([Attr("address","0x8B0"), Attr("insn","bl #-0x130")]), Int(1,1), -(Direct(Tid(2_026, "@abort")),Direct(Tid(2_079, "%0000081f"))))])), +(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_027, "@call_weak_fn")),))]))])), Sub(Tid(2_026, "@abort"), +(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(914, "@abort"), Attrs([Attr("address","0x780")]), Phis([]), -Defs([Def(Tid(1_695, "%0000069f"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_702, "%000006a6"), 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_708, "%000006ac"), 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_713, "%000006b1"), +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_027, "@call_weak_fn"), +(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_097, "%00000831"), + "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(918, "@call_weak_fn"), - Attrs([Attr("address","0x8B4")]), Phis([]), Defs([Def(Tid(921, "%00000399"), - Attrs([Attr("address","0x8B4"), Attr("insn","adrp x0, #0x1f000")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(928, "%000003a0"), - Attrs([Attr("address","0x8B8"), Attr("insn","ldr x0, [x0, #0xfd0]")]), +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(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(934, "%000003a6"), Attrs([Attr("address","0x8BC"), +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(932, "%000003a4"))), Goto(Tid(2_081, "%00000821"), Attrs([]), - Int(1,1), Direct(Tid(1_283, "%00000503")))])), Blk(Tid(932, "%000003a4"), +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(940, "%000003ac"), Attrs([Attr("address","0x8C4"), +Jmps([Call(Tid(942, "%000003ae"), Attrs([Attr("address","0x8C4"), Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_283, "%00000503"), Attrs([Attr("address","0x8C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_286, "%00000506"), Attrs([Attr("address","0x8C0"), +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_284, "@__gmon_start__")))])), Blk(Tid(1_284, "@__gmon_start__"), +Direct(Tid(1_287, "@__gmon_start__")))])), Blk(Tid(1_287, "@__gmon_start__"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_673, "%00000689"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_680, "%00000690"), 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_686, "%00000696"), 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_691, "%0000069b"), +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_029, "@deregister_tm_clones"), +Sub(Tid(2_033, "@deregister_tm_clones"), Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8D0")]), - "deregister_tm_clones", Args([Arg(Tid(2_098, "%00000832"), + "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(946, "@deregister_tm_clones"), - Attrs([Attr("address","0x8D0")]), Phis([]), Defs([Def(Tid(949, "%000003b5"), - Attrs([Attr("address","0x8D0"), Attr("insn","adrp x0, #0x20000")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(955, "%000003bb"), - Attrs([Attr("address","0x8D4"), Attr("insn","add x0, x0, #0x70")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(112,64))), -Def(Tid(960, "%000003c0"), Attrs([Attr("address","0x8D8"), -Attr("insn","adrp x1, #0x20000")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(966, "%000003c6"), Attrs([Attr("address","0x8DC"), -Attr("insn","add x1, x1, #0x70")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(112,64))), Def(Tid(972, "%000003cc"), +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(977, "%000003d1"), + 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(983, "%000003d7"), Attrs([Attr("address","0x8E0"), +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(989, "%000003dd"), Attrs([Attr("address","0x8E0"), +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(993, "%000003e1"), Attrs([Attr("address","0x8E0"), +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(997, "%000003e5"), +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_003, "%000003eb"), Attrs([Attr("address","0x8E4"), +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_001, "%000003e9"))), Goto(Tid(2_082, "%00000822"), Attrs([]), - Int(1,1), Direct(Tid(1_253, "%000004e5")))])), Blk(Tid(1_253, "%000004e5"), +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_256, "%000004e8"), Attrs([Attr("address","0x8E8"), -Attr("insn","adrp x1, #0x1f000")]), Var("R1",Imm(64)), Int(126976,64)), -Def(Tid(1_263, "%000004ef"), Attrs([Attr("address","0x8EC"), -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_268, "%000004f4"), Attrs([Attr("address","0x8F0"), +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_001, "%000003e9"))), Goto(Tid(2_083, "%00000823"), Attrs([]), - Int(1,1), Direct(Tid(1_272, "%000004f8")))])), Blk(Tid(1_001, "%000003e9"), +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_009, "%000003f1"), Attrs([Attr("address","0x8FC"), +Jmps([Call(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x8FC"), Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_272, "%000004f8"), Attrs([Attr("address","0x8F4")]), Phis([]), -Defs([Def(Tid(1_276, "%000004fc"), Attrs([Attr("address","0x8F4"), +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_281, "%00000501"), Attrs([Attr("address","0x8F8"), +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_032, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x990")]), "frame_dummy", Args([Arg(Tid(2_099, "%00000833"), +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_160, "@frame_dummy"), +LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_163, "@frame_dummy"), Attrs([Attr("address","0x990")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_162, "%0000048a"), Attrs([Attr("address","0x990"), +Jmps([Call(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x990"), Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_039, "@register_tm_clones")),))]))])), Sub(Tid(2_033, "@free"), +(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_100, "%00000834"), +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(760, "@free"), Attrs([Attr("address","0x7A0")]), - Phis([]), Defs([Def(Tid(1_739, "%000006cb"), Attrs([Attr("address","0x7A0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_746, "%000006d2"), 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_752, "%000006d8"), 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_757, "%000006dd"), +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_034, "@main"), +(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_101, "%00000835"), +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_102, "%00000836"), +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_103, "%00000837"), +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(553, "@main"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(557, "%0000022d"), +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(563, "%00000233"), Attrs([Attr("address","0x7C0"), +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(569, "%00000239"), Attrs([Attr("address","0x7C0"), +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(573, "%0000023d"), Attrs([Attr("address","0x7C0"), +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(578, "%00000242"), +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(584, "%00000248"), + 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(592, "%00000250"), + 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(597, "%00000255"), Attrs([Attr("address","0x7D0"), -Attr("insn","adrp x21, #0x20000")]), Var("R21",Imm(64)), Int(131072,64)), -Def(Tid(603, "%0000025b"), Attrs([Attr("address","0x7D4"), +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(609, "%00000261"), +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(615, "%00000267"), Attrs([Attr("address","0x7D4"), +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(620, "%0000026c"), Attrs([Attr("address","0x7D8"), +Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x7D8"), Attr("insn","bl #-0x88")]), Var("R30",Imm(64)), Int(2012,64))]), -Jmps([Call(Tid(623, "%0000026f"), Attrs([Attr("address","0x7D8"), +Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x7D8"), Attr("insn","bl #-0x88")]), Int(1,1), -(Direct(Tid(2_035, "@malloc")),Direct(Tid(625, "%00000271"))))])), -Blk(Tid(625, "%00000271"), Attrs([Attr("address","0x7DC")]), Phis([]), -Defs([Def(Tid(628, "%00000274"), Attrs([Attr("address","0x7DC"), -Attr("insn","adrp x20, #0x20000")]), Var("R20",Imm(64)), Int(131072,64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x7E0"), -Attr("insn","add x20, x20, #0x60")]), Var("R20",Imm(64)), -PLUS(Var("R20",Imm(64)),Int(96,64))), Def(Tid(640, "%00000280"), +(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(646, "%00000286"), + 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(654, "%0000028e"), - Attrs([Attr("address","0x7EC"), Attr("insn","str x19, [x21, #0x78]")]), + 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(120,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(659, "%00000293"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xd0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(662, "%00000296"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xd0")]), Int(1,1), -(Direct(Tid(2_042, "@strlen")),Direct(Tid(664, "%00000298"))))])), -Blk(Tid(664, "%00000298"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x7F4"), +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(674, "%000002a2"), Attrs([Attr("address","0x7F8"), +Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x7F8"), Attr("insn","mov x1, x20")]), Var("R1",Imm(64)), Var("R20",Imm(64))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x7FC"), +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(685, "%000002ad"), Attrs([Attr("address","0x800"), -Attr("insn","bl #-0xf0")]), Var("R30",Imm(64)), Int(2052,64))]), -Jmps([Call(Tid(688, "%000002b0"), Attrs([Attr("address","0x800"), -Attr("insn","bl #-0xf0")]), Int(1,1), -(Direct(Tid(2_036, "@memcpy")),Direct(Tid(690, "%000002b2"))))])), -Blk(Tid(690, "%000002b2"), Attrs([Attr("address","0x804")]), Phis([]), -Defs([Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x804"), +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(699, "%000002bb"), Attrs([Attr("address","0x808"), -Attr("insn","bl #-0x78")]), Var("R30",Imm(64)), Int(2060,64))]), -Jmps([Call(Tid(702, "%000002be"), Attrs([Attr("address","0x808"), -Attr("insn","bl #-0x78")]), Int(1,1), -(Direct(Tid(2_038, "@puts")),Direct(Tid(704, "%000002c0"))))])), -Blk(Tid(704, "%000002c0"), Attrs([Attr("address","0x80C")]), Phis([]), -Defs([Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x80C"), -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(715, "%000002cb"), Attrs([Attr("address","0x810"), +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(720, "%000002d0"), Attrs([Attr("address","0x814"), -Attr("insn","bl #-0xf4")]), Var("R30",Imm(64)), Int(2072,64))]), -Jmps([Call(Tid(722, "%000002d2"), Attrs([Attr("address","0x814"), -Attr("insn","bl #-0xf4")]), Int(1,1), -(Direct(Tid(2_042, "@strlen")),Direct(Tid(724, "%000002d4"))))])), -Blk(Tid(724, "%000002d4"), Attrs([Attr("address","0x818")]), Phis([]), -Defs([Def(Tid(727, "%000002d7"), Attrs([Attr("address","0x818"), +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(733, "%000002dd"), Attrs([Attr("address","0x81C"), +Def(Tid(737, "%000002e1"), Attrs([Attr("address","0x820"), Attr("insn","mov x2, x0")]), Var("R2",Imm(64)), Var("R0",Imm(64))), -Def(Tid(739, "%000002e3"), Attrs([Attr("address","0x820"), +Def(Tid(743, "%000002e7"), Attrs([Attr("address","0x824"), Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(744, "%000002e8"), Attrs([Attr("address","0x824"), -Attr("insn","bl #-0xc4")]), Var("R30",Imm(64)), Int(2088,64))]), -Jmps([Call(Tid(747, "%000002eb"), Attrs([Attr("address","0x824"), -Attr("insn","bl #-0xc4")]), Int(1,1), -(Direct(Tid(2_037, "@memset")),Direct(Tid(749, "%000002ed"))))])), -Blk(Tid(749, "%000002ed"), Attrs([Attr("address","0x828")]), Phis([]), -Defs([Def(Tid(754, "%000002f2"), Attrs([Attr("address","0x828"), -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(759, "%000002f7"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0x8c")]), Var("R30",Imm(64)), Int(2096,64))]), -Jmps([Call(Tid(762, "%000002fa"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0x8c")]), Int(1,1), -(Direct(Tid(2_033, "@free")),Direct(Tid(764, "%000002fc"))))])), -Blk(Tid(764, "%000002fc"), Attrs([Attr("address","0x830")]), Phis([]), -Defs([Def(Tid(768, "%00000300"), Attrs([Attr("address","0x830"), +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(773, "%00000305"), - Attrs([Attr("address","0x830"), Attr("insn","ldp x19, x20, [sp, #0x10]")]), +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(778, "%0000030a"), Attrs([Attr("address","0x830"), +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(783, "%0000030f"), Attrs([Attr("address","0x834"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x838"), +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(797, "%0000031d"), Attrs([Attr("address","0x83C"), +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(802, "%00000322"), Attrs([Attr("address","0x83C"), +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(806, "%00000326"), Attrs([Attr("address","0x83C"), +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(811, "%0000032b"), - Attrs([Attr("address","0x840"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_035, "@malloc"), +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_104, "%00000838"), Attrs([Attr("alloc-size","()"), + 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_105, "%00000839"), +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(621, "@malloc"), Attrs([Attr("address","0x750")]), Phis([]), -Defs([Def(Tid(1_629, "%0000065d"), Attrs([Attr("address","0x750"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_636, "%00000664"), 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_642, "%0000066a"), 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_647, "%0000066f"), +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_036, "@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_106, "%0000083a"), 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_107, "%0000083b"), - 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_108, "%0000083c"), 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_109, "%0000083d"), 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(686, "@memcpy"), Attrs([Attr("address","0x710")]), Phis([]), -Defs([Def(Tid(1_541, "%00000605"), Attrs([Attr("address","0x710"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_548, "%0000060c"), 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_554, "%00000612"), Attrs([Attr("address","0x718"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_559, "%00000617"), - Attrs([Attr("address","0x71C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_037, "@memset"), +(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_110, "%0000083e"), Attrs([Attr("nonnull","()"), + 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_111, "%0000083f"), +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_112, "%00000840"), +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_113, "%00000841"), Attrs([Attr("c.layout","*[ : 8]"), +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(745, "@memset"), Attrs([Attr("address","0x760")]), Phis([]), -Defs([Def(Tid(1_651, "%00000673"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_658, "%0000067a"), 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_664, "%00000680"), 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_669, "%00000685"), +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_038, "@puts"), +(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_114, "%00000842"), Attrs([Attr("c.layout","*[char : 8]"), + 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_115, "%00000843"), Attrs([Attr("c.layout","[signed : 32]"), +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(700, "@puts"), Attrs([Attr("address","0x790")]), Phis([]), -Defs([Def(Tid(1_717, "%000006b5"), Attrs([Attr("address","0x790"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_724, "%000006bc"), 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_730, "%000006c2"), 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_735, "%000006c7"), +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_039, "@register_tm_clones"), +Sub(Tid(2_042, "@register_tm_clones"), Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x900")]), - "register_tm_clones", Args([Arg(Tid(2_116, "%00000844"), + "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_011, "@register_tm_clones"), +Blks([Blk(Tid(1_013, "@register_tm_clones"), Attrs([Attr("address","0x900")]), Phis([]), -Defs([Def(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x900"), -Attr("insn","adrp x0, #0x20000")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(1_020, "%000003fc"), Attrs([Attr("address","0x904"), -Attr("insn","add x0, x0, #0x70")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(112,64))), Def(Tid(1_025, "%00000401"), - Attrs([Attr("address","0x908"), Attr("insn","adrp x1, #0x20000")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(1_031, "%00000407"), - Attrs([Attr("address","0x90C"), Attr("insn","add x1, x1, #0x70")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(112,64))), -Def(Tid(1_038, "%0000040e"), Attrs([Attr("address","0x910"), +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_044, "%00000414"), Attrs([Attr("address","0x914"), +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_051, "%0000041b"), Attrs([Attr("address","0x918"), +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_057, "%00000421"), Attrs([Attr("address","0x91C"), +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_063, "%00000427"), Attrs([Attr("address","0x920"), +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_061, "%00000425"))), Goto(Tid(2_084, "%00000824"), Attrs([]), - Int(1,1), Direct(Tid(1_223, "%000004c7")))])), Blk(Tid(1_223, "%000004c7"), +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_226, "%000004ca"), Attrs([Attr("address","0x924"), -Attr("insn","adrp x2, #0x1f000")]), Var("R2",Imm(64)), Int(126976,64)), -Def(Tid(1_233, "%000004d1"), Attrs([Attr("address","0x928"), -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_238, "%000004d6"), Attrs([Attr("address","0x92C"), +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_061, "%00000425"))), Goto(Tid(2_085, "%00000825"), Attrs([]), - Int(1,1), Direct(Tid(1_242, "%000004da")))])), Blk(Tid(1_061, "%00000425"), +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_069, "%0000042d"), Attrs([Attr("address","0x938"), +Jmps([Call(Tid(1_071, "%0000042f"), Attrs([Attr("address","0x938"), Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_242, "%000004da"), Attrs([Attr("address","0x930")]), Phis([]), -Defs([Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x930"), +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_251, "%000004e3"), Attrs([Attr("address","0x934"), +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_042, "@strlen"), +Sub(Tid(2_045, "@strlen"), Attrs([Attr("c.proto","unsigned long (*)( const char* s)"), -Attr("pure","()"), Attr("address","0x720"), Attr("stub","()")]), "strlen", - Args([Arg(Tid(2_117, "%00000845"), Attrs([Attr("nonnull","()"), +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_118, "%00000846"), +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(660, "@strlen"), - Attrs([Attr("address","0x720")]), Phis([]), -Defs([Def(Tid(1_563, "%0000061b"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_570, "%00000622"), 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_576, "%00000628"), 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_581, "%0000062d"), - Attrs([Attr("address","0x72C"), Attr("insn","br x17")]), Int(1,1), +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/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir b/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir index c5b4e5f34..7a0877905 100644 --- a/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir +++ b/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir @@ -1,348 +1,346 @@ 00000826: program -000007df: sub __cxa_finalize(__cxa_finalize_result) +000007e2: sub __cxa_finalize(__cxa_finalize_result) 00000827: __cxa_finalize_result :: out u32 = low:32[R0] -000004c3: -00000647: R16 := 0x20000 -0000064e: R17 := mem[R16 + 0x18, el]:u64 -00000654: R16 := R16 + 0x18 -00000659: call R17 with noreturn +000004c6: +00000634: R16 := 0x10000 +0000063b: R17 := mem[R16 + 0xF90, el]:u64 +00000641: R16 := R16 + 0xF90 +00000646: call R17 with noreturn -000007e0: sub __do_global_dtors_aux(__do_global_dtors_aux_result) +000007e3: sub __do_global_dtors_aux(__do_global_dtors_aux_result) 00000828: __do_global_dtors_aux_result :: out u32 = low:32[R0] -00000431: -00000435: #6 := R31 - 0x20 -0000043b: mem := mem with [#6, el]:u64 <- R29 -00000441: mem := mem with [#6 + 8, el]:u64 <- R30 -00000445: R31 := #6 -0000044b: R29 := R31 -00000453: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000458: R19 := 0x20000 -0000045f: R0 := pad:64[mem[R19 + 0x70]] -00000465: when 0:0[R0] goto %00000463 -0000081c: goto %0000048c - -0000048c: -0000048f: R0 := 0x1F000 -00000496: R0 := mem[R0 + 0xFC8, el]:u64 -0000049c: when R0 = 0 goto %0000049a -0000081d: goto %000004b3 - -000004b3: -000004b6: R0 := 0x20000 -000004bd: R0 := mem[R0 + 0x58, el]:u64 -000004c2: R30 := 0x970 -000004c5: call @__cxa_finalize with return %0000049a - -0000049a: -000004a2: R30 := 0x974 -000004a4: call @deregister_tm_clones with return %000004a6 - -000004a6: -000004a9: R0 := 1 -000004b1: mem := mem with [R19 + 0x70] <- 7:0[R0] -0000081e: goto %00000463 - -00000463: -0000046d: R19 := mem[R31 + 0x10, el]:u64 -00000474: R29 := mem[R31, el]:u64 -00000479: R30 := mem[R31 + 8, el]:u64 -0000047d: R31 := R31 + 0x20 -00000482: call R30 with noreturn - -000007e4: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) +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] -0000038a: -00000631: R16 := 0x20000 -00000638: R17 := mem[R16 + 0x10, el]:u64 -0000063e: R16 := R16 + 0x10 -00000643: call R17 with noreturn - -000007e5: sub _fini(_fini_result) -0000082e: _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 - -000007e6: sub _init(_init_result) -0000082f: _init_result :: out u32 = low:32[R0] - -000006f9: -000006ff: #8 := R31 - 0x10 -00000705: mem := mem with [#8, el]:u64 <- R29 -0000070b: mem := mem with [#8 + 8, el]:u64 <- R30 -0000070f: R31 := #8 -00000715: R29 := R31 -0000071a: R30 := 0x6E8 -0000071c: call @call_weak_fn with return %0000071e - -0000071e: -00000723: R29 := mem[R31, el]:u64 -00000728: R30 := mem[R31 + 8, el]:u64 -0000072c: R31 := R31 + 0x10 -00000731: call R30 with noreturn - -000007e7: sub _start(_start_result) -00000830: _start_result :: out u32 = low:32[R0] - -0000034b: -00000350: R29 := 0 -00000355: R30 := 0 -0000035b: R5 := R0 -00000362: R1 := mem[R31, el]:u64 -00000368: R2 := R31 + 8 -0000036e: R6 := R31 -00000373: R0 := 0x1F000 -0000037a: R0 := mem[R0 + 0xFD8, el]:u64 -0000037f: R3 := 0 -00000384: R4 := 0 -00000389: R30 := 0x8B0 -0000038c: call @__libc_start_main with return %0000038e - -0000038e: -00000391: R30 := 0x8B4 -00000394: call @abort with return %0000081f +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 -000007ea: sub abort() - - -00000392: -0000069f: R16 := 0x20000 -000006a6: R17 := mem[R16 + 0x38, el]:u64 -000006ac: R16 := R16 + 0x38 -000006b1: call R17 with noreturn - -000007eb: sub call_weak_fn(call_weak_fn_result) -00000831: call_weak_fn_result :: out u32 = low:32[R0] - -00000396: -00000399: R0 := 0x1F000 -000003a0: R0 := mem[R0 + 0xFD0, el]:u64 -000003a6: when R0 = 0 goto %000003a4 -00000821: goto %00000503 - -000003a4: -000003ac: call R30 with noreturn - -00000503: -00000506: goto @__gmon_start__ - -00000504: -00000689: R16 := 0x20000 -00000690: R17 := mem[R16 + 0x30, el]:u64 -00000696: R16 := R16 + 0x30 -0000069b: call R17 with noreturn - -000007ed: sub deregister_tm_clones(deregister_tm_clones_result) -00000832: deregister_tm_clones_result :: out u32 = low:32[R0] - -000003b2: -000003b5: R0 := 0x20000 -000003bb: R0 := R0 + 0x70 -000003c0: R1 := 0x20000 -000003c6: R1 := R1 + 0x70 -000003cc: #4 := ~R0 -000003d1: #5 := R1 + ~R0 -000003d7: VF := extend:65[#5 + 1] <> extend:65[R1] + extend:65[#4] + 1 -000003dd: CF := pad:65[#5 + 1] <> pad:65[R1] + pad:65[#4] + 1 -000003e1: ZF := #5 + 1 = 0 -000003e5: NF := 63:63[#5 + 1] -000003eb: when ZF goto %000003e9 -00000822: goto %000004e5 - -000004e5: -000004e8: R1 := 0x1F000 -000004ef: R1 := mem[R1 + 0xFC0, el]:u64 -000004f4: when R1 = 0 goto %000003e9 -00000823: goto %000004f8 - -000003e9: -000003f1: call R30 with noreturn - -000004f8: -000004fc: R16 := R1 -00000501: call R16 with noreturn - -000007f0: sub frame_dummy(frame_dummy_result) -00000833: frame_dummy_result :: out u32 = low:32[R0] - -00000488: -0000048a: call @register_tm_clones with noreturn - -000007f1: sub free(free_ptr) -00000834: free_ptr :: in out u64 = R0 - -000002f8: -000006cb: R16 := 0x20000 -000006d2: R17 := mem[R16 + 0x48, el]:u64 -000006d8: R16 := R16 + 0x48 -000006dd: call R17 with noreturn - -000007f2: sub main(main_argc, main_argv, main_result) -00000835: main_argc :: in u32 = low:32[R0] -00000836: main_argv :: in out u64 = R1 -00000837: main_result :: out u32 = low:32[R0] - -00000229: -0000022d: #1 := R31 - 0x30 -00000233: mem := mem with [#1, el]:u64 <- R29 -00000239: mem := mem with [#1 + 8, el]:u64 <- R30 -0000023d: R31 := #1 -00000242: R0 := 0xB -00000248: R29 := R31 -00000250: mem := mem with [R31 + 0x20, el]:u64 <- R21 -00000255: R21 := 0x20000 -0000025b: #2 := R31 + 0x10 -00000261: mem := mem with [#2, el]:u64 <- R19 -00000267: mem := mem with [#2 + 8, el]:u64 <- R20 -0000026c: R30 := 0x7DC -0000026f: call @malloc with return %00000271 - -00000271: -00000274: R20 := 0x20000 -0000027a: R20 := R20 + 0x60 -00000280: R19 := R0 -00000286: R0 := R20 -0000028e: mem := mem with [R21 + 0x78, el]:u64 <- R19 -00000293: R30 := 0x7F4 -00000296: call @strlen with return %00000298 - -00000298: -0000029c: R2 := R0 -000002a2: R1 := R20 -000002a8: R0 := R19 -000002ad: R30 := 0x804 -000002b0: call @memcpy with return %000002b2 +000007ee: sub abort() -000002b2: -000002b6: R0 := R19 -000002bb: R30 := 0x80C -000002be: call @puts with return %000002c0 -000002c0: -000002c5: R19 := mem[R21 + 0x78, el]:u64 -000002cb: R0 := R19 -000002d0: R30 := 0x818 -000002d2: call @strlen with return %000002d4 - -000002d4: -000002d7: R1 := 1 -000002dd: R2 := R0 -000002e3: R0 := R19 -000002e8: R30 := 0x828 -000002eb: call @memset with return %000002ed +00000394: +000006a2: R16 := 0x10000 +000006a9: R17 := mem[R16 + 0xFB8, el]:u64 +000006af: R16 := R16 + 0xFB8 +000006b4: call R17 with noreturn -000002ed: -000002f2: R0 := mem[R21 + 0x78, el]:u64 -000002f7: R30 := 0x830 -000002fa: call @free with return %000002fc +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: -00000300: #3 := R31 + 0x10 -00000305: R19 := mem[#3, el]:u64 -0000030a: R20 := mem[#3 + 8, el]:u64 -0000030f: R0 := 0 -00000316: R21 := mem[R31 + 0x20, el]:u64 -0000031d: R29 := mem[R31, el]:u64 -00000322: R30 := mem[R31 + 8, el]:u64 -00000326: R31 := R31 + 0x30 -0000032b: call R30 with noreturn - -000007f3: sub malloc(malloc_size, malloc_result) -00000838: malloc_size :: in u64 = R0 -00000839: malloc_result :: out u64 = R0 - -0000026d: -0000065d: R16 := 0x20000 -00000664: R17 := mem[R16 + 0x20, el]:u64 -0000066a: R16 := R16 + 0x20 -0000066f: call R17 with noreturn - -000007f4: sub memcpy(memcpy_dst, memcpy_src, memcpy_n, memcpy_result) -0000083a: memcpy_dst :: in out u64 = R0 -0000083b: memcpy_src :: in out u64 = R1 -0000083c: memcpy_n :: in u64 = R2 -0000083d: memcpy_result :: out u64 = R0 - -000002ae: -00000605: R16 := 0x20000 -0000060c: R17 := mem[R16, el]:u64 -00000612: R16 := R16 -00000617: call R17 with noreturn - -000007f5: sub memset(memset_buf, memset_c, memset_n, memset_result) -0000083e: memset_buf :: in out u64 = R0 -0000083f: memset_c :: in u32 = low:32[R1] -00000840: memset_n :: in u64 = R2 -00000841: memset_result :: out u64 = R0 - -000002e9: -00000673: R16 := 0x20000 -0000067a: R17 := mem[R16 + 0x28, el]:u64 -00000680: R16 := R16 + 0x28 -00000685: call R17 with noreturn - -000007f6: sub puts(puts_s, puts_result) -00000842: puts_s :: in u64 = R0 -00000843: puts_result :: out u32 = low:32[R0] - -000002bc: -000006b5: R16 := 0x20000 -000006bc: R17 := mem[R16 + 0x40, el]:u64 -000006c2: R16 := R16 + 0x40 -000006c7: call R17 with noreturn - -000007f7: sub register_tm_clones(register_tm_clones_result) -00000844: register_tm_clones_result :: out u32 = low:32[R0] - -000003f3: -000003f6: R0 := 0x20000 -000003fc: R0 := R0 + 0x70 -00000401: R1 := 0x20000 -00000407: R1 := R1 + 0x70 -0000040e: R1 := R1 + ~R0 + 1 -00000414: R2 := 0.63:63[R1] -0000041b: R1 := R2 + (R1 ~>> 3) -00000421: R1 := extend:64[63:1[R1]] -00000427: when R1 = 0 goto %00000425 -00000824: goto %000004c7 - -000004c7: -000004ca: R2 := 0x1F000 -000004d1: R2 := mem[R2 + 0xFE0, el]:u64 -000004d6: when R2 = 0 goto %00000425 -00000825: goto %000004da - -00000425: -0000042d: call R30 with noreturn - -000004da: -000004de: R16 := R2 -000004e3: call R16 with noreturn - -000007fa: sub strlen(strlen_s, strlen_result) -00000845: strlen_s :: in u64 = R0 -00000846: strlen_result :: out u64 = R0 - -00000294: -0000061b: R16 := 0x20000 -00000622: R17 := mem[R16 + 8, el]:u64 -00000628: R16 := R16 + 8 -0000062d: call R17 with noreturn +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/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts b/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts new file mode 100644 index 000000000..6cc67e7e9 Binary files /dev/null and b/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts differ diff --git a/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf b/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf index 30bb59fe2..bb7655d80 100644 --- a/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf +++ b/src/test/correct/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf @@ -1,38 +1,38 @@ Relocation section '.rela.dyn' at offset 0x528 contains 8 entries: Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdc8 0000000000000403 R_AARCH64_RELATIVE 990 -000000000001fdd0 0000000000000403 R_AARCH64_RELATIVE 940 -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000020058 0000000000000403 R_AARCH64_RELATIVE 20058 -000000000001ffc0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000e00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 +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 -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 memcpy@GLIBC_2.17 + 0 -0000000000020008 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000000000 strlen@GLIBC_2.17 + 0 -0000000000020010 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000020028 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 memset@GLIBC_2.17 + 0 -0000000000020030 0000000a00000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020038 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000020040 0000000c00000402 R_AARCH64_JUMP_SLOT 0000000000000000 puts@GLIBC_2.17 + 0 -0000000000020048 0000000d00000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 +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: 0000000000020050 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) + 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__ @@ -41,7 +41,7 @@ Symbol table '.dynsym' contains 15 entries: 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 98 entries: +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 @@ -50,7 +50,7 @@ Symbol table '.symtab' contains 98 entries: 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 + 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 @@ -61,83 +61,82 @@ Symbol table '.symtab' contains 98 entries: 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: 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: 0000000000020050 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000020070 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: 0000000000000880 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000009fc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000009a8 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000008b4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000008b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000006d8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000994 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000006e8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000009a0 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_memcpy_strlen_memset_free.c - 41: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000020060 0 NOTYPE LOCAL DEFAULT 23 $d - 43: 0000000000020078 0 NOTYPE LOCAL DEFAULT 24 $d - 44: 0000000000000a70 0 NOTYPE LOCAL DEFAULT 17 $d - 45: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 46: 00000000000008d0 0 NOTYPE LOCAL DEFAULT 13 $x - 47: 00000000000008d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 48: 0000000000000900 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 49: 0000000000020058 0 NOTYPE LOCAL DEFAULT 23 $d - 50: 0000000000000940 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 51: 0000000000020070 1 OBJECT LOCAL DEFAULT 24 completed.0 - 52: 000000000001fdd0 0 NOTYPE LOCAL DEFAULT 19 $d - 53: 000000000001fdd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 54: 0000000000000990 0 FUNC LOCAL DEFAULT 13 frame_dummy - 55: 000000000001fdc8 0 NOTYPE LOCAL DEFAULT 18 $d - 56: 000000000001fdc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 57: 0000000000000a10 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000020070 0 NOTYPE LOCAL DEFAULT 24 $d - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000a98 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000a98 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 000000000001fdd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000009ac 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000006f0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.17 - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.17 - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 70: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 71: 0000000000020050 0 NOTYPE WEAK DEFAULT 23 data_start - 72: 000000000002006c 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 73: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 74: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 75: 000000000002006c 0 NOTYPE GLOBAL DEFAULT 23 _edata - 76: 0000000000000994 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.17 - 80: 000000000002006b 1 OBJECT GLOBAL DEFAULT 23 password - 81: 0000000000020050 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 82: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 83: 0000000000020058 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 84: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 85: 00000000000009a8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 86: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 - 87: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 24 _end - 88: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 89: 0000000000000880 52 FUNC GLOBAL DEFAULT 13 _start - 90: 0000000000020078 8 OBJECT GLOBAL DEFAULT 24 buf - 91: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 92: 0000000000020060 11 OBJECT GLOBAL DEFAULT 23 stext - 93: 000000000002006c 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 94: 00000000000007c0 132 FUNC GLOBAL DEFAULT 13 main - 95: 0000000000020070 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 96: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 97: 00000000000006d8 0 FUNC GLOBAL HIDDEN 11 _init + 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/correct/malloc_with_local/clang/malloc_with_local.gts b/src/test/correct/malloc_with_local/clang/malloc_with_local.gts new file mode 100644 index 000000000..614ce6ab0 Binary files /dev/null and b/src/test/correct/malloc_with_local/clang/malloc_with_local.gts differ 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 new file mode 100644 index 000000000..78a06684a Binary files /dev/null and b/src/test/correct/malloc_with_local/clang_O2/malloc_with_local.gts differ diff --git a/src/test/correct/malloc_with_local/clang_no_plt_no_pic/malloc_with_local.gts b/src/test/correct/malloc_with_local/clang_no_plt_no_pic/malloc_with_local.gts new file mode 100644 index 000000000..b1383068a Binary files /dev/null and b/src/test/correct/malloc_with_local/clang_no_plt_no_pic/malloc_with_local.gts differ diff --git a/src/test/correct/malloc_with_local/clang_pic/malloc_with_local.gts b/src/test/correct/malloc_with_local/clang_pic/malloc_with_local.gts new file mode 100644 index 000000000..5b33c1f88 Binary files /dev/null and b/src/test/correct/malloc_with_local/clang_pic/malloc_with_local.gts differ 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 new file mode 100644 index 000000000..6049b175c Binary files /dev/null and b/src/test/correct/malloc_with_local/gcc/malloc_with_local.gts differ 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 new file mode 100644 index 000000000..e9143afb2 Binary files /dev/null and b/src/test/correct/malloc_with_local/gcc_O2/malloc_with_local.gts differ diff --git a/src/test/correct/malloc_with_local/gcc_no_plt_no_pic/malloc_with_local.gts b/src/test/correct/malloc_with_local/gcc_no_plt_no_pic/malloc_with_local.gts new file mode 100644 index 000000000..934baf338 Binary files /dev/null and b/src/test/correct/malloc_with_local/gcc_no_plt_no_pic/malloc_with_local.gts differ diff --git a/src/test/correct/malloc_with_local/gcc_pic/malloc_with_local.gts b/src/test/correct/malloc_with_local/gcc_pic/malloc_with_local.gts new file mode 100644 index 000000000..74fd8465a Binary files /dev/null and b/src/test/correct/malloc_with_local/gcc_pic/malloc_with_local.gts differ 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 new file mode 100644 index 000000000..4bc39df0d Binary files /dev/null and b/src/test/correct/malloc_with_local2/clang/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/clang_O2/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/clang_O2/malloc_with_local2.gts new file mode 100644 index 000000000..3506196c9 Binary files /dev/null and b/src/test/correct/malloc_with_local2/clang_O2/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/clang_no_plt_no_pic/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/clang_no_plt_no_pic/malloc_with_local2.gts new file mode 100644 index 000000000..50959f064 Binary files /dev/null and b/src/test/correct/malloc_with_local2/clang_no_plt_no_pic/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/clang_pic/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/clang_pic/malloc_with_local2.gts new file mode 100644 index 000000000..5e3e06a66 Binary files /dev/null and b/src/test/correct/malloc_with_local2/clang_pic/malloc_with_local2.gts differ 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 new file mode 100644 index 000000000..66d882e2c Binary files /dev/null and b/src/test/correct/malloc_with_local2/gcc/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/gcc_O2/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/gcc_O2/malloc_with_local2.gts new file mode 100644 index 000000000..cbbec40fe Binary files /dev/null and b/src/test/correct/malloc_with_local2/gcc_O2/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/gcc_no_plt_no_pic/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/gcc_no_plt_no_pic/malloc_with_local2.gts new file mode 100644 index 000000000..34c328830 Binary files /dev/null and b/src/test/correct/malloc_with_local2/gcc_no_plt_no_pic/malloc_with_local2.gts differ diff --git a/src/test/correct/malloc_with_local2/gcc_pic/malloc_with_local2.gts b/src/test/correct/malloc_with_local2/gcc_pic/malloc_with_local2.gts new file mode 100644 index 000000000..26400e98f Binary files /dev/null and b/src/test/correct/malloc_with_local2/gcc_pic/malloc_with_local2.gts differ 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 new file mode 100644 index 000000000..712237698 Binary files /dev/null and b/src/test/correct/malloc_with_local3/clang/malloc_with_local3.gts differ diff --git a/src/test/correct/malloc_with_local3/clang_O2/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/clang_O2/malloc_with_local3.gts new file mode 100644 index 000000000..5be73fe8d Binary files /dev/null and b/src/test/correct/malloc_with_local3/clang_O2/malloc_with_local3.gts differ diff --git a/src/test/correct/malloc_with_local3/clang_no_plt_no_pic/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/clang_no_plt_no_pic/malloc_with_local3.gts new file mode 100644 index 000000000..f23f3d694 Binary files /dev/null and b/src/test/correct/malloc_with_local3/clang_no_plt_no_pic/malloc_with_local3.gts differ diff --git a/src/test/correct/malloc_with_local3/clang_pic/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/clang_pic/malloc_with_local3.gts new file mode 100644 index 000000000..dd615aba0 Binary files /dev/null and b/src/test/correct/malloc_with_local3/clang_pic/malloc_with_local3.gts differ 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 new file mode 100644 index 000000000..d918876ab Binary files /dev/null and b/src/test/correct/malloc_with_local3/gcc/malloc_with_local3.gts differ 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 new file mode 100644 index 000000000..6e3b0f6ce Binary files /dev/null and b/src/test/correct/malloc_with_local3/gcc_O2/malloc_with_local3.gts differ diff --git a/src/test/correct/malloc_with_local3/gcc_no_plt_no_pic/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/gcc_no_plt_no_pic/malloc_with_local3.gts new file mode 100644 index 000000000..c1ecaa1a2 Binary files /dev/null and b/src/test/correct/malloc_with_local3/gcc_no_plt_no_pic/malloc_with_local3.gts differ diff --git a/src/test/correct/malloc_with_local3/gcc_pic/malloc_with_local3.gts b/src/test/correct/malloc_with_local3/gcc_pic/malloc_with_local3.gts new file mode 100644 index 000000000..fbb9bdf3a Binary files /dev/null and b/src/test/correct/malloc_with_local3/gcc_pic/malloc_with_local3.gts differ diff --git a/src/test/correct/multi_malloc/clang/multi_malloc.gts b/src/test/correct/multi_malloc/clang/multi_malloc.gts new file mode 100644 index 000000000..0ad105bdc Binary files /dev/null and b/src/test/correct/multi_malloc/clang/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/clang_O2/multi_malloc.gts b/src/test/correct/multi_malloc/clang_O2/multi_malloc.gts new file mode 100644 index 000000000..984ebef5c Binary files /dev/null and b/src/test/correct/multi_malloc/clang_O2/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/clang_no_plt_no_pic/multi_malloc.gts b/src/test/correct/multi_malloc/clang_no_plt_no_pic/multi_malloc.gts new file mode 100644 index 000000000..8d7e646b4 Binary files /dev/null and b/src/test/correct/multi_malloc/clang_no_plt_no_pic/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/clang_pic/multi_malloc.gts b/src/test/correct/multi_malloc/clang_pic/multi_malloc.gts new file mode 100644 index 000000000..7561343fe Binary files /dev/null and b/src/test/correct/multi_malloc/clang_pic/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/gcc/multi_malloc.gts b/src/test/correct/multi_malloc/gcc/multi_malloc.gts new file mode 100644 index 000000000..61be4e358 Binary files /dev/null and b/src/test/correct/multi_malloc/gcc/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/gcc_O2/multi_malloc.gts b/src/test/correct/multi_malloc/gcc_O2/multi_malloc.gts new file mode 100644 index 000000000..866762b48 Binary files /dev/null and b/src/test/correct/multi_malloc/gcc_O2/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/gcc_no_plt_no_pic/multi_malloc.gts b/src/test/correct/multi_malloc/gcc_no_plt_no_pic/multi_malloc.gts new file mode 100644 index 000000000..31eac52f4 Binary files /dev/null and b/src/test/correct/multi_malloc/gcc_no_plt_no_pic/multi_malloc.gts differ diff --git a/src/test/correct/multi_malloc/gcc_pic/multi_malloc.gts b/src/test/correct/multi_malloc/gcc_pic/multi_malloc.gts new file mode 100644 index 000000000..5692dfd4b Binary files /dev/null and b/src/test/correct/multi_malloc/gcc_pic/multi_malloc.gts differ diff --git a/src/test/correct/nestedif/clang/nestedif.gts b/src/test/correct/nestedif/clang/nestedif.gts new file mode 100644 index 000000000..9f164c061 Binary files /dev/null and b/src/test/correct/nestedif/clang/nestedif.gts differ diff --git a/src/test/correct/nestedif/clang_O2/nestedif.gts b/src/test/correct/nestedif/clang_O2/nestedif.gts new file mode 100644 index 000000000..bed02d8d9 Binary files /dev/null and b/src/test/correct/nestedif/clang_O2/nestedif.gts differ diff --git a/src/test/correct/nestedif/clang_no_plt_no_pic/nestedif.gts b/src/test/correct/nestedif/clang_no_plt_no_pic/nestedif.gts new file mode 100644 index 000000000..3f5f98d6d Binary files /dev/null and b/src/test/correct/nestedif/clang_no_plt_no_pic/nestedif.gts differ diff --git a/src/test/correct/nestedif/clang_pic/nestedif.gts b/src/test/correct/nestedif/clang_pic/nestedif.gts new file mode 100644 index 000000000..22c909bbe Binary files /dev/null and b/src/test/correct/nestedif/clang_pic/nestedif.gts differ diff --git a/src/test/correct/nestedif/gcc/nestedif.gts b/src/test/correct/nestedif/gcc/nestedif.gts new file mode 100644 index 000000000..e71f35460 Binary files /dev/null and b/src/test/correct/nestedif/gcc/nestedif.gts differ diff --git a/src/test/correct/nestedif/gcc_O2/nestedif.gts b/src/test/correct/nestedif/gcc_O2/nestedif.gts new file mode 100644 index 000000000..8562e2c46 Binary files /dev/null and b/src/test/correct/nestedif/gcc_O2/nestedif.gts differ diff --git a/src/test/correct/nestedif/gcc_no_plt_no_pic/nestedif.gts b/src/test/correct/nestedif/gcc_no_plt_no_pic/nestedif.gts new file mode 100644 index 000000000..bcbd5b182 Binary files /dev/null and b/src/test/correct/nestedif/gcc_no_plt_no_pic/nestedif.gts differ diff --git a/src/test/correct/nestedif/gcc_pic/nestedif.gts b/src/test/correct/nestedif/gcc_pic/nestedif.gts new file mode 100644 index 000000000..40b75414d Binary files /dev/null and b/src/test/correct/nestedif/gcc_pic/nestedif.gts differ 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 new file mode 100644 index 000000000..8dd798c5a Binary files /dev/null and b/src/test/correct/no_interference_update_x/clang/no_interference_update_x.gts differ diff --git a/src/test/correct/no_interference_update_x/clang_O2/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/clang_O2/no_interference_update_x.gts new file mode 100644 index 000000000..1aa221795 Binary files /dev/null and b/src/test/correct/no_interference_update_x/clang_O2/no_interference_update_x.gts differ diff --git a/src/test/correct/no_interference_update_x/clang_no_plt_no_pic/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/clang_no_plt_no_pic/no_interference_update_x.gts new file mode 100644 index 000000000..13f17189d Binary files /dev/null and b/src/test/correct/no_interference_update_x/clang_no_plt_no_pic/no_interference_update_x.gts differ 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 new file mode 100644 index 000000000..70caf1d39 Binary files /dev/null and b/src/test/correct/no_interference_update_x/clang_pic/no_interference_update_x.gts differ 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 new file mode 100644 index 000000000..34ef31587 Binary files /dev/null and b/src/test/correct/no_interference_update_x/gcc/no_interference_update_x.gts differ 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 new file mode 100644 index 000000000..afdb66ad2 Binary files /dev/null and b/src/test/correct/no_interference_update_x/gcc_O2/no_interference_update_x.gts differ diff --git a/src/test/correct/no_interference_update_x/gcc_no_plt_no_pic/no_interference_update_x.gts b/src/test/correct/no_interference_update_x/gcc_no_plt_no_pic/no_interference_update_x.gts new file mode 100644 index 000000000..901c674de Binary files /dev/null and b/src/test/correct/no_interference_update_x/gcc_no_plt_no_pic/no_interference_update_x.gts differ 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 new file mode 100644 index 000000000..55b8e8821 Binary files /dev/null and b/src/test/correct/no_interference_update_x/gcc_pic/no_interference_update_x.gts differ 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 new file mode 100644 index 000000000..08913d6f3 Binary files /dev/null and b/src/test/correct/no_interference_update_y/clang/no_interference_update_y.gts differ diff --git a/src/test/correct/no_interference_update_y/clang_O2/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/clang_O2/no_interference_update_y.gts new file mode 100644 index 000000000..87b6cb525 Binary files /dev/null and b/src/test/correct/no_interference_update_y/clang_O2/no_interference_update_y.gts differ diff --git a/src/test/correct/no_interference_update_y/clang_no_plt_no_pic/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/clang_no_plt_no_pic/no_interference_update_y.gts new file mode 100644 index 000000000..024a55cae Binary files /dev/null and b/src/test/correct/no_interference_update_y/clang_no_plt_no_pic/no_interference_update_y.gts differ 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 new file mode 100644 index 000000000..0c3101e0f Binary files /dev/null and b/src/test/correct/no_interference_update_y/clang_pic/no_interference_update_y.gts differ 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 new file mode 100644 index 000000000..4cca10295 Binary files /dev/null and b/src/test/correct/no_interference_update_y/gcc/no_interference_update_y.gts differ 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 new file mode 100644 index 000000000..1b7f9fcda Binary files /dev/null and b/src/test/correct/no_interference_update_y/gcc_O2/no_interference_update_y.gts differ diff --git a/src/test/correct/no_interference_update_y/gcc_no_plt_no_pic/no_interference_update_y.gts b/src/test/correct/no_interference_update_y/gcc_no_plt_no_pic/no_interference_update_y.gts new file mode 100644 index 000000000..ae28ad443 Binary files /dev/null and b/src/test/correct/no_interference_update_y/gcc_no_plt_no_pic/no_interference_update_y.gts differ 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 new file mode 100644 index 000000000..f845377e4 Binary files /dev/null and b/src/test/correct/no_interference_update_y/gcc_pic/no_interference_update_y.gts differ diff --git a/src/test/correct/secret_write/clang/secret_write.gts b/src/test/correct/secret_write/clang/secret_write.gts new file mode 100644 index 000000000..f77423698 Binary files /dev/null and b/src/test/correct/secret_write/clang/secret_write.gts differ diff --git a/src/test/correct/secret_write/clang_O2/secret_write.gts b/src/test/correct/secret_write/clang_O2/secret_write.gts new file mode 100644 index 000000000..b4b0fd2c1 Binary files /dev/null and b/src/test/correct/secret_write/clang_O2/secret_write.gts differ diff --git a/src/test/correct/secret_write/clang_no_plt_no_pic/secret_write.gts b/src/test/correct/secret_write/clang_no_plt_no_pic/secret_write.gts new file mode 100644 index 000000000..373423bfc Binary files /dev/null and b/src/test/correct/secret_write/clang_no_plt_no_pic/secret_write.gts differ diff --git a/src/test/correct/secret_write/clang_pic/secret_write.gts b/src/test/correct/secret_write/clang_pic/secret_write.gts new file mode 100644 index 000000000..185237430 Binary files /dev/null and b/src/test/correct/secret_write/clang_pic/secret_write.gts differ diff --git a/src/test/correct/secret_write/gcc/secret_write.gts b/src/test/correct/secret_write/gcc/secret_write.gts new file mode 100644 index 000000000..07dd45172 Binary files /dev/null and b/src/test/correct/secret_write/gcc/secret_write.gts differ diff --git a/src/test/correct/secret_write/gcc_O2/secret_write.gts b/src/test/correct/secret_write/gcc_O2/secret_write.gts new file mode 100644 index 000000000..2f8b04926 Binary files /dev/null and b/src/test/correct/secret_write/gcc_O2/secret_write.gts differ diff --git a/src/test/correct/secret_write/gcc_no_plt_no_pic/secret_write.gts b/src/test/correct/secret_write/gcc_no_plt_no_pic/secret_write.gts new file mode 100644 index 000000000..24fd046a8 Binary files /dev/null and b/src/test/correct/secret_write/gcc_no_plt_no_pic/secret_write.gts differ diff --git a/src/test/correct/secret_write/gcc_pic/secret_write.gts b/src/test/correct/secret_write/gcc_pic/secret_write.gts new file mode 100644 index 000000000..f33f81211 Binary files /dev/null and b/src/test/correct/secret_write/gcc_pic/secret_write.gts differ diff --git a/src/test/correct/simple_jump/clang/simple_jump.gts b/src/test/correct/simple_jump/clang/simple_jump.gts new file mode 100644 index 000000000..785535933 Binary files /dev/null and b/src/test/correct/simple_jump/clang/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/clang_O2/simple_jump.gts b/src/test/correct/simple_jump/clang_O2/simple_jump.gts new file mode 100644 index 000000000..e9b4db882 Binary files /dev/null and b/src/test/correct/simple_jump/clang_O2/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/clang_no_plt_no_pic/simple_jump.gts b/src/test/correct/simple_jump/clang_no_plt_no_pic/simple_jump.gts new file mode 100644 index 000000000..0640ad592 Binary files /dev/null and b/src/test/correct/simple_jump/clang_no_plt_no_pic/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/clang_pic/simple_jump.gts b/src/test/correct/simple_jump/clang_pic/simple_jump.gts new file mode 100644 index 000000000..6cfa50375 Binary files /dev/null and b/src/test/correct/simple_jump/clang_pic/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/gcc/simple_jump.gts b/src/test/correct/simple_jump/gcc/simple_jump.gts new file mode 100644 index 000000000..af699b97a Binary files /dev/null and b/src/test/correct/simple_jump/gcc/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/gcc_O2/simple_jump.gts b/src/test/correct/simple_jump/gcc_O2/simple_jump.gts new file mode 100644 index 000000000..78e902787 Binary files /dev/null and b/src/test/correct/simple_jump/gcc_O2/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/gcc_no_plt_no_pic/simple_jump.gts b/src/test/correct/simple_jump/gcc_no_plt_no_pic/simple_jump.gts new file mode 100644 index 000000000..2ab05d154 Binary files /dev/null and b/src/test/correct/simple_jump/gcc_no_plt_no_pic/simple_jump.gts differ diff --git a/src/test/correct/simple_jump/gcc_pic/simple_jump.gts b/src/test/correct/simple_jump/gcc_pic/simple_jump.gts new file mode 100644 index 000000000..63c326218 Binary files /dev/null and b/src/test/correct/simple_jump/gcc_pic/simple_jump.gts differ diff --git a/src/test/correct/switch/clang/switch.gts b/src/test/correct/switch/clang/switch.gts new file mode 100644 index 000000000..edb6c499b Binary files /dev/null and b/src/test/correct/switch/clang/switch.gts differ diff --git a/src/test/correct/switch/clang_O2/switch.gts b/src/test/correct/switch/clang_O2/switch.gts new file mode 100644 index 000000000..a0d11d90d Binary files /dev/null and b/src/test/correct/switch/clang_O2/switch.gts differ diff --git a/src/test/correct/switch/clang_no_plt_no_pic/switch.gts b/src/test/correct/switch/clang_no_plt_no_pic/switch.gts new file mode 100644 index 000000000..b4aad6a82 Binary files /dev/null and b/src/test/correct/switch/clang_no_plt_no_pic/switch.gts differ diff --git a/src/test/correct/switch/clang_pic/switch.gts b/src/test/correct/switch/clang_pic/switch.gts new file mode 100644 index 000000000..d7c75f161 Binary files /dev/null and b/src/test/correct/switch/clang_pic/switch.gts differ diff --git a/src/test/correct/switch/gcc/switch.gts b/src/test/correct/switch/gcc/switch.gts new file mode 100644 index 000000000..1fe80e9be Binary files /dev/null and b/src/test/correct/switch/gcc/switch.gts differ diff --git a/src/test/correct/switch/gcc_O2/switch.gts b/src/test/correct/switch/gcc_O2/switch.gts new file mode 100644 index 000000000..e5ff08b1e Binary files /dev/null and b/src/test/correct/switch/gcc_O2/switch.gts differ diff --git a/src/test/correct/switch/gcc_no_plt_no_pic/switch.gts b/src/test/correct/switch/gcc_no_plt_no_pic/switch.gts new file mode 100644 index 000000000..adaa5a320 Binary files /dev/null and b/src/test/correct/switch/gcc_no_plt_no_pic/switch.gts differ diff --git a/src/test/correct/switch/gcc_pic/switch.gts b/src/test/correct/switch/gcc_pic/switch.gts new file mode 100644 index 000000000..504b922cf Binary files /dev/null and b/src/test/correct/switch/gcc_pic/switch.gts differ diff --git a/src/test/correct/switch2/clang/switch2.gts b/src/test/correct/switch2/clang/switch2.gts new file mode 100644 index 000000000..60a895343 Binary files /dev/null and b/src/test/correct/switch2/clang/switch2.gts differ diff --git a/src/test/correct/switch2/clang_O2/switch2.gts b/src/test/correct/switch2/clang_O2/switch2.gts new file mode 100644 index 000000000..5bf4c8d5b Binary files /dev/null and b/src/test/correct/switch2/clang_O2/switch2.gts differ diff --git a/src/test/correct/switch2/clang_no_plt_no_pic/switch2.gts b/src/test/correct/switch2/clang_no_plt_no_pic/switch2.gts new file mode 100644 index 000000000..3a9463be9 Binary files /dev/null and b/src/test/correct/switch2/clang_no_plt_no_pic/switch2.gts differ diff --git a/src/test/correct/switch2/clang_pic/switch2.gts b/src/test/correct/switch2/clang_pic/switch2.gts new file mode 100644 index 000000000..a24a8a60c Binary files /dev/null and b/src/test/correct/switch2/clang_pic/switch2.gts differ diff --git a/src/test/correct/switch2/gcc/switch2.gts b/src/test/correct/switch2/gcc/switch2.gts new file mode 100644 index 000000000..c1745bdd7 Binary files /dev/null and b/src/test/correct/switch2/gcc/switch2.gts differ diff --git a/src/test/correct/switch2/gcc_O2/switch2.gts b/src/test/correct/switch2/gcc_O2/switch2.gts new file mode 100644 index 000000000..be983bab2 Binary files /dev/null and b/src/test/correct/switch2/gcc_O2/switch2.gts differ diff --git a/src/test/correct/switch2/gcc_no_plt_no_pic/switch2.gts b/src/test/correct/switch2/gcc_no_plt_no_pic/switch2.gts new file mode 100644 index 000000000..5aea3ceca Binary files /dev/null and b/src/test/correct/switch2/gcc_no_plt_no_pic/switch2.gts differ diff --git a/src/test/correct/switch2/gcc_pic/switch2.gts b/src/test/correct/switch2/gcc_pic/switch2.gts new file mode 100644 index 000000000..a41df71ae Binary files /dev/null and b/src/test/correct/switch2/gcc_pic/switch2.gts differ diff --git a/src/test/correct/syscall/clang/syscall.gts b/src/test/correct/syscall/clang/syscall.gts new file mode 100644 index 000000000..b138d833a Binary files /dev/null and b/src/test/correct/syscall/clang/syscall.gts differ diff --git a/src/test/correct/syscall/clang_O2/syscall.gts b/src/test/correct/syscall/clang_O2/syscall.gts new file mode 100644 index 000000000..c83b55df3 Binary files /dev/null and b/src/test/correct/syscall/clang_O2/syscall.gts differ diff --git a/src/test/correct/syscall/clang_no_plt_no_pic/syscall.gts b/src/test/correct/syscall/clang_no_plt_no_pic/syscall.gts new file mode 100644 index 000000000..4ee3751b9 Binary files /dev/null and b/src/test/correct/syscall/clang_no_plt_no_pic/syscall.gts differ diff --git a/src/test/correct/syscall/clang_pic/syscall.gts b/src/test/correct/syscall/clang_pic/syscall.gts new file mode 100644 index 000000000..f9c2493c7 Binary files /dev/null and b/src/test/correct/syscall/clang_pic/syscall.gts differ diff --git a/src/test/correct/syscall/gcc/syscall.gts b/src/test/correct/syscall/gcc/syscall.gts new file mode 100644 index 000000000..41ffe34b9 Binary files /dev/null and b/src/test/correct/syscall/gcc/syscall.gts differ diff --git a/src/test/correct/syscall/gcc_O2/syscall.gts b/src/test/correct/syscall/gcc_O2/syscall.gts new file mode 100644 index 000000000..55f8abf3f Binary files /dev/null and b/src/test/correct/syscall/gcc_O2/syscall.gts differ diff --git a/src/test/correct/syscall/gcc_no_plt_no_pic/syscall.gts b/src/test/correct/syscall/gcc_no_plt_no_pic/syscall.gts new file mode 100644 index 000000000..5e4383db7 Binary files /dev/null and b/src/test/correct/syscall/gcc_no_plt_no_pic/syscall.gts differ diff --git a/src/test/correct/syscall/gcc_pic/syscall.gts b/src/test/correct/syscall/gcc_pic/syscall.gts new file mode 100644 index 000000000..79780afe7 Binary files /dev/null and b/src/test/correct/syscall/gcc_pic/syscall.gts differ 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 new file mode 100644 index 000000000..dd0b9abe0 Binary files /dev/null and b/src/test/correct/using_gamma_conditional/clang/using_gamma_conditional.gts differ 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 new file mode 100644 index 000000000..706aa2ab5 Binary files /dev/null and b/src/test/correct/using_gamma_conditional/clang_O2/using_gamma_conditional.gts differ diff --git a/src/test/correct/using_gamma_conditional/clang_no_plt_no_pic/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/clang_no_plt_no_pic/using_gamma_conditional.gts new file mode 100644 index 000000000..e4e3a584b Binary files /dev/null and b/src/test/correct/using_gamma_conditional/clang_no_plt_no_pic/using_gamma_conditional.gts differ 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 new file mode 100644 index 000000000..298ee9363 Binary files /dev/null and b/src/test/correct/using_gamma_conditional/clang_pic/using_gamma_conditional.gts differ 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 new file mode 100644 index 000000000..946348585 Binary files /dev/null and b/src/test/correct/using_gamma_conditional/gcc/using_gamma_conditional.gts differ diff --git a/src/test/correct/using_gamma_conditional/gcc_O2/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/gcc_O2/using_gamma_conditional.gts new file mode 100644 index 000000000..167119954 Binary files /dev/null and b/src/test/correct/using_gamma_conditional/gcc_O2/using_gamma_conditional.gts differ diff --git a/src/test/correct/using_gamma_conditional/gcc_no_plt_no_pic/using_gamma_conditional.gts b/src/test/correct/using_gamma_conditional/gcc_no_plt_no_pic/using_gamma_conditional.gts new file mode 100644 index 000000000..13d925408 Binary files /dev/null and b/src/test/correct/using_gamma_conditional/gcc_no_plt_no_pic/using_gamma_conditional.gts differ 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 new file mode 100644 index 000000000..878241b9c Binary files /dev/null and b/src/test/correct/using_gamma_conditional/gcc_pic/using_gamma_conditional.gts differ 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 new file mode 100644 index 000000000..64228f188 Binary files /dev/null and b/src/test/correct/using_gamma_write_z/clang/using_gamma_write_z.gts differ diff --git a/src/test/correct/using_gamma_write_z/clang_O2/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/clang_O2/using_gamma_write_z.gts new file mode 100644 index 000000000..5b9c1f99b Binary files /dev/null and b/src/test/correct/using_gamma_write_z/clang_O2/using_gamma_write_z.gts differ diff --git a/src/test/correct/using_gamma_write_z/clang_no_plt_no_pic/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/clang_no_plt_no_pic/using_gamma_write_z.gts new file mode 100644 index 000000000..9f330702b Binary files /dev/null and b/src/test/correct/using_gamma_write_z/clang_no_plt_no_pic/using_gamma_write_z.gts differ 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 new file mode 100644 index 000000000..a80d2f263 Binary files /dev/null and b/src/test/correct/using_gamma_write_z/clang_pic/using_gamma_write_z.gts differ 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 new file mode 100644 index 000000000..640a84fc5 Binary files /dev/null and b/src/test/correct/using_gamma_write_z/gcc/using_gamma_write_z.gts differ 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 new file mode 100644 index 000000000..19f056afa Binary files /dev/null and b/src/test/correct/using_gamma_write_z/gcc_O2/using_gamma_write_z.gts differ diff --git a/src/test/correct/using_gamma_write_z/gcc_no_plt_no_pic/using_gamma_write_z.gts b/src/test/correct/using_gamma_write_z/gcc_no_plt_no_pic/using_gamma_write_z.gts new file mode 100644 index 000000000..94cef9fd4 Binary files /dev/null and b/src/test/correct/using_gamma_write_z/gcc_no_plt_no_pic/using_gamma_write_z.gts differ 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 new file mode 100644 index 000000000..b23940dc7 Binary files /dev/null and b/src/test/correct/using_gamma_write_z/gcc_pic/using_gamma_write_z.gts differ diff --git a/src/test/incorrect/basicassign/clang/basicassign.gts b/src/test/incorrect/basicassign/clang/basicassign.gts new file mode 100644 index 000000000..26e03574d Binary files /dev/null and b/src/test/incorrect/basicassign/clang/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/clang_O2/basicassign.gts b/src/test/incorrect/basicassign/clang_O2/basicassign.gts new file mode 100644 index 000000000..50019a819 Binary files /dev/null and b/src/test/incorrect/basicassign/clang_O2/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/clang_no_plt_no_pic/basicassign.gts b/src/test/incorrect/basicassign/clang_no_plt_no_pic/basicassign.gts new file mode 100644 index 000000000..55f485638 Binary files /dev/null and b/src/test/incorrect/basicassign/clang_no_plt_no_pic/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/clang_pic/basicassign.gts b/src/test/incorrect/basicassign/clang_pic/basicassign.gts new file mode 100644 index 000000000..bda97a839 Binary files /dev/null and b/src/test/incorrect/basicassign/clang_pic/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/gcc/basicassign.gts b/src/test/incorrect/basicassign/gcc/basicassign.gts new file mode 100644 index 000000000..c8caa7392 Binary files /dev/null and b/src/test/incorrect/basicassign/gcc/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/gcc_O2/basicassign.gts b/src/test/incorrect/basicassign/gcc_O2/basicassign.gts new file mode 100644 index 000000000..8366a68ec Binary files /dev/null and b/src/test/incorrect/basicassign/gcc_O2/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/gcc_no_plt_no_pic/basicassign.gts b/src/test/incorrect/basicassign/gcc_no_plt_no_pic/basicassign.gts new file mode 100644 index 000000000..c5af40c61 Binary files /dev/null and b/src/test/incorrect/basicassign/gcc_no_plt_no_pic/basicassign.gts differ diff --git a/src/test/incorrect/basicassign/gcc_pic/basicassign.gts b/src/test/incorrect/basicassign/gcc_pic/basicassign.gts new file mode 100644 index 000000000..04ded683d Binary files /dev/null and b/src/test/incorrect/basicassign/gcc_pic/basicassign.gts differ diff --git a/src/test/incorrect/basicassign1/clang/basicassign1.gts b/src/test/incorrect/basicassign1/clang/basicassign1.gts new file mode 100644 index 000000000..084f4ac81 Binary files /dev/null and b/src/test/incorrect/basicassign1/clang/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/clang_O2/basicassign1.gts b/src/test/incorrect/basicassign1/clang_O2/basicassign1.gts new file mode 100644 index 000000000..361e2bab8 Binary files /dev/null and b/src/test/incorrect/basicassign1/clang_O2/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/clang_no_plt_no_pic/basicassign1.gts b/src/test/incorrect/basicassign1/clang_no_plt_no_pic/basicassign1.gts new file mode 100644 index 000000000..c16709254 Binary files /dev/null and b/src/test/incorrect/basicassign1/clang_no_plt_no_pic/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/clang_pic/basicassign1.gts b/src/test/incorrect/basicassign1/clang_pic/basicassign1.gts new file mode 100644 index 000000000..6804e2607 Binary files /dev/null and b/src/test/incorrect/basicassign1/clang_pic/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/gcc/basicassign1.gts b/src/test/incorrect/basicassign1/gcc/basicassign1.gts new file mode 100644 index 000000000..e8a38fe41 Binary files /dev/null and b/src/test/incorrect/basicassign1/gcc/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/gcc_O2/basicassign1.gts b/src/test/incorrect/basicassign1/gcc_O2/basicassign1.gts new file mode 100644 index 000000000..d69a17024 Binary files /dev/null and b/src/test/incorrect/basicassign1/gcc_O2/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/gcc_no_plt_no_pic/basicassign1.gts b/src/test/incorrect/basicassign1/gcc_no_plt_no_pic/basicassign1.gts new file mode 100644 index 000000000..d1f317c71 Binary files /dev/null and b/src/test/incorrect/basicassign1/gcc_no_plt_no_pic/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign1/gcc_pic/basicassign1.gts b/src/test/incorrect/basicassign1/gcc_pic/basicassign1.gts new file mode 100644 index 000000000..78a3cbc8b Binary files /dev/null and b/src/test/incorrect/basicassign1/gcc_pic/basicassign1.gts differ diff --git a/src/test/incorrect/basicassign2/clang/basicassign2.gts b/src/test/incorrect/basicassign2/clang/basicassign2.gts new file mode 100644 index 000000000..5c8880f1b Binary files /dev/null and b/src/test/incorrect/basicassign2/clang/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/clang_O2/basicassign2.gts b/src/test/incorrect/basicassign2/clang_O2/basicassign2.gts new file mode 100644 index 000000000..a1c4b4b69 Binary files /dev/null and b/src/test/incorrect/basicassign2/clang_O2/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/clang_no_plt_no_pic/basicassign2.gts b/src/test/incorrect/basicassign2/clang_no_plt_no_pic/basicassign2.gts new file mode 100644 index 000000000..803813bd9 Binary files /dev/null and b/src/test/incorrect/basicassign2/clang_no_plt_no_pic/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/clang_pic/basicassign2.gts b/src/test/incorrect/basicassign2/clang_pic/basicassign2.gts new file mode 100644 index 000000000..248f0735d Binary files /dev/null and b/src/test/incorrect/basicassign2/clang_pic/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/gcc/basicassign2.gts b/src/test/incorrect/basicassign2/gcc/basicassign2.gts new file mode 100644 index 000000000..2dca34578 Binary files /dev/null and b/src/test/incorrect/basicassign2/gcc/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/gcc_O2/basicassign2.gts b/src/test/incorrect/basicassign2/gcc_O2/basicassign2.gts new file mode 100644 index 000000000..9917c0a4f Binary files /dev/null and b/src/test/incorrect/basicassign2/gcc_O2/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/gcc_no_plt_no_pic/basicassign2.gts b/src/test/incorrect/basicassign2/gcc_no_plt_no_pic/basicassign2.gts new file mode 100644 index 000000000..35b3b2e4b Binary files /dev/null and b/src/test/incorrect/basicassign2/gcc_no_plt_no_pic/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign2/gcc_pic/basicassign2.gts b/src/test/incorrect/basicassign2/gcc_pic/basicassign2.gts new file mode 100644 index 000000000..b168f2b74 Binary files /dev/null and b/src/test/incorrect/basicassign2/gcc_pic/basicassign2.gts differ diff --git a/src/test/incorrect/basicassign3/clang/basicassign3.gts b/src/test/incorrect/basicassign3/clang/basicassign3.gts new file mode 100644 index 000000000..8f88d6724 Binary files /dev/null and b/src/test/incorrect/basicassign3/clang/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/clang_O2/basicassign3.gts b/src/test/incorrect/basicassign3/clang_O2/basicassign3.gts new file mode 100644 index 000000000..eed8fdfad Binary files /dev/null and b/src/test/incorrect/basicassign3/clang_O2/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/clang_no_plt_no_pic/basicassign3.gts b/src/test/incorrect/basicassign3/clang_no_plt_no_pic/basicassign3.gts new file mode 100644 index 000000000..f0d5d7a73 Binary files /dev/null and b/src/test/incorrect/basicassign3/clang_no_plt_no_pic/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/clang_pic/basicassign3.gts b/src/test/incorrect/basicassign3/clang_pic/basicassign3.gts new file mode 100644 index 000000000..38984e8c9 Binary files /dev/null and b/src/test/incorrect/basicassign3/clang_pic/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/gcc/basicassign3.gts b/src/test/incorrect/basicassign3/gcc/basicassign3.gts new file mode 100644 index 000000000..a11d4cd2a Binary files /dev/null and b/src/test/incorrect/basicassign3/gcc/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/gcc_O2/basicassign3.gts b/src/test/incorrect/basicassign3/gcc_O2/basicassign3.gts new file mode 100644 index 000000000..064f8c71f Binary files /dev/null and b/src/test/incorrect/basicassign3/gcc_O2/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/gcc_no_plt_no_pic/basicassign3.gts b/src/test/incorrect/basicassign3/gcc_no_plt_no_pic/basicassign3.gts new file mode 100644 index 000000000..a972ac91e Binary files /dev/null and b/src/test/incorrect/basicassign3/gcc_no_plt_no_pic/basicassign3.gts differ diff --git a/src/test/incorrect/basicassign3/gcc_pic/basicassign3.gts b/src/test/incorrect/basicassign3/gcc_pic/basicassign3.gts new file mode 100644 index 000000000..f94b151ca Binary files /dev/null and b/src/test/incorrect/basicassign3/gcc_pic/basicassign3.gts differ diff --git a/src/test/incorrect/iflocal/clang/iflocal.gts b/src/test/incorrect/iflocal/clang/iflocal.gts new file mode 100644 index 000000000..084a47a03 Binary files /dev/null and b/src/test/incorrect/iflocal/clang/iflocal.gts differ diff --git a/src/test/incorrect/iflocal/clang_no_plt_no_pic/iflocal.gts b/src/test/incorrect/iflocal/clang_no_plt_no_pic/iflocal.gts new file mode 100644 index 000000000..81bffa7ed Binary files /dev/null and b/src/test/incorrect/iflocal/clang_no_plt_no_pic/iflocal.gts differ diff --git a/src/test/incorrect/iflocal/clang_pic/iflocal.gts b/src/test/incorrect/iflocal/clang_pic/iflocal.gts new file mode 100644 index 000000000..f493447d3 Binary files /dev/null and b/src/test/incorrect/iflocal/clang_pic/iflocal.gts differ diff --git a/src/test/incorrect/iflocal/gcc/iflocal.gts b/src/test/incorrect/iflocal/gcc/iflocal.gts new file mode 100644 index 000000000..dae295bb8 Binary files /dev/null and b/src/test/incorrect/iflocal/gcc/iflocal.gts differ diff --git a/src/test/incorrect/iflocal/gcc_no_plt_no_pic/iflocal.gts b/src/test/incorrect/iflocal/gcc_no_plt_no_pic/iflocal.gts new file mode 100644 index 000000000..b02c7a8d0 Binary files /dev/null and b/src/test/incorrect/iflocal/gcc_no_plt_no_pic/iflocal.gts differ diff --git a/src/test/incorrect/iflocal/gcc_pic/iflocal.gts b/src/test/incorrect/iflocal/gcc_pic/iflocal.gts new file mode 100644 index 000000000..e461857e2 Binary files /dev/null and b/src/test/incorrect/iflocal/gcc_pic/iflocal.gts differ diff --git a/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt b/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt index 480e83629..9095c3e1f 100644 --- a/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt +++ b/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.adt @@ -1,748 +1,746 @@ 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 2464 20 2464)\n(code-region 2048 416 2048)\n(code-region 1856 192 1856)\n(code-region 1832 24 1832)\n(code-start 2100)\n(code-start 2048)\n(code-start 2324)\n(entry-point 2048)\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 memcpy)\n(external-reference 131080 strlen)\n(external-reference 131088 __libc_start_main)\n(external-reference 131096 __cxa_finalize)\n(external-reference 131104 malloc)\n(external-reference 131112 memset)\n(external-reference 131120 __gmon_start__)\n(external-reference 131128 abort)\n(external-reference 131136 puts)\n(external-reference 131144 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 1832 0)\n(llvm:code-entry main 2324 140)\n(llvm:code-entry _start 2048 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 2464 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 2320 0)\n(llvm:code-entry __do_global_dtors_aux 2240 0)\n(llvm:code-entry register_tm_clones 2176 0)\n(llvm:code-entry deregister_tm_clones 2128 0)\n(llvm:code-entry call_weak_fn 2100 20)\n(llvm:code-entry .fini 2464 20)\n(llvm:code-entry .text 2048 416)\n(llvm:code-entry .plt 1856 192)\n(llvm:code-entry .init 1832 24)\n(llvm:elf-program-header 08 64952 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 2488 60)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 64968 496)\n(llvm:elf-program-header 03 64952 692)\n(llvm:elf-program-header 02 0 2760)\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 130488 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 2488 60)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 130504 496)\n(llvm:elf-virtual-program-header 03 130488 712)\n(llvm:elf-virtual-program-header 02 0 2760)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 2048)\n(llvm:name-reference 131144 free)\n(llvm:name-reference 131136 puts)\n(llvm:name-reference 131128 abort)\n(llvm:name-reference 131120 __gmon_start__)\n(llvm:name-reference 131112 memset)\n(llvm:name-reference 131104 malloc)\n(llvm:name-reference 131096 __cxa_finalize)\n(llvm:name-reference 131088 __libc_start_main)\n(llvm:name-reference 131080 strlen)\n(llvm:name-reference 131072 memcpy)\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 68820)\n(llvm:section-entry .strtab 0 716 68104)\n(llvm:section-entry .symtab 0 2400 65704)\n(llvm:section-entry .comment 0 58 65644)\n(llvm:section-entry .bss 131184 16 65644)\n(llvm:section-entry .data 131152 28 65616)\n(llvm:section-entry .got.plt 131048 104 65512)\n(llvm:section-entry .got 131000 48 65464)\n(llvm:section-entry .dynamic 130504 496 64968)\n(llvm:section-entry .fini_array 130496 8 64960)\n(llvm:section-entry .init_array 130488 8 64952)\n(llvm:section-entry .eh_frame 2552 208 2552)\n(llvm:section-entry .eh_frame_hdr 2488 60 2488)\n(llvm:section-entry .rodata 2484 4 2484)\n(llvm:section-entry .fini 2464 20 2464)\n(llvm:section-entry .text 2048 416 2048)\n(llvm:section-entry .plt 1856 192 1856)\n(llvm:section-entry .init 1832 24 1832)\n(llvm:section-entry .rela.plt 1592 240 1592)\n(llvm:section-entry .rela.dyn 1400 192 1400)\n(llvm:section-entry .gnu.version_r 1352 48 1352)\n(llvm:section-entry .gnu.version 1316 30 1316)\n(llvm:section-entry .dynstr 1136 179 1136)\n(llvm:section-entry .dynsym 776 360 776)\n(llvm:section-entry .gnu.hash 744 28 744)\n(llvm:section-entry .hash 664 80 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 .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 1832 0 1832 1832)\n(llvm:symbol-entry main 2324 140 2324 2324)\n(llvm:symbol-entry _start 2048 52 2048 2048)\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 2464 0 2464 2464)\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 2320 0 2320 2320)\n(llvm:symbol-entry __do_global_dtors_aux 2240 0 2240 2240)\n(llvm:symbol-entry register_tm_clones 2176 0 2176 2176)\n(llvm:symbol-entry deregister_tm_clones 2128 0 2128 2128)\n(llvm:symbol-entry call_weak_fn 2100 20 2100 2100)\n(mapped 0 2760 0)\n(mapped 130488 692 64952)\n(named-region 0 2760 02)\n(named-region 130488 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 80 .hash)\n(named-region 744 28 .gnu.hash)\n(named-region 776 360 .dynsym)\n(named-region 1136 179 .dynstr)\n(named-region 1316 30 .gnu.version)\n(named-region 1352 48 .gnu.version_r)\n(named-region 1400 192 .rela.dyn)\n(named-region 1592 240 .rela.plt)\n(named-region 1832 24 .init)\n(named-region 1856 192 .plt)\n(named-region 2048 416 .text)\n(named-region 2464 20 .fini)\n(named-region 2484 4 .rodata)\n(named-region 2488 60 .eh_frame_hdr)\n(named-region 2552 208 .eh_frame)\n(named-region 130488 8 .init_array)\n(named-region 130496 8 .fini_array)\n(named-region 130504 496 .dynamic)\n(named-region 131000 48 .got)\n(named-region 131048 104 .got.plt)\n(named-region 131152 28 .data)\n(named-region 131184 16 .bss)\n(named-region 0 58 .comment)\n(named-region 0 2400 .symtab)\n(named-region 0 716 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 2100 call_weak_fn)\n(named-symbol 2128 deregister_tm_clones)\n(named-symbol 2176 register_tm_clones)\n(named-symbol 2240 __do_global_dtors_aux)\n(named-symbol 2320 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 2464 _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 2048 _start)\n(named-symbol 2324 main)\n(named-symbol 1832 _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 80)\n(section 744 28)\n(section 776 360)\n(section 1136 179)\n(section 1316 30)\n(section 1352 48)\n(section 1400 192)\n(section 1592 240)\n(section 1832 24)\n(section 1856 192)\n(section 2048 416)\n(section 2464 20)\n(section 2484 4)\n(section 2488 60)\n(section 2552 208)\n(section 130488 8)\n(section 130496 8)\n(section 130504 496)\n(section 131000 48)\n(section 131048 104)\n(section 131152 28)\n(section 131184 16)\n(section 0 58)\n(section 0 2400)\n(section 0 716)\n(section 0 259)\n(segment 0 2760 true false true)\n(segment 130488 712 true true false)\n(subarch v8)\n(symbol-chunk 2100 20 2100)\n(symbol-chunk 2048 52 2048)\n(symbol-chunk 2324 140 2324)\n(symbol-value 2100 2100)\n(symbol-value 2128 2128)\n(symbol-value 2176 2176)\n(symbol-value 2240 2240)\n(symbol-value 2320 2320)\n(symbol-value 2464 2464)\n(symbol-value 2048 2048)\n(symbol-value 2324 2324)\n(symbol-value 1832 1832)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), +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\x00\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\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\xc8\x0a\x00\x00\x00\x00\x00\x00\xc8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\xfd\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\xb8\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\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\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\xc8\x0a\x00\x00\x00\x00\x00\x00\xc8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\xfd\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\xb8\xfd\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\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\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\x09\x00\x00\x00\x00\x00\x00\xb8\x09\x00\x00\x00\x00\x00\x00\xb8\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\xb8\xfd\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\xb8\xfd\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\x15\xf3\x7a\xcd\x66\xb4\xb5\xc0\xdd\x26\xd5\x87\xd5\x89\xec\xc4\x7f\x24\x9b\xdd\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x0f\x00\x00\x00\x0a\x00\x00\x00\x0e\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\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\x00\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\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\xc8\x0a\x00\x00\x00\x00\x00\x00\xc8\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\xfd\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\xb8\xfd\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\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\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\x09\x00\x00\x00\x00\x00\x00\xb8\x09\x00\x00\x00\x00\x00\x00\xb8\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\xb8\xfd\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\xb8\xfd\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\x15\xf3\x7a\xcd\x66\xb4\xb5\xc0\xdd\x26\xd5\x87\xd5\x89\xec\xc4\x7f\x24\x9b\xdd\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x0f\x00\x00\x00\x0a\x00\x00\x00\x0e\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x06\x00\x00\x00\x0c\x00\x00\x00\x0d\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\x0c\x00\x28\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x18\x00\x50\x00\x02\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\x0b\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\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\x2b\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\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\x8a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\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\x06\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\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\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\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x65\x6d\x73\x65\x74\x00\x6d\x65\x6d\x63\x70\x79\x00\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\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\xb8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\xc0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0e\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\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\x20\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x02\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\x40\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\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\x10\x01\x00\x90\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1e\x40\xf9\x10\xe2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x22\x40\xf9\x10\x02\x01\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x26\x40\xf9\x10\x22\x01\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\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xd5\xff\xff\x97\xe8\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe0\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x41\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x2c\x40\xf9\xa9\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\x9e\xff\xff\x97\x15\x01\x00\x90\x14\x01\x00\x90\x94\x86\x01\x91\xf3\x03\x00\xaa\xa0\x3e\x00\xf9\xe0\x03\x14\xaa\x8b\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xe1\x03\x14\xaa\x83\xff\xff\x97\xe0\x03\x13\xaa\xa1\xff\xff\x97"), -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\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xd8\x0d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00"), +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\x15\xf3\x7a\xcd\x66\xb4\xb5\xc0\xdd\x26\xd5\x87\xd5\x89\xec\xc4\x7f\x24\x9b\xdd"), +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(".hash", 0x298, "\x03\x00\x00\x00\x0f\x00\x00\x00\x0a\x00\x00\x00\x0e\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x03\x00\x00\x00\x09\x00\x00\x00\x08\x00\x00\x00\x06\x00\x00\x00\x0c\x00\x00\x00\x0d\x00\x00\x00"), -Section(".gnu.hash", 0x2E8, "\x01\x00\x00\x00\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", 0x308, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0c\x00\x28\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x18\x00\x50\x00\x02\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\x0b\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\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\x2b\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\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\x8a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\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\x06\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", 0x470, "\x00\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\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\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x65\x6d\x73\x65\x74\x00\x6d\x65\x6d\x63\x70\x79\x00\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", 0x524, "\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", 0x548, "\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", 0x578, "\xb8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x10\x09\x00\x00\x00\x00\x00\x00\xc0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x14\x09\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\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", 0x638, "\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\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\x20\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x728, "\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", 0x740, "\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\x10\x01\x00\x90\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1e\x40\xf9\x10\xe2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x22\x40\xf9\x10\x02\x01\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x26\x40\xf9\x10\x22\x01\x91\x20\x02\x1f\xd6"), -Section(".fini", 0x9A0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x9B4, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x9B8, "\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", 0x9F8, "\x10\x00\x00\x00\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", 0x1FDC0, "\xc0\x08\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x4e\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x28\x07\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa0\x09\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xb8\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\xc0\xfd\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\xe8\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x70\x04\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x08\x03\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\xff\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\x38\x06\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x78\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\x48\x05\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\x24\x05\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", 0x1FDB8, "\x10\x09\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x1FFB8, "\xc8\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\x14\x09\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\x40\x07\x00\x00\x00\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\x40\x07\x00\x00\x00\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\x40\x07\x00\x00\x00\x00\x00\x00\x40\x07\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x20050, "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\x07\x75\x73\x65\x72\x3a\x70\x61\x73\x73\x00\x00"), -Section(".text", 0x800, "\x1f\x20\x03\xd5\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\xe8\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe0\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x41\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x2c\x40\xf9\xa9\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\x9e\xff\xff\x97\x15\x01\x00\x90\x14\x01\x00\x90\x94\x86\x01\x91\xf3\x03\x00\xaa\xa0\x3e\x00\xf9\xe0\x03\x14\xaa\x8b\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xe1\x03\x14\xaa\x83\xff\xff\x97\xe0\x03\x13\xaa\xa1\xff\xff\x97\xa8\x3e\x40\xf9\x1f\x11\x00\x39\xb3\x3e\x40\xf9\xe0\x03\x13\xaa\x80\xff\xff\x97\xe2\x03\x00\xaa\xe0\x03\x13\xaa\x21\x00\x80\x52\x8c\xff\xff\x97\xa0\x3e\x40\xf9\x9a\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,0xAC7), Attr("segment","02 0 2760")), -Annotation(Region(0x800,0x833), Attr("symbol","\"_start\"")), +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,0x95F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x39), Attr("section","\".comment\"")), +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,0x2E7), Attr("section","\".hash\"")), -Annotation(Region(0x2E8,0x303), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x308,0x46F), Attr("section","\".dynsym\"")), -Annotation(Region(0x470,0x522), Attr("section","\".dynstr\"")), -Annotation(Region(0x524,0x541), Attr("section","\".gnu.version\"")), -Annotation(Region(0x548,0x577), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x578,0x637), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x638,0x727), Attr("section","\".rela.plt\"")), -Annotation(Region(0x728,0x73F), Attr("section","\".init\"")), -Annotation(Region(0x740,0x7FF), Attr("section","\".plt\"")), -Annotation(Region(0x728,0x73F), Attr("code-region","()")), -Annotation(Region(0x740,0x7FF), Attr("code-region","()")), -Annotation(Region(0x800,0x833), Attr("symbol-info","_start 0x800 52")), -Annotation(Region(0x834,0x847), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x834,0x847), Attr("symbol-info","call_weak_fn 0x834 20")), -Annotation(Region(0x914,0x99F), Attr("symbol","\"main\"")), -Annotation(Region(0x914,0x99F), Attr("symbol-info","main 0x914 140")), -Annotation(Region(0x9A0,0x9B3), Attr("section","\".fini\"")), -Annotation(Region(0x9B4,0x9B7), Attr("section","\".rodata\"")), -Annotation(Region(0x9B8,0x9F3), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x9F8,0xAC7), Attr("section","\".eh_frame\"")), -Annotation(Region(0x1FDB8,0x2006B), Attr("segment","03 0x1FDB8 712")), -Annotation(Region(0x1FDC0,0x1FDC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDC8,0x1FFB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FDB8,0x1FDBF), Attr("section","\".init_array\"")), -Annotation(Region(0x1FFB8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2004F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20050,0x2006B), Attr("section","\".data\"")), -Annotation(Region(0x800,0x99F), Attr("section","\".text\"")), -Annotation(Region(0x800,0x99F), Attr("code-region","()")), -Annotation(Region(0x9A0,0x9B3), Attr("code-region","()"))]), -Program(Tid(2_116, "%00000844"), Attrs([]), - Subs([Sub(Tid(2_045, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x790"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(2_117, "%00000845"), +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","0x790")]), Phis([]), -Defs([Def(Tid(1_539, "%00000603"), Attrs([Attr("address","0x790"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_546, "%0000060a"), Attrs([Attr("address","0x794"), + 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","0x798"), +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","0x79C"), Attr("insn","br x17")]), Int(1,1), + Attrs([Attr("address","0x74C"), Attr("insn","br x17")]), Int(1,1), (Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_046, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8C0")]), - "__do_global_dtors_aux", Args([Arg(Tid(2_118, "%00000846"), +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(731, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x8C0")]), Phis([]), Defs([Def(Tid(735, "%000002df"), - Attrs([Attr("address","0x8C0"), +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(741, "%000002e5"), Attrs([Attr("address","0x8C0"), +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(747, "%000002eb"), Attrs([Attr("address","0x8C0"), +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(751, "%000002ef"), Attrs([Attr("address","0x8C0"), +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(757, "%000002f5"), - Attrs([Attr("address","0x8C4"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(765, "%000002fd"), - Attrs([Attr("address","0x8C8"), Attr("insn","str x19, [sp, #0x10]")]), +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(770, "%00000302"), Attrs([Attr("address","0x8CC"), -Attr("insn","adrp x19, #0x20000")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(777, "%00000309"), Attrs([Attr("address","0x8D0"), +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","0x8D4"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(781, "%0000030d"))), -Goto(Tid(2_106, "%0000083a"), Attrs([]), Int(1,1), -Direct(Tid(1_096, "%00000448")))])), Blk(Tid(1_096, "%00000448"), - Attrs([Attr("address","0x8D8")]), Phis([]), -Defs([Def(Tid(1_099, "%0000044b"), Attrs([Attr("address","0x8D8"), -Attr("insn","adrp x0, #0x1f000")]), Var("R0",Imm(64)), Int(126976,64)), -Def(Tid(1_106, "%00000452"), Attrs([Attr("address","0x8DC"), +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","0x8E0"), +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(2_107, "%0000083b"), Attrs([]), +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","0x8E4")]), Phis([]), -Defs([Def(Tid(1_138, "%00000472"), Attrs([Attr("address","0x8E4"), -Attr("insn","adrp x0, #0x20000")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(1_145, "%00000479"), Attrs([Attr("address","0x8E8"), + 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","0x8EC"), -Attr("insn","bl #-0x15c")]), Var("R30",Imm(64)), Int(2288,64))]), -Jmps([Call(Tid(1_153, "%00000481"), Attrs([Attr("address","0x8EC"), -Attr("insn","bl #-0x15c")]), Int(1,1), -(Direct(Tid(2_045, "@__cxa_finalize")),Direct(Tid(1_110, "%00000456"))))])), -Blk(Tid(1_110, "%00000456"), Attrs([Attr("address","0x8F0")]), Phis([]), -Defs([Def(Tid(1_118, "%0000045e"), Attrs([Attr("address","0x8F0"), -Attr("insn","bl #-0xa0")]), Var("R30",Imm(64)), Int(2292,64))]), -Jmps([Call(Tid(1_120, "%00000460"), Attrs([Attr("address","0x8F0"), +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(2_059, "@deregister_tm_clones")),Direct(Tid(1_122, "%00000462"))))])), -Blk(Tid(1_122, "%00000462"), Attrs([Attr("address","0x8F4")]), Phis([]), -Defs([Def(Tid(1_125, "%00000465"), Attrs([Attr("address","0x8F4"), +(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","0x8F8"), +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(2_108, "%0000083c"), Attrs([]), Int(1,1), +Jmps([Goto(Tid(1_997, "%000007cd"), Attrs([]), Int(1,1), Direct(Tid(781, "%0000030d")))])), Blk(Tid(781, "%0000030d"), - Attrs([Attr("address","0x8FC")]), Phis([]), Defs([Def(Tid(791, "%00000317"), - Attrs([Attr("address","0x8FC"), Attr("insn","ldr x19, [sp, #0x10]")]), + 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","0x900"), +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","0x900"), +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","0x900"), +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","0x904"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_050, "@__libc_start_main"), + 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","0x780"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(2_119, "%00000847"), +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_120, "%00000848"), Attrs([Attr("c.layout","[signed : 32]"), +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_121, "%00000849"), Attrs([Attr("c.layout","**[char : 8]"), +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_122, "%0000084a"), Attrs([Attr("c.layout","*[ : 8]"), +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_123, "%0000084b"), Attrs([Attr("c.layout","[signed : 32]"), +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(564, "@__libc_start_main"), - Attrs([Attr("address","0x780")]), Phis([]), -Defs([Def(Tid(1_517, "%000005ed"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_524, "%000005f4"), Attrs([Attr("address","0x784"), +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","0x788"), +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","0x78C"), 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","0x9A0")]), - "_fini", Args([Arg(Tid(2_124, "%0000084c"), + 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(32, "@_fini"), - Attrs([Attr("address","0x9A0")]), Phis([]), Defs([Def(Tid(38, "%00000026"), - Attrs([Attr("address","0x9A4"), +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(44, "%0000002c"), Attrs([Attr("address","0x9A4"), +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(50, "%00000032"), Attrs([Attr("address","0x9A4"), +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(54, "%00000036"), Attrs([Attr("address","0x9A4"), +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(60, "%0000003c"), Attrs([Attr("address","0x9A8"), +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(67, "%00000043"), Attrs([Attr("address","0x9AC"), +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(72, "%00000048"), Attrs([Attr("address","0x9AC"), +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(76, "%0000004c"), Attrs([Attr("address","0x9AC"), +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(81, "%00000051"), - Attrs([Attr("address","0x9B0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_052, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x728")]), - "_init", Args([Arg(Tid(2_125, "%0000084d"), +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_828, "@_init"), - Attrs([Attr("address","0x728")]), Phis([]), -Defs([Def(Tid(1_834, "%0000072a"), Attrs([Attr("address","0x72C"), +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_840, "%00000730"), Attrs([Attr("address","0x72C"), +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_846, "%00000736"), Attrs([Attr("address","0x72C"), +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_850, "%0000073a"), Attrs([Attr("address","0x72C"), +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_856, "%00000740"), - Attrs([Attr("address","0x730"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_861, "%00000745"), - Attrs([Attr("address","0x734"), Attr("insn","bl #0x100")]), - Var("R30",Imm(64)), Int(1848,64))]), Jmps([Call(Tid(1_863, "%00000747"), - Attrs([Attr("address","0x734"), Attr("insn","bl #0x100")]), Int(1,1), -(Direct(Tid(2_057, "@call_weak_fn")),Direct(Tid(1_865, "%00000749"))))])), -Blk(Tid(1_865, "%00000749"), Attrs([Attr("address","0x738")]), Phis([]), -Defs([Def(Tid(1_870, "%0000074e"), Attrs([Attr("address","0x738"), +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_875, "%00000753"), Attrs([Attr("address","0x738"), +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_879, "%00000757"), Attrs([Attr("address","0x738"), +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_884, "%0000075c"), - Attrs([Attr("address","0x73C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_053, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x800"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(2_126, "%0000084e"), 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(501, "@_start"), Attrs([Attr("address","0x800")]), Phis([]), -Defs([Def(Tid(506, "%000001fa"), Attrs([Attr("address","0x804"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x808"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(517, "%00000205"), Attrs([Attr("address","0x80C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(524, "%0000020c"), Attrs([Attr("address","0x810"), -Attr("insn","ldr x1, [sp]")]), Var("R1",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(530, "%00000212"), Attrs([Attr("address","0x814"), +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(536, "%00000218"), - Attrs([Attr("address","0x818"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(541, "%0000021d"), - Attrs([Attr("address","0x81C"), Attr("insn","adrp x0, #0x1f000")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(548, "%00000224"), - Attrs([Attr("address","0x820"), Attr("insn","ldr x0, [x0, #0xfd8]")]), +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(553, "%00000229"), Attrs([Attr("address","0x824"), +Def(Tid(552, "%00000228"), Attrs([Attr("address","0x7E4"), Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(558, "%0000022e"), Attrs([Attr("address","0x828"), +Def(Tid(557, "%0000022d"), Attrs([Attr("address","0x7E8"), Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(563, "%00000233"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0xac")]), Var("R30",Imm(64)), Int(2096,64))]), -Jmps([Call(Tid(566, "%00000236"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0xac")]), Int(1,1), -(Direct(Tid(2_050, "@__libc_start_main")),Direct(Tid(568, "%00000238"))))])), -Blk(Tid(568, "%00000238"), Attrs([Attr("address","0x830")]), Phis([]), -Defs([Def(Tid(571, "%0000023b"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x60")]), Var("R30",Imm(64)), Int(2100,64))]), -Jmps([Call(Tid(574, "%0000023e"), Attrs([Attr("address","0x830"), -Attr("insn","bl #-0x60")]), Int(1,1), -(Direct(Tid(2_056, "@abort")),Direct(Tid(2_109, "%0000083d"))))])), -Blk(Tid(2_109, "%0000083d"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(2_110, "%0000083e"), Attrs([]), Int(1,1), -(Direct(Tid(2_057, "@call_weak_fn")),))]))])), Sub(Tid(2_056, "@abort"), +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","0x7D0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(572, "@abort"), Attrs([Attr("address","0x7D0")]), Phis([]), -Defs([Def(Tid(1_627, "%0000065b"), Attrs([Attr("address","0x7D0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_634, "%00000662"), Attrs([Attr("address","0x7D4"), +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","0x7D8"), +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","0x7DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_057, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x834")]), - "call_weak_fn", Args([Arg(Tid(2_127, "%0000084f"), + 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(576, "@call_weak_fn"), - Attrs([Attr("address","0x834")]), Phis([]), Defs([Def(Tid(579, "%00000243"), - Attrs([Attr("address","0x834"), Attr("insn","adrp x0, #0x1f000")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(586, "%0000024a"), - Attrs([Attr("address","0x838"), Attr("insn","ldr x0, [x0, #0xfd0]")]), +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(592, "%00000250"), Attrs([Attr("address","0x83C"), +Jmps([Goto(Tid(591, "%0000024f"), Attrs([Attr("address","0x7FC"), Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(590, "%0000024e"))), Goto(Tid(2_111, "%0000083f"), Attrs([]), - Int(1,1), Direct(Tid(1_215, "%000004bf")))])), Blk(Tid(590, "%0000024e"), - Attrs([Attr("address","0x844")]), Phis([]), Defs([]), -Jmps([Call(Tid(598, "%00000256"), Attrs([Attr("address","0x844"), +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","0x840")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_218, "%000004c2"), Attrs([Attr("address","0x840"), -Attr("insn","b #-0x80")]), Int(1,1), +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","0x7C0")]), Phis([]), -Defs([Def(Tid(1_605, "%00000645"), Attrs([Attr("address","0x7C0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_612, "%0000064c"), Attrs([Attr("address","0x7C4"), + 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","0x7C8"), +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","0x7CC"), Attr("insn","br x17")]), Int(1,1), + Attrs([Attr("address","0x77C"), Attr("insn","br x17")]), Int(1,1), (Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_059, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x850")]), - "deregister_tm_clones", Args([Arg(Tid(2_128, "%00000850"), +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(604, "@deregister_tm_clones"), - Attrs([Attr("address","0x850")]), Phis([]), Defs([Def(Tid(607, "%0000025f"), - Attrs([Attr("address","0x850"), Attr("insn","adrp x0, #0x20000")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(613, "%00000265"), - Attrs([Attr("address","0x854"), Attr("insn","add x0, x0, #0x70")]), +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(618, "%0000026a"), Attrs([Attr("address","0x858"), -Attr("insn","adrp x1, #0x20000")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(624, "%00000270"), Attrs([Attr("address","0x85C"), +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(630, "%00000276"), - Attrs([Attr("address","0x860"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(635, "%0000027b"), - Attrs([Attr("address","0x860"), Attr("insn","cmp x1, x0")]), +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(641, "%00000281"), Attrs([Attr("address","0x860"), +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(647, "%00000287"), Attrs([Attr("address","0x860"), +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(651, "%0000028b"), Attrs([Attr("address","0x860"), +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(655, "%0000028f"), - Attrs([Attr("address","0x860"), Attr("insn","cmp x1, x0")]), +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(661, "%00000295"), Attrs([Attr("address","0x864"), +Jmps([Goto(Tid(660, "%00000294"), Attrs([Attr("address","0x824"), Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(659, "%00000293"))), Goto(Tid(2_112, "%00000840"), Attrs([]), +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","0x868")]), Phis([]), -Defs([Def(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x868"), -Attr("insn","adrp x1, #0x1f000")]), Var("R1",Imm(64)), Int(126976,64)), -Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x86C"), + 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","0x870"), +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(659, "%00000293"))), Goto(Tid(2_113, "%00000841"), Attrs([]), - Int(1,1), Direct(Tid(1_204, "%000004b4")))])), Blk(Tid(659, "%00000293"), - Attrs([Attr("address","0x87C")]), Phis([]), Defs([]), -Jmps([Call(Tid(667, "%0000029b"), Attrs([Attr("address","0x87C"), +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","0x874")]), Phis([]), -Defs([Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x874"), +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","0x878"), +Jmps([Call(Tid(1_213, "%000004bd"), Attrs([Attr("address","0x838"), Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_062, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x910")]), "frame_dummy", Args([Arg(Tid(2_129, "%00000851"), +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","0x910")]), Phis([]), Defs([]), -Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x910"), + Attrs([Attr("address","0x8D0")]), Phis([]), Defs([]), +Jmps([Call(Tid(820, "%00000334"), Attrs([Attr("address","0x8D0"), Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_069, "@register_tm_clones")),))]))])), Sub(Tid(2_063, "@free"), - Attrs([Attr("c.proto","void (*)(void* ptr)"), Attr("address","0x7F0"), -Attr("stub","()")]), "free", Args([Arg(Tid(2_130, "%00000852"), +(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","0x7F0")]), - Phis([]), Defs([Def(Tid(1_671, "%00000687"), Attrs([Attr("address","0x7F0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_678, "%0000068e"), Attrs([Attr("address","0x7F4"), +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","0x7F8"), +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","0x7FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_064, "@main"), + 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","0x914")]), "main", Args([Arg(Tid(2_131, "%00000853"), +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_132, "%00000854"), +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_133, "%00000855"), +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","0x914")]), Phis([]), Defs([Def(Tid(826, "%0000033a"), - Attrs([Attr("address","0x914"), + 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","0x914"), +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","0x914"), +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","0x914"), +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","0x918"), Attr("insn","str x21, [sp, #0x10]")]), + 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","0x91C"), +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","0x91C"), Attr("insn","stp x20, x19, [sp, #0x20]")]), + 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","0x91C"), +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","0x920"), +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","0x924"), +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","0x928"), -Attr("insn","bl #-0x188")]), Var("R30",Imm(64)), Int(2348,64))]), -Jmps([Call(Tid(887, "%00000377"), Attrs([Attr("address","0x928"), -Attr("insn","bl #-0x188")]), Int(1,1), -(Direct(Tid(2_065, "@malloc")),Direct(Tid(889, "%00000379"))))])), -Blk(Tid(889, "%00000379"), Attrs([Attr("address","0x92C")]), Phis([]), -Defs([Def(Tid(892, "%0000037c"), Attrs([Attr("address","0x92C"), -Attr("insn","adrp x21, #0x20000")]), Var("R21",Imm(64)), Int(131072,64)), -Def(Tid(897, "%00000381"), Attrs([Attr("address","0x930"), -Attr("insn","adrp x20, #0x20000")]), Var("R20",Imm(64)), Int(131072,64)), -Def(Tid(903, "%00000387"), Attrs([Attr("address","0x934"), +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","0x938"), Attr("insn","mov x19, x0")]), + Attrs([Attr("address","0x8F8"), Attr("insn","mov x19, x0")]), Var("R19",Imm(64)), Var("R0",Imm(64))), Def(Tid(917, "%00000395"), - Attrs([Attr("address","0x93C"), Attr("insn","str x0, [x21, #0x78]")]), + 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","0x940"), +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","0x944"), -Attr("insn","bl #-0x1d4")]), Var("R30",Imm(64)), Int(2376,64))]), -Jmps([Call(Tid(931, "%000003a3"), Attrs([Attr("address","0x944"), -Attr("insn","bl #-0x1d4")]), Int(1,1), -(Direct(Tid(2_072, "@strlen")),Direct(Tid(933, "%000003a5"))))])), -Blk(Tid(933, "%000003a5"), Attrs([Attr("address","0x948")]), Phis([]), -Defs([Def(Tid(937, "%000003a9"), Attrs([Attr("address","0x948"), +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","0x94C"), +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","0x950"), +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","0x954"), -Attr("insn","bl #-0x1f4")]), Var("R30",Imm(64)), Int(2392,64))]), -Jmps([Call(Tid(957, "%000003bd"), Attrs([Attr("address","0x954"), -Attr("insn","bl #-0x1f4")]), Int(1,1), -(Direct(Tid(2_066, "@memcpy")),Direct(Tid(959, "%000003bf"))))])), -Blk(Tid(959, "%000003bf"), Attrs([Attr("address","0x958")]), Phis([]), -Defs([Def(Tid(963, "%000003c3"), Attrs([Attr("address","0x958"), +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","0x95C"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2400,64))]), -Jmps([Call(Tid(971, "%000003cb"), Attrs([Attr("address","0x95C"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(2_068, "@puts")),Direct(Tid(973, "%000003cd"))))])), -Blk(Tid(973, "%000003cd"), Attrs([Attr("address","0x960")]), Phis([]), -Defs([Def(Tid(978, "%000003d2"), Attrs([Attr("address","0x960"), +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","0x964"), +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","0x968"), +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","0x96C"), +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","0x970"), -Attr("insn","bl #-0x200")]), Var("R30",Imm(64)), Int(2420,64))]), -Jmps([Call(Tid(1_005, "%000003ed"), Attrs([Attr("address","0x970"), -Attr("insn","bl #-0x200")]), Int(1,1), -(Direct(Tid(2_072, "@strlen")),Direct(Tid(1_007, "%000003ef"))))])), -Blk(Tid(1_007, "%000003ef"), Attrs([Attr("address","0x974")]), Phis([]), -Defs([Def(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x974"), +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","0x978"), +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","0x97C"), +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","0x980"), -Attr("insn","bl #-0x1d0")]), Var("R30",Imm(64)), Int(2436,64))]), -Jmps([Call(Tid(1_030, "%00000406"), Attrs([Attr("address","0x980"), -Attr("insn","bl #-0x1d0")]), Int(1,1), -(Direct(Tid(2_067, "@memset")),Direct(Tid(1_032, "%00000408"))))])), -Blk(Tid(1_032, "%00000408"), Attrs([Attr("address","0x984")]), Phis([]), -Defs([Def(Tid(1_037, "%0000040d"), Attrs([Attr("address","0x984"), +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","0x988"), -Attr("insn","bl #-0x198")]), Var("R30",Imm(64)), Int(2444,64))]), -Jmps([Call(Tid(1_045, "%00000415"), Attrs([Attr("address","0x988"), -Attr("insn","bl #-0x198")]), Int(1,1), -(Direct(Tid(2_063, "@free")),Direct(Tid(1_047, "%00000417"))))])), -Blk(Tid(1_047, "%00000417"), Attrs([Attr("address","0x98C")]), Phis([]), -Defs([Def(Tid(1_050, "%0000041a"), Attrs([Attr("address","0x98C"), +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","0x990"), +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","0x990"), Attr("insn","ldp x20, x19, [sp, #0x20]")]), + 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","0x990"), +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","0x994"), +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","0x998"), +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","0x998"), +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","0x998"), +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","0x99C"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_065, "@malloc"), + 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","0x7A0"), Attr("malloc","()"), Attr("stub","()")]), "malloc", - Args([Arg(Tid(2_134, "%00000856"), Attrs([Attr("alloc-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_135, "%00000857"), +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","0x7A0")]), Phis([]), -Defs([Def(Tid(1_561, "%00000619"), Attrs([Attr("address","0x7A0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_568, "%00000620"), Attrs([Attr("address","0x7A4"), +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","0x7A8"), +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","0x7AC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_066, "@memcpy"), + 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","0x760"), Attr("stub","()")]), "memcpy", - Args([Arg(Tid(2_136, "%00000858"), Attrs([Attr("nonnull","()"), +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_137, "%00000859"), +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_138, "%0000085a"), Attrs([Attr("c.layout","[unsigned long : 64]"), +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_139, "%0000085b"), Attrs([Attr("c.layout","*[ : 8]"), +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","0x760")]), Phis([]), -Defs([Def(Tid(1_473, "%000005c1"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_480, "%000005c8"), Attrs([Attr("address","0x764"), +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","0x768"), +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","0x76C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_067, "@memset"), + 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","0x7B0"), Attr("stub","()")]), "memset", - Args([Arg(Tid(2_140, "%0000085c"), Attrs([Attr("nonnull","()"), +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_141, "%0000085d"), +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_142, "%0000085e"), +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_143, "%0000085f"), Attrs([Attr("c.layout","*[ : 8]"), +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","0x7B0")]), Phis([]), -Defs([Def(Tid(1_583, "%0000062f"), Attrs([Attr("address","0x7B0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_590, "%00000636"), Attrs([Attr("address","0x7B4"), +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","0x7B8"), +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","0x7BC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_068, "@puts"), + 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","0x7E0"), Attr("stub","()")]), "puts", - Args([Arg(Tid(2_144, "%00000860"), Attrs([Attr("c.layout","*[char : 8]"), +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_145, "%00000861"), Attrs([Attr("c.layout","[signed : 32]"), +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","0x7E0")]), Phis([]), -Defs([Def(Tid(1_649, "%00000671"), Attrs([Attr("address","0x7E0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_656, "%00000678"), Attrs([Attr("address","0x7E4"), +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","0x7E8"), +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","0x7EC"), Attr("insn","br x17")]), Int(1,1), + Attrs([Attr("address","0x79C"), Attr("insn","br x17")]), Int(1,1), (Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(2_069, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x880")]), - "register_tm_clones", Args([Arg(Tid(2_146, "%00000862"), +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(669, "@register_tm_clones"), Attrs([Attr("address","0x880")]), - Phis([]), Defs([Def(Tid(672, "%000002a0"), Attrs([Attr("address","0x880"), -Attr("insn","adrp x0, #0x20000")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(678, "%000002a6"), Attrs([Attr("address","0x884"), +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(683, "%000002ab"), - Attrs([Attr("address","0x888"), Attr("insn","adrp x1, #0x20000")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(689, "%000002b1"), - Attrs([Attr("address","0x88C"), Attr("insn","add x1, x1, #0x70")]), +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(696, "%000002b8"), Attrs([Attr("address","0x890"), +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(702, "%000002be"), Attrs([Attr("address","0x894"), +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(709, "%000002c5"), Attrs([Attr("address","0x898"), +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(715, "%000002cb"), Attrs([Attr("address","0x89C"), +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(721, "%000002d1"), Attrs([Attr("address","0x8A0"), +Jmps([Goto(Tid(720, "%000002d0"), Attrs([Attr("address","0x860"), Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(719, "%000002cf"))), Goto(Tid(2_114, "%00000842"), Attrs([]), +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","0x8A4")]), Phis([]), -Defs([Def(Tid(1_158, "%00000486"), Attrs([Attr("address","0x8A4"), -Attr("insn","adrp x2, #0x1f000")]), Var("R2",Imm(64)), Int(126976,64)), -Def(Tid(1_165, "%0000048d"), Attrs([Attr("address","0x8A8"), + 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","0x8AC"), +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(719, "%000002cf"))), Goto(Tid(2_115, "%00000843"), Attrs([]), - Int(1,1), Direct(Tid(1_174, "%00000496")))])), Blk(Tid(719, "%000002cf"), - Attrs([Attr("address","0x8B8")]), Phis([]), Defs([]), -Jmps([Call(Tid(727, "%000002d7"), Attrs([Attr("address","0x8B8"), +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","0x8B0")]), Phis([]), -Defs([Def(Tid(1_178, "%0000049a"), Attrs([Attr("address","0x8B0"), +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","0x8B4"), +Jmps([Call(Tid(1_183, "%0000049f"), Attrs([Attr("address","0x874"), Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(2_072, "@strlen"), +Sub(Tid(1_961, "@strlen"), Attrs([Attr("c.proto","unsigned long (*)( const char* s)"), -Attr("pure","()"), Attr("address","0x770"), Attr("stub","()")]), "strlen", - Args([Arg(Tid(2_147, "%00000863"), Attrs([Attr("nonnull","()"), +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_148, "%00000864"), +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","0x770")]), Phis([]), -Defs([Def(Tid(1_495, "%000005d7"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_502, "%000005de"), Attrs([Attr("address","0x774"), + 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","0x778"), +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","0x77C"), Attr("insn","br x17")]), Int(1,1), + 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/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir b/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir index e9292acea..edc16330c 100644 --- a/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir +++ b/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.bir @@ -1,48 +1,48 @@ -00000844: program -000007fd: sub __cxa_finalize(__cxa_finalize_result) -00000845: __cxa_finalize_result :: out u32 = low:32[R0] +000007d5: program +0000078e: sub __cxa_finalize(__cxa_finalize_result) +000007d6: __cxa_finalize_result :: out u32 = low:32[R0] 0000047f: -00000603: R16 := 0x20000 +00000603: R16 := 0x11000 0000060a: R17 := mem[R16 + 0x18, el]:u64 00000610: R16 := R16 + 0x18 00000615: call R17 with noreturn -000007fe: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000846: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002db: -000002df: #3 := R31 - 0x20 -000002e5: mem := mem with [#3, el]:u64 <- R29 -000002eb: mem := mem with [#3 + 8, el]:u64 <- R30 -000002ef: R31 := #3 -000002f5: R29 := R31 -000002fd: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000302: R19 := 0x20000 -00000309: R0 := pad:64[mem[R19 + 0x70]] -0000030f: when 0:0[R0] goto %0000030d -0000083a: goto %00000448 +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 := 0x1F000 +0000044b: R0 := 0x10000 00000452: R0 := mem[R0 + 0xFC8, el]:u64 00000458: when R0 = 0 goto %00000456 -0000083b: goto %0000046f +000007cc: goto %0000046f 0000046f: -00000472: R0 := 0x20000 +00000472: R0 := 0x11000 00000479: R0 := mem[R0 + 0x58, el]:u64 -0000047e: R30 := 0x8F0 +0000047e: R30 := 0x8B0 00000481: call @__cxa_finalize with return %00000456 00000456: -0000045e: R30 := 0x8F4 +0000045e: R30 := 0x8B4 00000460: call @deregister_tm_clones with return %00000462 00000462: 00000465: R0 := 1 0000046d: mem := mem with [R19 + 0x70] <- 7:0[R0] -0000083c: goto %0000030d +000007cd: goto %0000030d 0000030d: 00000317: R19 := mem[R31 + 0x10, el]:u64 @@ -51,154 +51,154 @@ 00000327: R31 := R31 + 0x20 0000032c: call R30 with noreturn -00000802: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000847: __libc_start_main_main :: in u64 = R0 -00000848: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000849: __libc_start_main_arg3 :: in out u64 = R2 -0000084a: __libc_start_main_auxv :: in out u64 = R3 -0000084b: __libc_start_main_result :: out u32 = low:32[R0] +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] -00000234: -000005ed: R16 := 0x20000 +00000233: +000005ed: R16 := 0x11000 000005f4: R17 := mem[R16 + 0x10, el]:u64 000005fa: R16 := R16 + 0x10 000005ff: call R17 with noreturn -00000803: sub _fini(_fini_result) -0000084c: _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 - -00000804: sub _init(_init_result) -0000084d: _init_result :: out u32 = low:32[R0] - -00000724: -0000072a: #8 := R31 - 0x10 -00000730: mem := mem with [#8, el]:u64 <- R29 -00000736: mem := mem with [#8 + 8, el]:u64 <- R30 -0000073a: R31 := #8 -00000740: R29 := R31 -00000745: R30 := 0x738 -00000747: call @call_weak_fn with return %00000749 - -00000749: -0000074e: R29 := mem[R31, el]:u64 -00000753: R30 := mem[R31 + 8, el]:u64 -00000757: R31 := R31 + 0x10 -0000075c: call R30 with noreturn - -00000805: sub _start(_start_result) -0000084e: _start_result :: out u32 = low:32[R0] - -000001f5: -000001fa: R29 := 0 -000001ff: R30 := 0 -00000205: R5 := R0 -0000020c: R1 := mem[R31, el]:u64 -00000212: R2 := R31 + 8 -00000218: R6 := R31 -0000021d: R0 := 0x1F000 -00000224: R0 := mem[R0 + 0xFD8, el]:u64 -00000229: R3 := 0 -0000022e: R4 := 0 -00000233: R30 := 0x830 -00000236: call @__libc_start_main with return %00000238 - -00000238: -0000023b: R30 := 0x834 -0000023e: call @abort with return %0000083d - -0000083d: -0000083e: call @call_weak_fn with noreturn - -00000808: sub abort() - - -0000023c: -0000065b: R16 := 0x20000 +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 -00000809: sub call_weak_fn(call_weak_fn_result) -0000084f: call_weak_fn_result :: out u32 = low:32[R0] +0000079a: sub call_weak_fn(call_weak_fn_result) +000007e0: call_weak_fn_result :: out u32 = low:32[R0] -00000240: -00000243: R0 := 0x1F000 -0000024a: R0 := mem[R0 + 0xFD0, el]:u64 -00000250: when R0 = 0 goto %0000024e -0000083f: goto %000004bf +0000023f: +00000242: R0 := 0x10000 +00000249: R0 := mem[R0 + 0xFD0, el]:u64 +0000024f: when R0 = 0 goto %0000024d +000007d0: goto %000004bf -0000024e: -00000256: call R30 with noreturn +0000024d: +00000255: call R30 with noreturn 000004bf: 000004c2: goto @__gmon_start__ 000004c0: -00000645: R16 := 0x20000 +00000645: R16 := 0x11000 0000064c: R17 := mem[R16 + 0x30, el]:u64 00000652: R16 := R16 + 0x30 00000657: call R17 with noreturn -0000080b: sub deregister_tm_clones(deregister_tm_clones_result) -00000850: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000025c: -0000025f: R0 := 0x20000 -00000265: R0 := R0 + 0x70 -0000026a: R1 := 0x20000 -00000270: R1 := R1 + 0x70 -00000276: #1 := ~R0 -0000027b: #2 := R1 + ~R0 -00000281: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000287: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000028b: ZF := #2 + 1 = 0 -0000028f: NF := 63:63[#2 + 1] -00000295: when ZF goto %00000293 -00000840: goto %000004a1 +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 := 0x1F000 +000004a4: R1 := 0x10000 000004ab: R1 := mem[R1 + 0xFC0, el]:u64 -000004b0: when R1 = 0 goto %00000293 -00000841: goto %000004b4 +000004b0: when R1 = 0 goto %00000292 +000007d2: goto %000004b4 -00000293: -0000029b: call R30 with noreturn +00000292: +0000029a: call R30 with noreturn 000004b4: 000004b8: R16 := R1 000004bd: call R16 with noreturn -0000080e: sub frame_dummy(frame_dummy_result) -00000851: frame_dummy_result :: out u32 = low:32[R0] +0000079f: sub frame_dummy(frame_dummy_result) +000007e2: frame_dummy_result :: out u32 = low:32[R0] 00000332: 00000334: call @register_tm_clones with noreturn -0000080f: sub free(free_ptr) -00000852: free_ptr :: in out u64 = R0 +000007a0: sub free(free_ptr) +000007e3: free_ptr :: in out u64 = R0 00000413: -00000687: R16 := 0x20000 +00000687: R16 := 0x11000 0000068e: R17 := mem[R16 + 0x48, el]:u64 00000694: R16 := R16 + 0x48 00000699: call R17 with noreturn -00000810: sub main(main_argc, main_argv, main_result) -00000853: main_argc :: in u32 = low:32[R0] -00000854: main_argv :: in out u64 = R1 -00000855: main_result :: out u32 = low:32[R0] +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 @@ -211,29 +211,29 @@ 00000364: mem := mem with [#5 + 8, el]:u64 <- R19 0000036a: R29 := R31 0000036f: R0 := 0xB -00000374: R30 := 0x92C +00000374: R30 := 0x8EC 00000377: call @malloc with return %00000379 00000379: -0000037c: R21 := 0x20000 -00000381: R20 := 0x20000 +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 := 0x948 +000003a0: R30 := 0x908 000003a3: call @strlen with return %000003a5 000003a5: 000003a9: R2 := R0 000003af: R0 := R19 000003b5: R1 := R20 -000003ba: R30 := 0x958 +000003ba: R30 := 0x918 000003bd: call @memcpy with return %000003bf 000003bf: 000003c3: R0 := R19 -000003c8: R30 := 0x960 +000003c8: R30 := 0x920 000003cb: call @puts with return %000003cd 000003cd: @@ -241,19 +241,19 @@ 000003d9: mem := mem with [R8 + 4] <- 0 000003e0: R19 := mem[R21 + 0x78, el]:u64 000003e6: R0 := R19 -000003eb: R30 := 0x974 +000003eb: R30 := 0x934 000003ed: call @strlen with return %000003ef 000003ef: 000003f3: R2 := R0 000003f9: R0 := R19 000003fe: R1 := 1 -00000403: R30 := 0x984 +00000403: R30 := 0x944 00000406: call @memset with return %00000408 00000408: 0000040d: R0 := mem[R21 + 0x78, el]:u64 -00000412: R30 := 0x98C +00000412: R30 := 0x94C 00000415: call @free with return %00000417 00000417: @@ -267,84 +267,84 @@ 00000441: R31 := R31 + 0x30 00000446: call R30 with noreturn -00000811: sub malloc(malloc_size, malloc_result) -00000856: malloc_size :: in u64 = R0 -00000857: malloc_result :: out u64 = R0 +000007a2: sub malloc(malloc_size, malloc_result) +000007e7: malloc_size :: in u64 = R0 +000007e8: malloc_result :: out u64 = R0 00000375: -00000619: R16 := 0x20000 +00000619: R16 := 0x11000 00000620: R17 := mem[R16 + 0x20, el]:u64 00000626: R16 := R16 + 0x20 0000062b: call R17 with noreturn -00000812: sub memcpy(memcpy_dst, memcpy_src, memcpy_n, memcpy_result) -00000858: memcpy_dst :: in out u64 = R0 -00000859: memcpy_src :: in out u64 = R1 -0000085a: memcpy_n :: in u64 = R2 -0000085b: memcpy_result :: out u64 = R0 +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 := 0x20000 +000005c1: R16 := 0x11000 000005c8: R17 := mem[R16, el]:u64 000005ce: R16 := R16 000005d3: call R17 with noreturn -00000813: sub memset(memset_buf, memset_c, memset_n, memset_result) -0000085c: memset_buf :: in out u64 = R0 -0000085d: memset_c :: in u32 = low:32[R1] -0000085e: memset_n :: in u64 = R2 -0000085f: memset_result :: out u64 = R0 +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 := 0x20000 +0000062f: R16 := 0x11000 00000636: R17 := mem[R16 + 0x28, el]:u64 0000063c: R16 := R16 + 0x28 00000641: call R17 with noreturn -00000814: sub puts(puts_s, puts_result) -00000860: puts_s :: in u64 = R0 -00000861: puts_result :: out u32 = low:32[R0] +000007a5: sub puts(puts_s, puts_result) +000007f1: puts_s :: in u64 = R0 +000007f2: puts_result :: out u32 = low:32[R0] 000003c9: -00000671: R16 := 0x20000 +00000671: R16 := 0x11000 00000678: R17 := mem[R16 + 0x40, el]:u64 0000067e: R16 := R16 + 0x40 00000683: call R17 with noreturn -00000815: sub register_tm_clones(register_tm_clones_result) -00000862: register_tm_clones_result :: out u32 = low:32[R0] - -0000029d: -000002a0: R0 := 0x20000 -000002a6: R0 := R0 + 0x70 -000002ab: R1 := 0x20000 -000002b1: R1 := R1 + 0x70 -000002b8: R1 := R1 + ~R0 + 1 -000002be: R2 := 0.63:63[R1] -000002c5: R1 := R2 + (R1 ~>> 3) -000002cb: R1 := extend:64[63:1[R1]] -000002d1: when R1 = 0 goto %000002cf -00000842: goto %00000483 +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 := 0x1F000 +00000486: R2 := 0x10000 0000048d: R2 := mem[R2 + 0xFE0, el]:u64 -00000492: when R2 = 0 goto %000002cf -00000843: goto %00000496 +00000492: when R2 = 0 goto %000002ce +000007d4: goto %00000496 -000002cf: -000002d7: call R30 with noreturn +000002ce: +000002d6: call R30 with noreturn 00000496: 0000049a: R16 := R2 0000049f: call R16 with noreturn -00000818: sub strlen(strlen_s, strlen_result) -00000863: strlen_s :: in u64 = R0 -00000864: strlen_result :: out u64 = R0 +000007a9: sub strlen(strlen_s, strlen_result) +000007f4: strlen_s :: in u64 = R0 +000007f5: strlen_result :: out u64 = R0 000003a1: -000005d7: R16 := 0x20000 +000005d7: R16 := 0x11000 000005de: R17 := mem[R16 + 8, el]:u64 000005e4: R16 := R16 + 8 000005e9: call R17 with noreturn diff --git a/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts b/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts new file mode 100644 index 000000000..7131f36a7 Binary files /dev/null and b/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.gts differ diff --git a/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf b/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf index a3d3583af..052e65e07 100644 --- a/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf +++ b/src/test/incorrect/malloc_memcpy_strlen_memset_free/clang_O2/malloc_memcpy_strlen_memset_free.relf @@ -1,33 +1,33 @@ -Relocation section '.rela.dyn' at offset 0x578 contains 8 entries: +Relocation section '.rela.dyn' at offset 0x528 contains 8 entries: Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdb8 0000000000000403 R_AARCH64_RELATIVE 910 -000000000001fdc0 0000000000000403 R_AARCH64_RELATIVE 8c0 -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 914 -0000000000020058 0000000000000403 R_AARCH64_RELATIVE 20058 -000000000001ffc0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000e00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 +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 0x638 contains 10 entries: +Relocation section '.rela.plt' at offset 0x5e8 contains 10 entries: Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 memcpy@GLIBC_2.17 + 0 -0000000000020008 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000000000 strlen@GLIBC_2.17 + 0 -0000000000020010 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000020028 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 memset@GLIBC_2.17 + 0 -0000000000020030 0000000a00000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020038 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000020040 0000000c00000402 R_AARCH64_JUMP_SLOT 0000000000000000 puts@GLIBC_2.17 + 0 -0000000000020048 0000000d00000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 +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: 0000000000000728 0 SECTION LOCAL DEFAULT 12 .init - 2: 0000000000020050 0 SECTION LOCAL DEFAULT 24 .data + 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) @@ -41,105 +41,104 @@ Symbol table '.dynsym' contains 15 entries: 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 100 entries: +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 .hash - 5: 00000000000002e8 0 SECTION LOCAL DEFAULT 5 .gnu.hash - 6: 0000000000000308 0 SECTION LOCAL DEFAULT 6 .dynsym - 7: 0000000000000470 0 SECTION LOCAL DEFAULT 7 .dynstr - 8: 0000000000000524 0 SECTION LOCAL DEFAULT 8 .gnu.version - 9: 0000000000000548 0 SECTION LOCAL DEFAULT 9 .gnu.version_r - 10: 0000000000000578 0 SECTION LOCAL DEFAULT 10 .rela.dyn - 11: 0000000000000638 0 SECTION LOCAL DEFAULT 11 .rela.plt - 12: 0000000000000728 0 SECTION LOCAL DEFAULT 12 .init - 13: 0000000000000740 0 SECTION LOCAL DEFAULT 13 .plt - 14: 0000000000000800 0 SECTION LOCAL DEFAULT 14 .text - 15: 00000000000009a0 0 SECTION LOCAL DEFAULT 15 .fini - 16: 00000000000009b4 0 SECTION LOCAL DEFAULT 16 .rodata - 17: 00000000000009b8 0 SECTION LOCAL DEFAULT 17 .eh_frame_hdr - 18: 00000000000009f8 0 SECTION LOCAL DEFAULT 18 .eh_frame - 19: 000000000001fdb8 0 SECTION LOCAL DEFAULT 19 .init_array - 20: 000000000001fdc0 0 SECTION LOCAL DEFAULT 20 .fini_array - 21: 000000000001fdc8 0 SECTION LOCAL DEFAULT 21 .dynamic - 22: 000000000001ffb8 0 SECTION LOCAL DEFAULT 22 .got - 23: 000000000001ffe8 0 SECTION LOCAL DEFAULT 23 .got.plt - 24: 0000000000020050 0 SECTION LOCAL DEFAULT 24 .data - 25: 0000000000020070 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: 0000000000000800 0 NOTYPE LOCAL DEFAULT 14 $x - 31: 0000000000000a0c 0 NOTYPE LOCAL DEFAULT 18 $d - 32: 00000000000009b4 0 NOTYPE LOCAL DEFAULT 16 $d - 33: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 34: 0000000000000834 0 NOTYPE LOCAL DEFAULT 14 $x - 35: 0000000000000834 20 FUNC LOCAL DEFAULT 14 call_weak_fn - 36: 0000000000000728 0 NOTYPE LOCAL DEFAULT 12 $x - 37: 00000000000009a0 0 NOTYPE LOCAL DEFAULT 15 $x - 38: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 39: 0000000000000738 0 NOTYPE LOCAL DEFAULT 12 $x - 40: 00000000000009ac 0 NOTYPE LOCAL DEFAULT 15 $x - 41: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 42: 0000000000000850 0 NOTYPE LOCAL DEFAULT 14 $x - 43: 0000000000000850 0 FUNC LOCAL DEFAULT 14 deregister_tm_clones - 44: 0000000000000880 0 FUNC LOCAL DEFAULT 14 register_tm_clones - 45: 0000000000020058 0 NOTYPE LOCAL DEFAULT 24 $d - 46: 00000000000008c0 0 FUNC LOCAL DEFAULT 14 __do_global_dtors_aux - 47: 0000000000020070 1 OBJECT LOCAL DEFAULT 25 completed.0 - 48: 000000000001fdc0 0 NOTYPE LOCAL DEFAULT 20 $d - 49: 000000000001fdc0 0 OBJECT LOCAL DEFAULT 20 __do_global_dtors_aux_fini_array_entry - 50: 0000000000000910 0 FUNC LOCAL DEFAULT 14 frame_dummy - 51: 000000000001fdb8 0 NOTYPE LOCAL DEFAULT 19 $d - 52: 000000000001fdb8 0 OBJECT LOCAL DEFAULT 19 __frame_dummy_init_array_entry - 53: 0000000000000a20 0 NOTYPE LOCAL DEFAULT 18 $d - 54: 0000000000020070 0 NOTYPE LOCAL DEFAULT 25 $d - 55: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_memcpy_strlen_memset_free.c - 56: 0000000000000914 0 NOTYPE LOCAL DEFAULT 14 $x.0 - 57: 0000000000020060 0 NOTYPE LOCAL DEFAULT 24 $d.1 - 58: 0000000000020078 0 NOTYPE LOCAL DEFAULT 25 $d.2 - 59: 000000000000001d 0 NOTYPE LOCAL DEFAULT 26 $d.3 - 60: 0000000000000a80 0 NOTYPE LOCAL DEFAULT 18 $d.4 - 61: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 62: 0000000000000ac4 0 NOTYPE LOCAL DEFAULT 18 $d - 63: 0000000000000ac4 0 OBJECT LOCAL DEFAULT 18 __FRAME_END__ - 64: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 65: 000000000001fdc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 66: 00000000000009b8 0 NOTYPE LOCAL DEFAULT 17 __GNU_EH_FRAME_HDR - 67: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 68: 0000000000000740 0 NOTYPE LOCAL DEFAULT 13 $x - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.17 - 70: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.17 - 71: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 72: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 73: 0000000000020050 0 NOTYPE WEAK DEFAULT 24 data_start - 74: 000000000002006c 0 NOTYPE GLOBAL DEFAULT 25 __bss_start__ - 75: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 76: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 25 _bss_end__ - 77: 000000000002006c 0 NOTYPE GLOBAL DEFAULT 24 _edata - 78: 00000000000009a0 0 FUNC GLOBAL HIDDEN 15 _fini - 79: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 25 __bss_end__ - 80: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 81: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.17 - 82: 0000000000020060 1 OBJECT GLOBAL DEFAULT 24 password - 83: 0000000000020050 0 NOTYPE GLOBAL DEFAULT 24 __data_start - 84: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 85: 0000000000020058 0 OBJECT GLOBAL HIDDEN 24 __dso_handle - 86: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 87: 00000000000009b4 4 OBJECT GLOBAL DEFAULT 16 _IO_stdin_used - 88: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 - 89: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 25 _end - 90: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 91: 0000000000000800 52 FUNC GLOBAL DEFAULT 14 _start - 92: 0000000000020078 8 OBJECT GLOBAL DEFAULT 25 buf - 93: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 25 __end__ - 94: 0000000000020061 11 OBJECT GLOBAL DEFAULT 24 stext - 95: 000000000002006c 0 NOTYPE GLOBAL DEFAULT 25 __bss_start - 96: 0000000000000914 140 FUNC GLOBAL DEFAULT 14 main - 97: 0000000000020070 0 OBJECT GLOBAL HIDDEN 24 __TMC_END__ - 98: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 99: 0000000000000728 0 FUNC GLOBAL HIDDEN 12 _init + 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/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt b/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt index 7fbe7d8d3..48c5d0d41 100644 --- a/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt +++ b/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.adt @@ -1,46 +1,45 @@ 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 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 memcpy)\n(external-reference 131080 strlen)\n(external-reference 131088 __libc_start_main)\n(external-reference 131096 __cxa_finalize)\n(external-reference 131104 malloc)\n(external-reference 131112 memset)\n(external-reference 131120 __gmon_start__)\n(external-reference 131128 abort)\n(external-reference 131136 puts)\n(external-reference 131144 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 1984 140)\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 __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 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 64968 568)\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 64984 480)\n(llvm:elf-program-header 03 64968 676)\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 130504 568)\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 130520 480)\n(llvm:elf-virtual-program-header 03 130504 696)\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 131144 free)\n(llvm:name-reference 131136 puts)\n(llvm:name-reference 131128 abort)\n(llvm:name-reference 131120 __gmon_start__)\n(llvm:name-reference 131112 memset)\n(llvm:name-reference 131104 malloc)\n(llvm:name-reference 131096 __cxa_finalize)\n(llvm:name-reference 131088 __libc_start_main)\n(llvm:name-reference 131080 strlen)\n(llvm:name-reference 131072 memcpy)\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 68723)\n(llvm:section-entry .strtab 0 691 68032)\n(llvm:section-entry .symtab 0 2352 65680)\n(llvm:section-entry .comment 0 30 65644)\n(llvm:section-entry .bss 131184 16 65644)\n(llvm:section-entry .data 131152 28 65616)\n(llvm:section-entry .got.plt 131048 104 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 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 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 1984 140 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 __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 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 130504 676 64968)\n(named-region 0 2716 02)\n(named-region 130504 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 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 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 104 .got.plt)\n(named-region 131152 28 .data)\n(named-region 131184 16 .bss)\n(named-region 0 30 .comment)\n(named-region 0 2352 .symtab)\n(named-region 0 691 .strtab)\n(named-region 0 259 .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 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 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 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 468)\n(section 2452 20)\n(section 2472 4)\n(section 2476 60)\n(section 2536 180)\n(section 130504 8)\n(section 130512 8)\n(section 130520 480)\n(section 131000 48)\n(section 131048 104)\n(section 131152 28)\n(section 131184 16)\n(section 0 30)\n(section 0 2352)\n(section 0 691)\n(section 0 259)\n(segment 0 2716 true false true)\n(segment 130504 696 true true false)\n(subarch v8)\n(symbol-chunk 2228 20 2228)\n(symbol-chunk 2176 52 2176)\n(symbol-chunk 1984 140 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("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\x78\x0d\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\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\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\x80\x08\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x78\x0d\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\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\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\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\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\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\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\x29\x2f\x62\xd0\x81\xb0\xac\x00\xe9\x2d\x9a\xa1\x95\x8c\xda\x3a\x8d\xc8\xeb\x09\x04\x00\x00\x00\x10\x00\x00\x00\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"), -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\x78\x0d\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\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\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\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\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\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\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\x29\x2f\x62\xd0\x81\xb0\xac\x00\xe9\x2d\x9a\xa1\x95\x8c\xda\x3a\x8d\xc8\xeb\x09\x04\x00\x00\x00\x10\x00\x00\x00\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\x00\x02\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\x0b\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\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\x2b\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\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\x8a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\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\x06\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\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\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\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x65\x6d\x73\x65\x74\x00\x6d\x65\x6d\x63\x70\x79\x00\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\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\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x09\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0e\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\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\x20\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x02\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\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\x10\x01\x00\x90\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1e\x40\xf9\x10\xe2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x22\x40\xf9\x10\x02\x01\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\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\xfd\x7b\xbd\xa9\x60\x01\x80\xd2\xfd\x03\x00\x91\xf3\x53\x01\xa9\x14\x01\x00\x90\xf5\x13\x00\xf9\xde\xff\xff\x97\x15\x01\x00\x90\xb5\x82\x01\x91\xf3\x03\x00\xaa\xe0\x03\x15\xaa\x93\x3e\x00\xf9\xcc\xff\xff\x97\xe1\x03\x15\xaa\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xc4\xff\xff\x97\xe0\x03\x13\xaa\xe2\xff\xff\x97\x80\x3e\x40\xf9\x1f\x10\x00\x39\x93\x3e\x40\xf9\xe0\x03\x13\xaa\xc1\xff\xff\x97\x21\x00\x80\x52\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xcd\xff\xff\x97\x80\x3e\x40\xf9\xdb\xff\xff\x97\xf3\x53\x41\xa9\x00\x00\x80\x52\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\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\xa1\xff\xff\x97\xb4\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xac\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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"), -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"), +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\x29\x2f\x62\xd0\x81\xb0\xac\x00\xe9\x2d\x9a\xa1\x95\x8c\xda\x3a\x8d\xc8\xeb\x09"), +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\x17\x00\x50\x00\x02\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\x0b\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\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\x2b\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\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\x8a\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\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\x06\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\x70\x75\x74\x73\x00\x66\x72\x65\x65\x00\x73\x74\x72\x6c\x65\x6e\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\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x6d\x65\x6d\x73\x65\x74\x00\x6d\x65\x6d\x63\x70\x79\x00\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", 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\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x90\x09\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x40\x09\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xc0\x07\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x58\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\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\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\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\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\x20\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x0d\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\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\x10\x01\x00\x90\x11\x12\x40\xf9\x10\x82\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x16\x40\xf9\x10\xa2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1a\x40\xf9\x10\xc2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x1e\x40\xf9\x10\xe2\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x22\x40\xf9\x10\x02\x01\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x26\x40\xf9\x10\x22\x01\x91\x20\x02\x1f\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\x8c\x00\x00\x00\x00\x41\x0e\x30\x9d\x06\x9e\x05\x43\x93\x04\x94\x03\x42\x95\x02\x5c\xde\xdd\xd5\xd3\xd4\x0e\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x1FDD0, "\x40\x09\x00\x00\x00\x00\x00\x00"), -Section(".init_array", 0x1FDC8, "\x90\x09\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDD8, "\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\x94\x09\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\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\xff\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(".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\xc0\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\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", 0x20050, "\x00\x00\x00\x00\x00\x00\x00\x00\x58\x00\x02\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\x14\x01\x00\x90\xf5\x13\x00\xf9\xde\xff\xff\x97\x15\x01\x00\x90\xb5\x82\x01\x91\xf3\x03\x00\xaa\xe0\x03\x15\xaa\x93\x3e\x00\xf9\xcc\xff\xff\x97\xe1\x03\x15\xaa\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xc4\xff\xff\x97\xe0\x03\x13\xaa\xe2\xff\xff\x97\x80\x3e\x40\xf9\x1f\x10\x00\x39\x93\x3e\x40\xf9\xe0\x03\x13\xaa\xc1\xff\xff\x97\x21\x00\x80\x52\xe2\x03\x00\xaa\xe0\x03\x13\xaa\xcd\xff\xff\x97\x80\x3e\x40\xf9\xdb\xff\xff\x97\xf3\x53\x41\xa9\x00\x00\x80\x52\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\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\xa1\xff\xff\x97\xb4\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xac\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x01\x91\x01\x01\x00\x90\x21\xc0\x01\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\x1f\x20\x03\xd5\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x41\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x2c\x40\xf9\x75\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")]), +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,0x84B), Attr("symbol","\"main\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x2B2), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x92F), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x1D), Attr("section","\".comment\"")), +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,0x4D2), Attr("section","\".dynstr\"")), -Annotation(Region(0x4D4,0x4F1), Attr("section","\".gnu.version\"")), +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\"")), @@ -48,7 +47,7 @@ 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,0x84B), Attr("symbol-info","main 0x7C0 140")), +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\"")), @@ -57,121 +56,120 @@ 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(0x1FDC8,0x2006B), Attr("segment","03 0x1FDC8 696")), -Annotation(Region(0x1FDD0,0x1FDD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDC8,0x1FDCF), Attr("section","\".init_array\"")), -Annotation(Region(0x1FDD8,0x1FFB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FFB8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2004F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20050,0x2006B), Attr("section","\".data\"")), +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_025, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x740"), + 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_229, "@__cxa_finalize"), - Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(1_617, "%00000651"), Attrs([Attr("address","0x740"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_624, "%00000658"), 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_630, "%0000065e"), 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_635, "%00000663"), - Attrs([Attr("address","0x74C"), Attr("insn","br x17")]), Int(1,1), +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_026, "@__do_global_dtors_aux"), +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_083, "@__do_global_dtors_aux"), +Blks([Blk(Tid(1_085, "@__do_global_dtors_aux"), Attrs([Attr("address","0x940")]), Phis([]), -Defs([Def(Tid(1_087, "%0000043f"), Attrs([Attr("address","0x940"), +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_093, "%00000445"), Attrs([Attr("address","0x940"), +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_099, "%0000044b"), Attrs([Attr("address","0x940"), +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_103, "%0000044f"), Attrs([Attr("address","0x940"), +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_109, "%00000455"), +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_117, "%0000045d"), + 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_122, "%00000462"), Attrs([Attr("address","0x94C"), -Attr("insn","adrp x19, #0x20000")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(1_129, "%00000469"), Attrs([Attr("address","0x950"), -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(1_135, "%0000046f"), Attrs([Attr("address","0x954"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), -Direct(Tid(1_133, "%0000046d"))), Goto(Tid(2_086, "%00000826"), Attrs([]), - Int(1,1), Direct(Tid(1_174, "%00000496")))])), Blk(Tid(1_174, "%00000496"), +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_177, "%00000499"), Attrs([Attr("address","0x958"), -Attr("insn","adrp x0, #0x1f000")]), Var("R0",Imm(64)), Int(126976,64)), -Def(Tid(1_184, "%000004a0"), Attrs([Attr("address","0x95C"), -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_190, "%000004a6"), Attrs([Attr("address","0x960"), +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_188, "%000004a4"))), Goto(Tid(2_087, "%00000827"), Attrs([]), - Int(1,1), Direct(Tid(1_213, "%000004bd")))])), Blk(Tid(1_213, "%000004bd"), +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_216, "%000004c0"), Attrs([Attr("address","0x964"), -Attr("insn","adrp x0, #0x20000")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(1_223, "%000004c7"), Attrs([Attr("address","0x968"), -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_228, "%000004cc"), Attrs([Attr("address","0x96C"), -Attr("insn","bl #-0x22c")]), Var("R30",Imm(64)), Int(2416,64))]), -Jmps([Call(Tid(1_231, "%000004cf"), Attrs([Attr("address","0x96C"), -Attr("insn","bl #-0x22c")]), Int(1,1), -(Direct(Tid(2_025, "@__cxa_finalize")),Direct(Tid(1_188, "%000004a4"))))])), -Blk(Tid(1_188, "%000004a4"), Attrs([Attr("address","0x970")]), Phis([]), -Defs([Def(Tid(1_196, "%000004ac"), Attrs([Attr("address","0x970"), +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_198, "%000004ae"), Attrs([Attr("address","0x970"), +Jmps([Call(Tid(1_201, "%000004b1"), Attrs([Attr("address","0x970"), Attr("insn","bl #-0xa0")]), Int(1,1), -(Direct(Tid(2_039, "@deregister_tm_clones")),Direct(Tid(1_200, "%000004b0"))))])), -Blk(Tid(1_200, "%000004b0"), Attrs([Attr("address","0x974")]), Phis([]), -Defs([Def(Tid(1_203, "%000004b3"), Attrs([Attr("address","0x974"), +(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_211, "%000004bb"), Attrs([Attr("address","0x978"), -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))]), +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_133, "%0000046d")))])), Blk(Tid(1_133, "%0000046d"), +Direct(Tid(1_136, "%00000470")))])), Blk(Tid(1_136, "%00000470"), Attrs([Attr("address","0x97C")]), Phis([]), -Defs([Def(Tid(1_143, "%00000477"), Attrs([Attr("address","0x97C"), +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_150, "%0000047e"), Attrs([Attr("address","0x980"), +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_155, "%00000483"), Attrs([Attr("address","0x980"), +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_159, "%00000487"), Attrs([Attr("address","0x980"), +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_164, "%0000048c"), +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_030, "@__libc_start_main"), +(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","0x730"), Attr("stub","()")]), "__libc_start_main", +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"), @@ -189,559 +187,551 @@ Attr("c.data","{} ptr"), Attr("c.type","void*")]), 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(916, "@__libc_start_main"), - Attrs([Attr("address","0x730")]), Phis([]), -Defs([Def(Tid(1_595, "%0000063b"), Attrs([Attr("address","0x730"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_602, "%00000642"), 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_608, "%00000648"), 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_613, "%0000064d"), - Attrs([Attr("address","0x73C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_031, "@_fini"), +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_104, "%00000838"), + "_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(32, "@_fini"), - Attrs([Attr("address","0x994")]), Phis([]), Defs([Def(Tid(38, "%00000026"), +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(44, "%0000002c"), Attrs([Attr("address","0x998"), +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(50, "%00000032"), Attrs([Attr("address","0x998"), +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(54, "%00000036"), Attrs([Attr("address","0x998"), +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(60, "%0000003c"), Attrs([Attr("address","0x99C"), +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(67, "%00000043"), Attrs([Attr("address","0x9A0"), +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(72, "%00000048"), Attrs([Attr("address","0x9A0"), +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(76, "%0000004c"), Attrs([Attr("address","0x9A0"), +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(81, "%00000051"), +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_032, "@_init"), +(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_036, "@_init"), Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D8")]), - "_init", Args([Arg(Tid(2_105, "%00000839"), + "_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_795, "@_init"), +LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_798, "@_init"), Attrs([Attr("address","0x6D8")]), Phis([]), -Defs([Def(Tid(1_801, "%00000709"), Attrs([Attr("address","0x6DC"), +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_807, "%0000070f"), Attrs([Attr("address","0x6DC"), +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_813, "%00000715"), Attrs([Attr("address","0x6DC"), +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_817, "%00000719"), Attrs([Attr("address","0x6DC"), +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_823, "%0000071f"), +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_828, "%00000724"), + 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_830, "%00000726"), + 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_037, "@call_weak_fn")),Direct(Tid(1_832, "%00000728"))))])), -Blk(Tid(1_832, "%00000728"), Attrs([Attr("address","0x6E8")]), Phis([]), -Defs([Def(Tid(1_837, "%0000072d"), Attrs([Attr("address","0x6E8"), +(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_842, "%00000732"), Attrs([Attr("address","0x6E8"), +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_846, "%00000736"), Attrs([Attr("address","0x6E8"), +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_851, "%0000073b"), +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_033, "@_start"), +(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_106, "%0000083a"), +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(853, "@_start"), - Attrs([Attr("address","0x880")]), Phis([]), Defs([Def(Tid(858, "%0000035a"), +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(863, "%0000035f"), + 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(869, "%00000365"), + 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(876, "%0000036c"), + 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(882, "%00000372"), Attrs([Attr("address","0x894"), +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(888, "%00000378"), +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(893, "%0000037d"), - Attrs([Attr("address","0x89C"), Attr("insn","adrp x0, #0x1f000")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(900, "%00000384"), - Attrs([Attr("address","0x8A0"), Attr("insn","ldr x0, [x0, #0xfd8]")]), + 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(4056,64)),LittleEndian(),64)), -Def(Tid(905, "%00000389"), Attrs([Attr("address","0x8A4"), +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(910, "%0000038e"), Attrs([Attr("address","0x8A8"), +Def(Tid(912, "%00000390"), Attrs([Attr("address","0x8A8"), Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(915, "%00000393"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x17c")]), Var("R30",Imm(64)), Int(2224,64))]), -Jmps([Call(Tid(918, "%00000396"), Attrs([Attr("address","0x8AC"), -Attr("insn","bl #-0x17c")]), Int(1,1), -(Direct(Tid(2_030, "@__libc_start_main")),Direct(Tid(920, "%00000398"))))])), -Blk(Tid(920, "%00000398"), Attrs([Attr("address","0x8B0")]), Phis([]), -Defs([Def(Tid(923, "%0000039b"), Attrs([Attr("address","0x8B0"), +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(926, "%0000039e"), Attrs([Attr("address","0x8B0"), +Jmps([Call(Tid(928, "%000003a0"), Attrs([Attr("address","0x8B0"), Attr("insn","bl #-0x130")]), Int(1,1), -(Direct(Tid(2_036, "@abort")),Direct(Tid(2_089, "%00000829"))))])), +(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_037, "@call_weak_fn")),))]))])), Sub(Tid(2_036, "@abort"), +(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(924, "@abort"), Attrs([Attr("address","0x780")]), Phis([]), -Defs([Def(Tid(1_705, "%000006a9"), Attrs([Attr("address","0x780"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_712, "%000006b0"), 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_718, "%000006b6"), 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_723, "%000006bb"), +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_037, "@call_weak_fn"), +(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_107, "%0000083b"), + "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(928, "@call_weak_fn"), - Attrs([Attr("address","0x8B4")]), Phis([]), Defs([Def(Tid(931, "%000003a3"), - Attrs([Attr("address","0x8B4"), Attr("insn","adrp x0, #0x1f000")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(938, "%000003aa"), - Attrs([Attr("address","0x8B8"), Attr("insn","ldr x0, [x0, #0xfd0]")]), +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(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(944, "%000003b0"), Attrs([Attr("address","0x8BC"), +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(942, "%000003ae"))), Goto(Tid(2_091, "%0000082b"), Attrs([]), - Int(1,1), Direct(Tid(1_293, "%0000050d")))])), Blk(Tid(942, "%000003ae"), +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(950, "%000003b6"), Attrs([Attr("address","0x8C4"), +Jmps([Call(Tid(952, "%000003b8"), Attrs([Attr("address","0x8C4"), Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_293, "%0000050d"), Attrs([Attr("address","0x8C0")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_296, "%00000510"), Attrs([Attr("address","0x8C0"), +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_294, "@__gmon_start__")))])), Blk(Tid(1_294, "@__gmon_start__"), +Direct(Tid(1_297, "@__gmon_start__")))])), Blk(Tid(1_297, "@__gmon_start__"), Attrs([Attr("address","0x770")]), Phis([]), -Defs([Def(Tid(1_683, "%00000693"), Attrs([Attr("address","0x770"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_690, "%0000069a"), 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_696, "%000006a0"), 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_701, "%000006a5"), +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_039, "@deregister_tm_clones"), +Sub(Tid(2_043, "@deregister_tm_clones"), Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x8D0")]), - "deregister_tm_clones", Args([Arg(Tid(2_108, "%0000083c"), + "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(956, "@deregister_tm_clones"), - Attrs([Attr("address","0x8D0")]), Phis([]), Defs([Def(Tid(959, "%000003bf"), - Attrs([Attr("address","0x8D0"), Attr("insn","adrp x0, #0x20000")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(965, "%000003c5"), - Attrs([Attr("address","0x8D4"), Attr("insn","add x0, x0, #0x70")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(112,64))), -Def(Tid(970, "%000003ca"), Attrs([Attr("address","0x8D8"), -Attr("insn","adrp x1, #0x20000")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(976, "%000003d0"), Attrs([Attr("address","0x8DC"), -Attr("insn","add x1, x1, #0x70")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(112,64))), Def(Tid(982, "%000003d6"), +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(987, "%000003db"), + 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(993, "%000003e1"), Attrs([Attr("address","0x8E0"), +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(999, "%000003e7"), Attrs([Attr("address","0x8E0"), +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_003, "%000003eb"), Attrs([Attr("address","0x8E0"), +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_007, "%000003ef"), Attrs([Attr("address","0x8E0"), +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_013, "%000003f5"), Attrs([Attr("address","0x8E4"), +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_011, "%000003f3"))), Goto(Tid(2_092, "%0000082c"), Attrs([]), - Int(1,1), Direct(Tid(1_263, "%000004ef")))])), Blk(Tid(1_263, "%000004ef"), +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_266, "%000004f2"), Attrs([Attr("address","0x8E8"), -Attr("insn","adrp x1, #0x1f000")]), Var("R1",Imm(64)), Int(126976,64)), -Def(Tid(1_273, "%000004f9"), Attrs([Attr("address","0x8EC"), -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_278, "%000004fe"), Attrs([Attr("address","0x8F0"), +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_011, "%000003f3"))), Goto(Tid(2_093, "%0000082d"), Attrs([]), - Int(1,1), Direct(Tid(1_282, "%00000502")))])), Blk(Tid(1_011, "%000003f3"), +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_019, "%000003fb"), Attrs([Attr("address","0x8FC"), +Jmps([Call(Tid(1_021, "%000003fd"), Attrs([Attr("address","0x8FC"), Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_282, "%00000502"), Attrs([Attr("address","0x8F4")]), Phis([]), -Defs([Def(Tid(1_286, "%00000506"), Attrs([Attr("address","0x8F4"), +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_291, "%0000050b"), Attrs([Attr("address","0x8F8"), +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_042, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x990")]), "frame_dummy", Args([Arg(Tid(2_109, "%0000083d"), +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_170, "@frame_dummy"), +LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_173, "@frame_dummy"), Attrs([Attr("address","0x990")]), Phis([]), Defs([]), -Jmps([Call(Tid(1_172, "%00000494"), Attrs([Attr("address","0x990"), +Jmps([Call(Tid(1_175, "%00000497"), Attrs([Attr("address","0x990"), Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(2_049, "@register_tm_clones")),))]))])), Sub(Tid(2_043, "@free"), +(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_110, "%0000083e"), +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(774, "@free"), Attrs([Attr("address","0x7A0")]), - Phis([]), Defs([Def(Tid(1_749, "%000006d5"), Attrs([Attr("address","0x7A0"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_756, "%000006dc"), 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_762, "%000006e2"), 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_767, "%000006e7"), +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_044, "@main"), +(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_111, "%0000083f"), +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_112, "%00000840"), +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_113, "%00000841"), +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(553, "@main"), - Attrs([Attr("address","0x7C0")]), Phis([]), Defs([Def(Tid(557, "%0000022d"), +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(563, "%00000233"), Attrs([Attr("address","0x7C0"), +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(569, "%00000239"), Attrs([Attr("address","0x7C0"), +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(573, "%0000023d"), Attrs([Attr("address","0x7C0"), +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(578, "%00000242"), +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(584, "%00000248"), + 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(590, "%0000024e"), + 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(596, "%00000254"), Attrs([Attr("address","0x7CC"), +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(602, "%0000025a"), Attrs([Attr("address","0x7CC"), +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(607, "%0000025f"), Attrs([Attr("address","0x7D0"), -Attr("insn","adrp x20, #0x20000")]), Var("R20",Imm(64)), Int(131072,64)), -Def(Tid(615, "%00000267"), Attrs([Attr("address","0x7D4"), +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(620, "%0000026c"), Attrs([Attr("address","0x7D8"), +Def(Tid(619, "%0000026b"), Attrs([Attr("address","0x7D8"), Attr("insn","bl #-0x88")]), Var("R30",Imm(64)), Int(2012,64))]), -Jmps([Call(Tid(623, "%0000026f"), Attrs([Attr("address","0x7D8"), +Jmps([Call(Tid(622, "%0000026e"), Attrs([Attr("address","0x7D8"), Attr("insn","bl #-0x88")]), Int(1,1), -(Direct(Tid(2_045, "@malloc")),Direct(Tid(625, "%00000271"))))])), -Blk(Tid(625, "%00000271"), Attrs([Attr("address","0x7DC")]), Phis([]), -Defs([Def(Tid(628, "%00000274"), Attrs([Attr("address","0x7DC"), -Attr("insn","adrp x21, #0x20000")]), Var("R21",Imm(64)), Int(131072,64)), -Def(Tid(634, "%0000027a"), Attrs([Attr("address","0x7E0"), -Attr("insn","add x21, x21, #0x60")]), Var("R21",Imm(64)), -PLUS(Var("R21",Imm(64)),Int(96,64))), Def(Tid(640, "%00000280"), +(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(646, "%00000286"), + 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(654, "%0000028e"), - Attrs([Attr("address","0x7EC"), Attr("insn","str x19, [x20, #0x78]")]), + 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(120,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(659, "%00000293"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xd0")]), Var("R30",Imm(64)), Int(2036,64))]), -Jmps([Call(Tid(662, "%00000296"), Attrs([Attr("address","0x7F0"), -Attr("insn","bl #-0xd0")]), Int(1,1), -(Direct(Tid(2_052, "@strlen")),Direct(Tid(664, "%00000298"))))])), -Blk(Tid(664, "%00000298"), Attrs([Attr("address","0x7F4")]), Phis([]), -Defs([Def(Tid(668, "%0000029c"), Attrs([Attr("address","0x7F4"), +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(674, "%000002a2"), Attrs([Attr("address","0x7F8"), +Def(Tid(673, "%000002a1"), Attrs([Attr("address","0x7F8"), Attr("insn","mov x2, x0")]), Var("R2",Imm(64)), Var("R0",Imm(64))), -Def(Tid(680, "%000002a8"), Attrs([Attr("address","0x7FC"), +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(685, "%000002ad"), Attrs([Attr("address","0x800"), -Attr("insn","bl #-0xf0")]), Var("R30",Imm(64)), Int(2052,64))]), -Jmps([Call(Tid(688, "%000002b0"), Attrs([Attr("address","0x800"), -Attr("insn","bl #-0xf0")]), Int(1,1), -(Direct(Tid(2_046, "@memcpy")),Direct(Tid(690, "%000002b2"))))])), -Blk(Tid(690, "%000002b2"), Attrs([Attr("address","0x804")]), Phis([]), -Defs([Def(Tid(694, "%000002b6"), Attrs([Attr("address","0x804"), +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(699, "%000002bb"), Attrs([Attr("address","0x808"), -Attr("insn","bl #-0x78")]), Var("R30",Imm(64)), Int(2060,64))]), -Jmps([Call(Tid(702, "%000002be"), Attrs([Attr("address","0x808"), -Attr("insn","bl #-0x78")]), Int(1,1), -(Direct(Tid(2_048, "@puts")),Direct(Tid(704, "%000002c0"))))])), -Blk(Tid(704, "%000002c0"), Attrs([Attr("address","0x80C")]), Phis([]), -Defs([Def(Tid(709, "%000002c5"), Attrs([Attr("address","0x80C"), -Attr("insn","ldr x0, [x20, #0x78]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R20",Imm(64)),Int(120,64)),LittleEndian(),64)), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x810"), +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(723, "%000002d3"), Attrs([Attr("address","0x814"), -Attr("insn","ldr x19, [x20, #0x78]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R20",Imm(64)),Int(120,64)),LittleEndian(),64)), -Def(Tid(729, "%000002d9"), Attrs([Attr("address","0x818"), +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(734, "%000002de"), Attrs([Attr("address","0x81C"), -Attr("insn","bl #-0xfc")]), Var("R30",Imm(64)), Int(2080,64))]), -Jmps([Call(Tid(736, "%000002e0"), Attrs([Attr("address","0x81C"), -Attr("insn","bl #-0xfc")]), Int(1,1), -(Direct(Tid(2_052, "@strlen")),Direct(Tid(738, "%000002e2"))))])), -Blk(Tid(738, "%000002e2"), Attrs([Attr("address","0x820")]), Phis([]), -Defs([Def(Tid(741, "%000002e5"), Attrs([Attr("address","0x820"), +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(747, "%000002eb"), Attrs([Attr("address","0x824"), +Def(Tid(751, "%000002ef"), Attrs([Attr("address","0x828"), Attr("insn","mov x2, x0")]), Var("R2",Imm(64)), Var("R0",Imm(64))), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x828"), +Def(Tid(757, "%000002f5"), Attrs([Attr("address","0x82C"), Attr("insn","mov x0, x19")]), Var("R0",Imm(64)), Var("R19",Imm(64))), -Def(Tid(758, "%000002f6"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0xcc")]), Var("R30",Imm(64)), Int(2096,64))]), -Jmps([Call(Tid(761, "%000002f9"), Attrs([Attr("address","0x82C"), -Attr("insn","bl #-0xcc")]), Int(1,1), -(Direct(Tid(2_047, "@memset")),Direct(Tid(763, "%000002fb"))))])), -Blk(Tid(763, "%000002fb"), Attrs([Attr("address","0x830")]), Phis([]), -Defs([Def(Tid(768, "%00000300"), Attrs([Attr("address","0x830"), -Attr("insn","ldr x0, [x20, #0x78]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R20",Imm(64)),Int(120,64)),LittleEndian(),64)), -Def(Tid(773, "%00000305"), Attrs([Attr("address","0x834"), -Attr("insn","bl #-0x94")]), Var("R30",Imm(64)), Int(2104,64))]), -Jmps([Call(Tid(776, "%00000308"), Attrs([Attr("address","0x834"), -Attr("insn","bl #-0x94")]), Int(1,1), -(Direct(Tid(2_043, "@free")),Direct(Tid(778, "%0000030a"))))])), -Blk(Tid(778, "%0000030a"), Attrs([Attr("address","0x838")]), Phis([]), -Defs([Def(Tid(782, "%0000030e"), Attrs([Attr("address","0x838"), +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(787, "%00000313"), - Attrs([Attr("address","0x838"), Attr("insn","ldp x19, x20, [sp, #0x10]")]), +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(792, "%00000318"), Attrs([Attr("address","0x838"), +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(797, "%0000031d"), Attrs([Attr("address","0x83C"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(804, "%00000324"), Attrs([Attr("address","0x840"), +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(811, "%0000032b"), Attrs([Attr("address","0x844"), +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(816, "%00000330"), Attrs([Attr("address","0x844"), +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(820, "%00000334"), Attrs([Attr("address","0x844"), +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(825, "%00000339"), - Attrs([Attr("address","0x848"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(2_045, "@malloc"), +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_114, "%00000842"), Attrs([Attr("alloc-size","()"), + 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_115, "%00000843"), +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(621, "@malloc"), Attrs([Attr("address","0x750")]), Phis([]), -Defs([Def(Tid(1_639, "%00000667"), Attrs([Attr("address","0x750"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_646, "%0000066e"), 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_652, "%00000674"), 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_657, "%00000679"), +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_046, "@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_116, "%00000844"), 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_117, "%00000845"), - 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_118, "%00000846"), 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_119, "%00000847"), 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(686, "@memcpy"), Attrs([Attr("address","0x710")]), Phis([]), -Defs([Def(Tid(1_551, "%0000060f"), Attrs([Attr("address","0x710"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_558, "%00000616"), 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_564, "%0000061c"), Attrs([Attr("address","0x718"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_569, "%00000621"), - Attrs([Attr("address","0x71C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(2_047, "@memset"), +(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_120, "%00000848"), Attrs([Attr("nonnull","()"), + 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_121, "%00000849"), +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_122, "%0000084a"), +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_123, "%0000084b"), Attrs([Attr("c.layout","*[ : 8]"), +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(759, "@memset"), Attrs([Attr("address","0x760")]), Phis([]), -Defs([Def(Tid(1_661, "%0000067d"), Attrs([Attr("address","0x760"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_668, "%00000684"), 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_674, "%0000068a"), 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_679, "%0000068f"), +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_048, "@puts"), +(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_124, "%0000084c"), Attrs([Attr("c.layout","*[char : 8]"), + 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_125, "%0000084d"), Attrs([Attr("c.layout","[signed : 32]"), +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(700, "@puts"), Attrs([Attr("address","0x790")]), Phis([]), -Defs([Def(Tid(1_727, "%000006bf"), Attrs([Attr("address","0x790"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_734, "%000006c6"), 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_740, "%000006cc"), 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_745, "%000006d1"), +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_049, "@register_tm_clones"), +Sub(Tid(2_052, "@register_tm_clones"), Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x900")]), - "register_tm_clones", Args([Arg(Tid(2_126, "%0000084e"), + "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_021, "@register_tm_clones"), +Blks([Blk(Tid(1_023, "@register_tm_clones"), Attrs([Attr("address","0x900")]), Phis([]), -Defs([Def(Tid(1_024, "%00000400"), Attrs([Attr("address","0x900"), -Attr("insn","adrp x0, #0x20000")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(1_030, "%00000406"), Attrs([Attr("address","0x904"), -Attr("insn","add x0, x0, #0x70")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(112,64))), Def(Tid(1_035, "%0000040b"), - Attrs([Attr("address","0x908"), Attr("insn","adrp x1, #0x20000")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(1_041, "%00000411"), - Attrs([Attr("address","0x90C"), Attr("insn","add x1, x1, #0x70")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(112,64))), -Def(Tid(1_048, "%00000418"), Attrs([Attr("address","0x910"), +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_054, "%0000041e"), Attrs([Attr("address","0x914"), +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_061, "%00000425"), Attrs([Attr("address","0x918"), +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_067, "%0000042b"), Attrs([Attr("address","0x91C"), +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_073, "%00000431"), Attrs([Attr("address","0x920"), +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_071, "%0000042f"))), Goto(Tid(2_094, "%0000082e"), Attrs([]), - Int(1,1), Direct(Tid(1_233, "%000004d1")))])), Blk(Tid(1_233, "%000004d1"), +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_236, "%000004d4"), Attrs([Attr("address","0x924"), -Attr("insn","adrp x2, #0x1f000")]), Var("R2",Imm(64)), Int(126976,64)), -Def(Tid(1_243, "%000004db"), Attrs([Attr("address","0x928"), -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","0x92C"), +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_071, "%0000042f"))), Goto(Tid(2_095, "%0000082f"), Attrs([]), - Int(1,1), Direct(Tid(1_252, "%000004e4")))])), Blk(Tid(1_071, "%0000042f"), +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_079, "%00000437"), Attrs([Attr("address","0x938"), +Jmps([Call(Tid(1_081, "%00000439"), Attrs([Attr("address","0x938"), Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x930")]), Phis([]), -Defs([Def(Tid(1_256, "%000004e8"), Attrs([Attr("address","0x930"), +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_261, "%000004ed"), Attrs([Attr("address","0x934"), +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_052, "@strlen"), +Sub(Tid(2_055, "@strlen"), Attrs([Attr("c.proto","unsigned long (*)( const char* s)"), -Attr("pure","()"), Attr("address","0x720"), Attr("stub","()")]), "strlen", - Args([Arg(Tid(2_127, "%0000084f"), Attrs([Attr("nonnull","()"), +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_128, "%00000850"), +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(660, "@strlen"), - Attrs([Attr("address","0x720")]), Phis([]), -Defs([Def(Tid(1_573, "%00000625"), Attrs([Attr("address","0x720"), -Attr("insn","adrp x16, #0x20000")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_580, "%0000062c"), 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_586, "%00000632"), 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_591, "%00000637"), - Attrs([Attr("address","0x72C"), Attr("insn","br x17")]), Int(1,1), +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/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir b/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir index a2ee8b549..8a326f5f7 100644 --- a/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir +++ b/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.bir @@ -1,350 +1,348 @@ 00000830: program -000007e9: sub __cxa_finalize(__cxa_finalize_result) +000007ec: sub __cxa_finalize(__cxa_finalize_result) 00000831: __cxa_finalize_result :: out u32 = low:32[R0] -000004cd: -00000651: R16 := 0x20000 -00000658: R17 := mem[R16 + 0x18, el]:u64 -0000065e: R16 := R16 + 0x18 -00000663: call R17 with noreturn +000004d0: +0000063e: R16 := 0x10000 +00000645: R17 := mem[R16 + 0xF90, el]:u64 +0000064b: R16 := R16 + 0xF90 +00000650: call R17 with noreturn -000007ea: sub __do_global_dtors_aux(__do_global_dtors_aux_result) +000007ed: sub __do_global_dtors_aux(__do_global_dtors_aux_result) 00000832: __do_global_dtors_aux_result :: out u32 = low:32[R0] -0000043b: -0000043f: #6 := R31 - 0x20 -00000445: mem := mem with [#6, el]:u64 <- R29 -0000044b: mem := mem with [#6 + 8, el]:u64 <- R30 -0000044f: R31 := #6 -00000455: R29 := R31 -0000045d: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000462: R19 := 0x20000 -00000469: R0 := pad:64[mem[R19 + 0x70]] -0000046f: when 0:0[R0] goto %0000046d -00000826: goto %00000496 - -00000496: -00000499: R0 := 0x1F000 -000004a0: R0 := mem[R0 + 0xFC8, el]:u64 -000004a6: when R0 = 0 goto %000004a4 -00000827: goto %000004bd - -000004bd: -000004c0: R0 := 0x20000 -000004c7: R0 := mem[R0 + 0x58, el]:u64 -000004cc: R30 := 0x970 -000004cf: call @__cxa_finalize with return %000004a4 - -000004a4: -000004ac: R30 := 0x974 -000004ae: call @deregister_tm_clones with return %000004b0 - -000004b0: -000004b3: R0 := 1 -000004bb: mem := mem with [R19 + 0x70] <- 7:0[R0] -00000828: goto %0000046d - -0000046d: -00000477: R19 := mem[R31 + 0x10, el]:u64 -0000047e: R29 := mem[R31, el]:u64 -00000483: R30 := mem[R31 + 8, el]:u64 -00000487: R31 := R31 + 0x20 -0000048c: call R30 with noreturn - -000007ee: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) +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] -00000394: -0000063b: R16 := 0x20000 -00000642: R17 := mem[R16 + 0x10, el]:u64 -00000648: R16 := R16 + 0x10 -0000064d: call R17 with noreturn - -000007ef: sub _fini(_fini_result) -00000838: _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 - -000007f0: sub _init(_init_result) -00000839: _init_result :: out u32 = low:32[R0] - -00000703: -00000709: #8 := R31 - 0x10 -0000070f: mem := mem with [#8, el]:u64 <- R29 -00000715: mem := mem with [#8 + 8, el]:u64 <- R30 -00000719: R31 := #8 -0000071f: R29 := R31 -00000724: R30 := 0x6E8 -00000726: call @call_weak_fn with return %00000728 - -00000728: -0000072d: R29 := mem[R31, el]:u64 -00000732: R30 := mem[R31 + 8, el]:u64 -00000736: R31 := R31 + 0x10 -0000073b: call R30 with noreturn - -000007f1: sub _start(_start_result) -0000083a: _start_result :: out u32 = low:32[R0] - -00000355: -0000035a: R29 := 0 -0000035f: R30 := 0 -00000365: R5 := R0 -0000036c: R1 := mem[R31, el]:u64 -00000372: R2 := R31 + 8 -00000378: R6 := R31 -0000037d: R0 := 0x1F000 -00000384: R0 := mem[R0 + 0xFD8, el]:u64 -00000389: R3 := 0 -0000038e: R4 := 0 -00000393: R30 := 0x8B0 -00000396: call @__libc_start_main with return %00000398 - -00000398: -0000039b: R30 := 0x8B4 -0000039e: call @abort with return %00000829 +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 -000007f4: sub abort() - - -0000039c: -000006a9: R16 := 0x20000 -000006b0: R17 := mem[R16 + 0x38, el]:u64 -000006b6: R16 := R16 + 0x38 -000006bb: call R17 with noreturn - -000007f5: sub call_weak_fn(call_weak_fn_result) -0000083b: call_weak_fn_result :: out u32 = low:32[R0] - -000003a0: -000003a3: R0 := 0x1F000 -000003aa: R0 := mem[R0 + 0xFD0, el]:u64 -000003b0: when R0 = 0 goto %000003ae -0000082b: goto %0000050d - -000003ae: -000003b6: call R30 with noreturn - -0000050d: -00000510: goto @__gmon_start__ - -0000050e: -00000693: R16 := 0x20000 -0000069a: R17 := mem[R16 + 0x30, el]:u64 -000006a0: R16 := R16 + 0x30 -000006a5: call R17 with noreturn - -000007f7: sub deregister_tm_clones(deregister_tm_clones_result) -0000083c: deregister_tm_clones_result :: out u32 = low:32[R0] - -000003bc: -000003bf: R0 := 0x20000 -000003c5: R0 := R0 + 0x70 -000003ca: R1 := 0x20000 -000003d0: R1 := R1 + 0x70 -000003d6: #4 := ~R0 -000003db: #5 := R1 + ~R0 -000003e1: VF := extend:65[#5 + 1] <> extend:65[R1] + extend:65[#4] + 1 -000003e7: CF := pad:65[#5 + 1] <> pad:65[R1] + pad:65[#4] + 1 -000003eb: ZF := #5 + 1 = 0 -000003ef: NF := 63:63[#5 + 1] -000003f5: when ZF goto %000003f3 -0000082c: goto %000004ef - -000004ef: -000004f2: R1 := 0x1F000 -000004f9: R1 := mem[R1 + 0xFC0, el]:u64 -000004fe: when R1 = 0 goto %000003f3 -0000082d: goto %00000502 - -000003f3: -000003fb: call R30 with noreturn - -00000502: -00000506: R16 := R1 -0000050b: call R16 with noreturn - -000007fa: sub frame_dummy(frame_dummy_result) -0000083d: frame_dummy_result :: out u32 = low:32[R0] - -00000492: -00000494: call @register_tm_clones with noreturn - -000007fb: sub free(free_ptr) -0000083e: free_ptr :: in out u64 = R0 - -00000306: -000006d5: R16 := 0x20000 -000006dc: R17 := mem[R16 + 0x48, el]:u64 -000006e2: R16 := R16 + 0x48 -000006e7: call R17 with noreturn - -000007fc: sub main(main_argc, main_argv, main_result) -0000083f: main_argc :: in u32 = low:32[R0] -00000840: main_argv :: in out u64 = R1 -00000841: main_result :: out u32 = low:32[R0] - -00000229: -0000022d: #1 := R31 - 0x30 -00000233: mem := mem with [#1, el]:u64 <- R29 -00000239: mem := mem with [#1 + 8, el]:u64 <- R30 -0000023d: R31 := #1 -00000242: R0 := 0xB -00000248: R29 := R31 -0000024e: #2 := R31 + 0x10 -00000254: mem := mem with [#2, el]:u64 <- R19 -0000025a: mem := mem with [#2 + 8, el]:u64 <- R20 -0000025f: R20 := 0x20000 -00000267: mem := mem with [R31 + 0x20, el]:u64 <- R21 -0000026c: R30 := 0x7DC -0000026f: call @malloc with return %00000271 - -00000271: -00000274: R21 := 0x20000 -0000027a: R21 := R21 + 0x60 -00000280: R19 := R0 -00000286: R0 := R21 -0000028e: mem := mem with [R20 + 0x78, el]:u64 <- R19 -00000293: R30 := 0x7F4 -00000296: call @strlen with return %00000298 - -00000298: -0000029c: R1 := R21 -000002a2: R2 := R0 -000002a8: R0 := R19 -000002ad: R30 := 0x804 -000002b0: call @memcpy with return %000002b2 +000007f8: sub abort() -000002b2: -000002b6: R0 := R19 -000002bb: R30 := 0x80C -000002be: call @puts with return %000002c0 -000002c0: -000002c5: R0 := mem[R20 + 0x78, el]:u64 -000002cc: mem := mem with [R0 + 4] <- 0 -000002d3: R19 := mem[R20 + 0x78, el]:u64 -000002d9: R0 := R19 -000002de: R30 := 0x820 -000002e0: call @strlen with return %000002e2 - -000002e2: -000002e5: R1 := 1 -000002eb: R2 := R0 -000002f1: R0 := R19 -000002f6: R30 := 0x830 -000002f9: call @memset with return %000002fb +0000039e: +000006ac: R16 := 0x10000 +000006b3: R17 := mem[R16 + 0xFB8, el]:u64 +000006b9: R16 := R16 + 0xFB8 +000006be: call R17 with noreturn -000002fb: -00000300: R0 := mem[R20 + 0x78, el]:u64 -00000305: R30 := 0x838 -00000308: call @free with return %0000030a +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: -0000030e: #3 := R31 + 0x10 -00000313: R19 := mem[#3, el]:u64 -00000318: R20 := mem[#3 + 8, el]:u64 -0000031d: R0 := 0 -00000324: R21 := mem[R31 + 0x20, el]:u64 -0000032b: R29 := mem[R31, el]:u64 -00000330: R30 := mem[R31 + 8, el]:u64 -00000334: R31 := R31 + 0x30 -00000339: call R30 with noreturn - -000007fd: sub malloc(malloc_size, malloc_result) -00000842: malloc_size :: in u64 = R0 -00000843: malloc_result :: out u64 = R0 - -0000026d: -00000667: R16 := 0x20000 -0000066e: R17 := mem[R16 + 0x20, el]:u64 -00000674: R16 := R16 + 0x20 -00000679: call R17 with noreturn - -000007fe: sub memcpy(memcpy_dst, memcpy_src, memcpy_n, memcpy_result) -00000844: memcpy_dst :: in out u64 = R0 -00000845: memcpy_src :: in out u64 = R1 -00000846: memcpy_n :: in u64 = R2 -00000847: memcpy_result :: out u64 = R0 - -000002ae: -0000060f: R16 := 0x20000 -00000616: R17 := mem[R16, el]:u64 -0000061c: R16 := R16 -00000621: call R17 with noreturn - -000007ff: sub memset(memset_buf, memset_c, memset_n, memset_result) -00000848: memset_buf :: in out u64 = R0 -00000849: memset_c :: in u32 = low:32[R1] -0000084a: memset_n :: in u64 = R2 -0000084b: memset_result :: out u64 = R0 - -000002f7: -0000067d: R16 := 0x20000 -00000684: R17 := mem[R16 + 0x28, el]:u64 -0000068a: R16 := R16 + 0x28 -0000068f: call R17 with noreturn - -00000800: sub puts(puts_s, puts_result) -0000084c: puts_s :: in u64 = R0 -0000084d: puts_result :: out u32 = low:32[R0] - -000002bc: -000006bf: R16 := 0x20000 -000006c6: R17 := mem[R16 + 0x40, el]:u64 -000006cc: R16 := R16 + 0x40 -000006d1: call R17 with noreturn - -00000801: sub register_tm_clones(register_tm_clones_result) -0000084e: register_tm_clones_result :: out u32 = low:32[R0] - -000003fd: -00000400: R0 := 0x20000 -00000406: R0 := R0 + 0x70 -0000040b: R1 := 0x20000 -00000411: R1 := R1 + 0x70 -00000418: R1 := R1 + ~R0 + 1 -0000041e: R2 := 0.63:63[R1] -00000425: R1 := R2 + (R1 ~>> 3) -0000042b: R1 := extend:64[63:1[R1]] -00000431: when R1 = 0 goto %0000042f -0000082e: goto %000004d1 - -000004d1: -000004d4: R2 := 0x1F000 -000004db: R2 := mem[R2 + 0xFE0, el]:u64 -000004e0: when R2 = 0 goto %0000042f -0000082f: goto %000004e4 - -0000042f: -00000437: call R30 with noreturn - -000004e4: -000004e8: R16 := R2 -000004ed: call R16 with noreturn - -00000804: sub strlen(strlen_s, strlen_result) -0000084f: strlen_s :: in u64 = R0 -00000850: strlen_result :: out u64 = R0 - -00000294: -00000625: R16 := 0x20000 -0000062c: R17 := mem[R16 + 8, el]:u64 -00000632: R16 := R16 + 8 -00000637: call R17 with noreturn +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/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts b/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts new file mode 100644 index 000000000..4b113288f Binary files /dev/null and b/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.gts differ diff --git a/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf b/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf index 52360c68e..dd30b36f8 100644 --- a/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf +++ b/src/test/incorrect/malloc_memcpy_strlen_memset_free/gcc_O2/malloc_memcpy_strlen_memset_free.relf @@ -1,38 +1,38 @@ Relocation section '.rela.dyn' at offset 0x528 contains 8 entries: Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdc8 0000000000000403 R_AARCH64_RELATIVE 990 -000000000001fdd0 0000000000000403 R_AARCH64_RELATIVE 940 -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 7c0 -0000000000020058 0000000000000403 R_AARCH64_RELATIVE 20058 -000000000001ffc0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000700000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000a00000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000e00000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 +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 -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 memcpy@GLIBC_2.17 + 0 -0000000000020008 0000000400000402 R_AARCH64_JUMP_SLOT 0000000000000000 strlen@GLIBC_2.17 + 0 -0000000000020010 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020020 0000000800000402 R_AARCH64_JUMP_SLOT 0000000000000000 malloc@GLIBC_2.17 + 0 -0000000000020028 0000000900000402 R_AARCH64_JUMP_SLOT 0000000000000000 memset@GLIBC_2.17 + 0 -0000000000020030 0000000a00000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020038 0000000b00000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 -0000000000020040 0000000c00000402 R_AARCH64_JUMP_SLOT 0000000000000000 puts@GLIBC_2.17 + 0 -0000000000020048 0000000d00000402 R_AARCH64_JUMP_SLOT 0000000000000000 free@GLIBC_2.17 + 0 +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: 0000000000020050 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) + 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__ @@ -41,7 +41,7 @@ Symbol table '.dynsym' contains 15 entries: 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 98 entries: +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 @@ -50,7 +50,7 @@ Symbol table '.symtab' contains 98 entries: 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 + 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 @@ -61,83 +61,82 @@ Symbol table '.symtab' contains 98 entries: 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: 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: 0000000000020050 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000020070 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: 0000000000000880 0 NOTYPE LOCAL DEFAULT 13 $x - 30: 00000000000009fc 0 NOTYPE LOCAL DEFAULT 17 $d - 31: 00000000000009a8 0 NOTYPE LOCAL DEFAULT 15 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 33: 00000000000008b4 0 NOTYPE LOCAL DEFAULT 13 $x - 34: 00000000000008b4 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 35: 00000000000006d8 0 NOTYPE LOCAL DEFAULT 11 $x - 36: 0000000000000994 0 NOTYPE LOCAL DEFAULT 14 $x - 37: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 38: 00000000000006e8 0 NOTYPE LOCAL DEFAULT 11 $x - 39: 00000000000009a0 0 NOTYPE LOCAL DEFAULT 14 $x - 40: 0000000000000000 0 FILE LOCAL DEFAULT ABS malloc_memcpy_strlen_memset_free.c - 41: 00000000000007c0 0 NOTYPE LOCAL DEFAULT 13 $x - 42: 0000000000020060 0 NOTYPE LOCAL DEFAULT 23 $d - 43: 0000000000020078 0 NOTYPE LOCAL DEFAULT 24 $d - 44: 0000000000000a70 0 NOTYPE LOCAL DEFAULT 17 $d - 45: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 46: 00000000000008d0 0 NOTYPE LOCAL DEFAULT 13 $x - 47: 00000000000008d0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 48: 0000000000000900 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 49: 0000000000020058 0 NOTYPE LOCAL DEFAULT 23 $d - 50: 0000000000000940 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 51: 0000000000020070 1 OBJECT LOCAL DEFAULT 24 completed.0 - 52: 000000000001fdd0 0 NOTYPE LOCAL DEFAULT 19 $d - 53: 000000000001fdd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 54: 0000000000000990 0 FUNC LOCAL DEFAULT 13 frame_dummy - 55: 000000000001fdc8 0 NOTYPE LOCAL DEFAULT 18 $d - 56: 000000000001fdc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 57: 0000000000000a10 0 NOTYPE LOCAL DEFAULT 17 $d - 58: 0000000000020070 0 NOTYPE LOCAL DEFAULT 24 $d - 59: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 60: 0000000000000a98 0 NOTYPE LOCAL DEFAULT 17 $d - 61: 0000000000000a98 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 62: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 63: 000000000001fdd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 64: 00000000000009ac 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 65: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 66: 00000000000006f0 0 NOTYPE LOCAL DEFAULT 12 $x - 67: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memcpy@GLIBC_2.17 - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND strlen@GLIBC_2.17 - 69: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 70: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 71: 0000000000020050 0 NOTYPE WEAK DEFAULT 23 data_start - 72: 000000000002006c 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 73: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 74: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 75: 000000000002006c 0 NOTYPE GLOBAL DEFAULT 23 _edata - 76: 0000000000000994 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 0000000000000000 0 FUNC GLOBAL DEFAULT UND malloc@GLIBC_2.17 - 79: 0000000000000000 0 FUNC GLOBAL DEFAULT UND memset@GLIBC_2.17 - 80: 000000000002006b 1 OBJECT GLOBAL DEFAULT 23 password - 81: 0000000000020050 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 82: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 83: 0000000000020058 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 84: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 85: 00000000000009a8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 86: 0000000000000000 0 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.17 - 87: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 24 _end - 88: 0000000000000000 0 FUNC GLOBAL DEFAULT UND free@GLIBC_2.17 - 89: 0000000000000880 52 FUNC GLOBAL DEFAULT 13 _start - 90: 0000000000020078 8 OBJECT GLOBAL DEFAULT 24 buf - 91: 0000000000020080 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 92: 0000000000020060 11 OBJECT GLOBAL DEFAULT 23 stext - 93: 000000000002006c 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 94: 00000000000007c0 140 FUNC GLOBAL DEFAULT 13 main - 95: 0000000000020070 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 96: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 97: 00000000000006d8 0 FUNC GLOBAL HIDDEN 11 _init + 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/nestedifglobal/clang/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/clang/nestedifglobal.gts new file mode 100644 index 000000000..ffb311e74 Binary files /dev/null and b/src/test/incorrect/nestedifglobal/clang/nestedifglobal.gts differ diff --git a/src/test/incorrect/nestedifglobal/clang_no_plt_no_pic/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/clang_no_plt_no_pic/nestedifglobal.gts new file mode 100644 index 000000000..40a151449 Binary files /dev/null and b/src/test/incorrect/nestedifglobal/clang_no_plt_no_pic/nestedifglobal.gts differ diff --git a/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.gts new file mode 100644 index 000000000..84617f238 Binary files /dev/null and b/src/test/incorrect/nestedifglobal/clang_pic/nestedifglobal.gts differ diff --git a/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.gts new file mode 100644 index 000000000..725404406 Binary files /dev/null and b/src/test/incorrect/nestedifglobal/gcc/nestedifglobal.gts differ diff --git a/src/test/incorrect/nestedifglobal/gcc_no_plt_no_pic/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/gcc_no_plt_no_pic/nestedifglobal.gts new file mode 100644 index 000000000..03d8a27c6 Binary files /dev/null and b/src/test/incorrect/nestedifglobal/gcc_no_plt_no_pic/nestedifglobal.gts differ diff --git a/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.gts b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.gts new file mode 100644 index 000000000..73e6d988b Binary files /dev/null and b/src/test/incorrect/nestedifglobal/gcc_pic/nestedifglobal.gts differ diff --git a/src/test/make/lift-directories.mk b/src/test/make/lift-directories.mk index 0a7d2e718..2e9788df5 100644 --- a/src/test/make/lift-directories.mk +++ b/src/test/make/lift-directories.mk @@ -25,11 +25,11 @@ BASIL_FLAGS ?= #BOOGIE_FLAGS=/proverOpt:O:smt.array.extensional=false BOOGIE_FLAGS ?= /useArrayAxioms -LIFT_ARTEFACTS=$(NAME).adt $(NAME).bir $(NAME).relf +LIFT_ARTEFACTS=$(NAME).adt $(NAME).bir $(NAME).relf $(NAME).gts ENABLED_COMPILERS ?= clang clang_O2 clang_pic clang_no_plt_no_pic gcc gcc_O2 gcc_no_plt_no_pic gcc_pic -TARGETS := all verify clean cleanall cleanlift recompile +TARGETS := all verify clean cleanall cleanlift cleanjson cleangts cleantest recompile json gts .PHONY : $(TARGETS) $(ENABLED_COMPILERS) $(TARGETS): $(ENABLED_COMPILERS) diff --git a/src/test/make/lift.mk b/src/test/make/lift.mk index cf1044268..7c9ab52d3 100644 --- a/src/test/make/lift.mk +++ b/src/test/make/lift.mk @@ -2,17 +2,21 @@ # Run from the directory basil/src/test/*/test_case/compilation_variant/ $(LIFT_ARTEFACTS): a.out - $(BAP) a.out -d adt:$(NAME).adt -d bir:$(NAME).bir $(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 ifdef $(SPEC) BASIL_SPECARG = --spec $(SPEC) endif # optional; create basil -$(NAME).bpl: $(LIFT_ARTEFACTS) $(SPEC) $(BASIL) - java -jar $(BASIL) $(BASIL_FLAGS) --adt $(NAME).adt --relf $(NAME).relf -o $(NAME).bpl $(BASIL_SPECARG) +$(NAME)_bap.bpl: $(LIFT_ARTEFACTS) $(SPEC) $(BASIL) + java -jar $(BASIL) $(BASIL_FLAGS) --input $(NAME).adt --relf $(NAME).relf -o $(NAME)_bap.bpl $(BASIL_SPECARG) + +$(NAME)_gtirb.bpl: $(LIFT_ARTEFACTS) $(SPEC) $(BASIL) + java -jar $(BASIL) $(BASIL_FLAGS) --input $(NAME).gts --relf $(NAME).relf -o $(NAME)_gtirb.bpl $(BASIL_SPECARG) .PHONY=$(BASIL) $(BASIL): @@ -23,27 +27,49 @@ $(BASIL): a.out: $(C_SOURCE) $(CC) $(CFLAGS) $(C_SOURCE) -.PHONY=recompile verify clean cleanlift cleanall cleanbin -verify: $(NAME)_result.txt +.PHONY=recompile verify clean cleanlift cleanall cleanbin cleantest cleangts json gts +verify: $(NAME)_bap.bpl $(NAME)_gtirb.bpl recompile: a.out -$(NAME)_result.txt: $(NAME).bpl $(EXTRA_SPEC) - bash -c "time boogie $(NAME).bpl $(EXTRA_SPEC) $(BOOGIE_FLAGS) | tee $(NAME)_result.txt" +gts: a.out + ddisasm a.out --ir $(NAME).gtirb + gtirb-semantics $(NAME).gtirb $(NAME).gts + rm -rf $(NAME).gtirb -cleanall: clean cleanlift cleanbin cleantest +json: + debug-gts.py $(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)_result.txt" + +$(NAME)gtirb_result.txt: $(NAME)_gtirb.bpl $(EXTRA_SPEC) + bash -c "time boogie $(NAME)_gtirb.bpl $(EXTRA_SPEC) $(BOOGIE_FLAGS) | tee $(NAME)_result.txt" + +cleanall: clean cleanlift cleanbin cleantest cleanjson cleantest: rm -rf $(NAME).bpl + rm -rf $(NAME)_bap.bpl + rm -rf $(NAME)_gtirb.bpl rm -rf $(NAME)_result.txt + rm -rf $(NAME)bap_result.txt + rm -rf $(NAME)gtirb_result.txt cleanbin: rm -rf a.out + rm -rf $(NAME).gtirb + +clean: cleanlift cleanbin cleanjson -clean: cleanlift cleanbin +cleanjson: + rm -rf $(NAME).json cleanlift: rm -rf $(NAME).adt rm -rf $(NAME).bir rm -rf $(NAME).relf + rm -rf $(NAME).gts +cleangts: + rm -rf $(NAME).gts \ No newline at end of file diff --git a/src/test/scala/MemoryRegionAnalysisMiscTest.scala b/src/test/scala/MemoryRegionAnalysisMiscTest.scala index 8a71355f4..0bee722cf 100644 --- a/src/test/scala/MemoryRegionAnalysisMiscTest.scala +++ b/src/test/scala/MemoryRegionAnalysisMiscTest.scala @@ -19,7 +19,7 @@ class MemoryRegionAnalysisMiscTest extends AnyFunSuite with OneInstancePerTest { RunUtils.loadAndTranslate( BASILConfig( loading = ILLoadingConfig( - adtFile = examplesPath + s"$name/$name.adt", + inputFile = examplesPath + s"$name/$name.adt", relfFile = examplesPath + s"$name/$name.relf", specFile = None, dumpIL = None, diff --git a/src/test/scala/SystemTests.scala b/src/test/scala/SystemTests.scala index 7a5079c7f..e3b143de7 100644 --- a/src/test/scala/SystemTests.scala +++ b/src/test/scala/SystemTests.scala @@ -10,8 +10,8 @@ import scala.sys.process.* /** Add more tests by simply adding them to the programs directory. Refer to the existing tests for the expected * directory structure and file-name patterns. */ -class SystemTests extends AnyFunSuite { +trait SystemTests extends AnyFunSuite { val testPath = "./src/test/" val correctPath = "./src/test/correct" val correctPrograms: Array[String] = getSubdirectories(correctPath) @@ -28,28 +28,20 @@ class SystemTests extends AnyFunSuite { val testResults: mutable.ArrayBuffer[(String, TestResult)] = mutable.ArrayBuffer() - // get all variations of each program - for (p <- correctPrograms) { - val path = correctPath + "/" + p - val variations = getSubdirectories(path) - variations.foreach(t => - test("correct/" + p + "/" + t) { - runTest(correctPath, p, t, true) - } - ) - } - - for (p <- incorrectPrograms) { - val path = incorrectPath + "/" + p - val variations = getSubdirectories(path) - variations.foreach(t => - test("incorrect/" + p + "/" + t) { - runTest(incorrectPath, p, t, false) - } - ) + def runTests(programs: Array[String], path: String, name: String, shouldVerify: Boolean, useADT: Boolean): Unit = { + // get all variations of each program + for (p <- programs) { + val programPath = path + "/" + p + val variations = getSubdirectories(programPath) + variations.foreach(t => + test(name + "/" + p + "/" + t) { + runTest(path, p, t, shouldVerify, useADT) + } + ) + } } - test("summary") { + def summary(): Unit = { val csv: String = "testCase," + TestResult.csvHeader + System.lineSeparator() + testResults.map(r => s"${r._1},${r._2.toCsv}").mkString(System.lineSeparator()) log(csv, testPath + "testResults.csv") @@ -65,25 +57,24 @@ class SystemTests extends AnyFunSuite { if (verifying.nonEmpty) info(s"Average time to verify: ${verifying.sum / verifying.size}") if (counterExamples.nonEmpty) - info(s"Average time to counterexample: ${counterExamples.sum/ counterExamples.size}") + info(s"Average time to counterexample: ${counterExamples.sum / counterExamples.size}") val summaryHeader = "passedCount,failedCount,verifiedCount,counterexampleCount,timeoutCount,verifyTotalTime,counterexampleTotalTime" val summaryRow = s"$numSuccess,$numFail,$numVerified,${counterExamples.size},$numTimeout,${verifying.sum},${counterExamples.sum}" log(summaryHeader + System.lineSeparator() + summaryRow, testPath + "summary.csv") } - - def runTest(path: String, name: String, variation: String, shouldVerify: Boolean): Unit= { + def runTest(path: String, name: String, variation: String, shouldVerify: Boolean, useADT: Boolean): Unit = { val directoryPath = path + "/" + name + "/" val variationPath = directoryPath + variation + "/" + name val specPath = directoryPath + name + ".spec" - val outPath = variationPath + ".bpl" - val ADTPath = variationPath + ".adt" + val outPath = if useADT then variationPath + "_bap.bpl" else variationPath + "_gtirb.bpl" + val inputPath = if useADT then variationPath + ".adt" else variationPath + ".gts" val RELFPath = variationPath + ".relf" Logger.info(outPath) val timer = PerformanceTimer(s"test $name/$variation") - val args = mutable.ArrayBuffer("--adt", ADTPath, "--relf", RELFPath, "--output", outPath) + val args = mutable.ArrayBuffer("--input", inputPath, "--relf", RELFPath, "--output", outPath) if (File(specPath).exists) args ++= Seq("--spec", specPath) Main.main(args.toArray) @@ -92,24 +83,24 @@ class SystemTests extends AnyFunSuite { val extraSpec = List.from(File(directoryPath).listFiles()).map(_.toString).filter(_.endsWith(".bpl")).filterNot(_.endsWith(outPath)) val boogieResult = (Seq("boogie", "/timeLimit:10", "/printVerifiedProceduresCount:0", "/useArrayAxioms", outPath) ++ extraSpec).!! val verifyTime = timer.checkPoint("verify") - val resultPath = variationPath + "_result.txt" + val resultPath = if useADT then variationPath + "bap_result.txt" else variationPath + "gtirb_result.txt" log(boogieResult, resultPath) val verified = boogieResult.strip().equals("Boogie program verifier finished with 0 errors") - val proveFailed = boogieResult.contains("could not be proved") + val proveFailed = boogieResult.contains("could not be proved") val timedOut = boogieResult.strip() contains "timed out" - def xor(x: Boolean, y:Boolean): Boolean = (x || y) && ! (x && y) + def xor(x: Boolean, y: Boolean): Boolean = (x || y) && !(x && y) - val failureMsg = if timedOut then "SMT Solver timed out" else + val failureMsg = if timedOut then "SMT Solver timed out" else (verified, shouldVerify, xor(verified, proveFailed)) match { - case (true, true, true) => "Test passed" - case (false , false, true) => "Test passed" + case (true, true, true) => "Test passed" + case (false, false, true) => "Test passed" case (_, _, false) => "Prover error: unknown result" case (true, false, true) => "Expected verification failure, but got success." case (false, true, true) => "Expected verification success, but got failure." - } + } - val expectedOutPath = variationPath + ".expected" + val expectedOutPath = if useADT then variationPath + ".expected" else variationPath + "_gtirb.expected" val hasExpected = File(expectedOutPath).exists var matchesExpected = true if (hasExpected) { @@ -120,7 +111,7 @@ class SystemTests extends AnyFunSuite { } else { info("Note: this test has not previously succeeded") } - val passed = !timedOut && (verified == shouldVerify) && (xor(verified , proveFailed)) + val passed = !timedOut && (verified == shouldVerify) && (xor(verified, proveFailed)) val result = TestResult(passed, verified, shouldVerify, hasExpected, timedOut, matchesExpected, translateTime, verifyTime) testResults.append((s"$name/$variation", result)) if (!passed) fail(failureMsg) @@ -152,9 +143,9 @@ class SystemTests extends AnyFunSuite { } /** @param directoryName - * of the parent directory + * of the parent directory * @return - * the names all subdirectories of the given parent directory + * the names all subdirectories of the given parent directory */ def getSubdirectories(directoryName: String): Array[String] = { File(directoryName).listFiles.filter(_.isDirectory).map(_.getName) @@ -166,4 +157,21 @@ class SystemTests extends AnyFunSuite { writer.flush() writer.close() } + +} + +class SystemTestsBAP extends SystemTests { + runTests(correctPrograms, correctPath, "correct", true, true) + runTests(incorrectPrograms, incorrectPath, "incorrect", false, true) + test("summary") { + summary() + } +} + +class SystemTestsGTIRB extends SystemTests { + runTests(correctPrograms, correctPath, "correct", true, false) + runTests(incorrectPrograms, incorrectPath, "incorrect", false, false) + test("summary") { + summary() + } } diff --git a/src/test/scala/ir/InterpreterTests.scala b/src/test/scala/ir/InterpreterTests.scala index 1fd17e823..63ecb2619 100644 --- a/src/test/scala/ir/InterpreterTests.scala +++ b/src/test/scala/ir/InterpreterTests.scala @@ -18,14 +18,13 @@ class InterpreterTests extends AnyFunSuite with BeforeAndAfter { val loading = ILLoadingConfig( - adtFile = s"examples/$name/$name.adt", + inputFile = s"examples/$name/$name.adt", relfFile = s"examples/$name/$name.relf", specFile = None, - dumpIL = None, - mainProcedureName = "main", + dumpIL = None ) - val bapProgram = loadBAP(loading.adtFile) + val bapProgram = loadBAP(loading.inputFile) val (externalFunctions, globals, _, mainAddress) = loadReadELF(loading.relfFile, loading) val IRTranslator = BAPToIR(bapProgram, mainAddress) var IRProgram = IRTranslator.translate diff --git a/src/test/scala/ir/IntrusiveListPublicInterfaceTest.scala b/src/test/scala/ir/IntrusiveListPublicInterfaceTest.scala index 49592975e..ffee4cc4d 100644 --- a/src/test/scala/ir/IntrusiveListPublicInterfaceTest.scala +++ b/src/test/scala/ir/IntrusiveListPublicInterfaceTest.scala @@ -1,8 +1,9 @@ package ir import org.scalatest.funsuite.AnyFunSuite import intrusivelist.{IntrusiveList, IntrusiveListElement} +import scala.collection.mutable -case class Elem(val t: Int) extends IntrusiveListElement[Elem] +class Elem(val t: Int) extends IntrusiveListElement[Elem] class IntrusiveListPublicInterfaceTest extends AnyFunSuite { @@ -49,7 +50,7 @@ class IntrusiveListPublicInterfaceTest extends AnyFunSuite { x.append(Elem(13)) x.append(Elem(14)) - x.foreach(println(_)) +// x.foreach(println(_)) val y = x.head() assert(y.t == 10) @@ -151,6 +152,28 @@ class IntrusiveListPublicInterfaceTest extends AnyFunSuite { assert(it.length == 7) } + test("splitat") { + val l = IntrusiveList[Elem]() + + l.addOne(Elem(1)) + + val e = Elem(15) + val toAdd = List(e,Elem(16),Elem(17)) + + l.addAll(toAdd) + assert(l.size == 4) + assert(l.contains(e)) + + val l2 = l.splitOn(e) + assert(l2.size == 2) + assert(l.size == 2) + assert(l.find(_.t == 1).isDefined) + assert(l.find(_.t == 15).isDefined) + assert(l2.find(_.t == 16).isDefined) + assert(l2.find(_.t == 17).isDefined) + } + + test("addAll") { val l = getSequentialList(3) val toAdd = List(Elem(3),Elem(4),Elem(5)) @@ -161,5 +184,32 @@ class IntrusiveListPublicInterfaceTest extends AnyFunSuite { } } + test("construct") { + val l = getSequentialList(3) + + + val l2 = IntrusiveList.from(l) + assert(l2.size == 3) + + assert(l.forall(x => l2.contains(x))) + + assert (l eq l2) + + val l3 = mutable.ArrayBuffer(Elem(1), Elem(2), Elem(3)) + + val l4 = IntrusiveList.from(l3) + + assert(l3 ne l4) + assert(l3.forall(x => l4.contains(x))) + + assert(l4.size == 3) + + + + + + } + + }