diff --git a/src/main/scala/util/RunUtils.scala b/src/main/scala/util/RunUtils.scala index fc69c8df1..91d0d7fcb 100644 --- a/src/main/scala/util/RunUtils.scala +++ b/src/main/scala/util/RunUtils.scala @@ -968,9 +968,9 @@ object RunUtils { result.reachingDefs, ctx.program ) - Logger.info("[!] Generating Function Summaries") + Logger.info("[!] Generating Procedure Summaries") if (config.summariseProcedures) { - IRTransform.generateFunctionSummaries(ctx, ctx.program, result.constPropResult, result.varDepsSummaries) + IRTransform.generateProcedureSummaries(ctx, ctx.program, result.constPropResult, result.varDepsSummaries) } if (modified) { iteration += 1 diff --git a/src/test/analysis/procedure-summaries/procedure_summary/config.mk b/src/test/analysis/procedure-summaries/procedure_summary/config.mk new file mode 100644 index 000000000..ec438ab49 --- /dev/null +++ b/src/test/analysis/procedure-summaries/procedure_summary/config.mk @@ -0,0 +1 @@ +ENABLED_COMPILERS = gcc \ No newline at end of file diff --git a/src/test/correct-analysis/function_summary/gcc/function_summary.adt b/src/test/analysis/procedure-summaries/procedure_summary/gcc/procedure_summary.adt similarity index 100% rename from src/test/correct-analysis/function_summary/gcc/function_summary.adt rename to src/test/analysis/procedure-summaries/procedure_summary/gcc/procedure_summary.adt diff --git a/src/test/correct-analysis/function_summary/gcc/function_summary.bir b/src/test/analysis/procedure-summaries/procedure_summary/gcc/procedure_summary.bir similarity index 100% rename from src/test/correct-analysis/function_summary/gcc/function_summary.bir rename to src/test/analysis/procedure-summaries/procedure_summary/gcc/procedure_summary.bir diff --git a/src/test/correct-analysis/function_summary/gcc/function_summary.gts b/src/test/analysis/procedure-summaries/procedure_summary/gcc/procedure_summary.gts similarity index 100% rename from src/test/correct-analysis/function_summary/gcc/function_summary.gts rename to src/test/analysis/procedure-summaries/procedure_summary/gcc/procedure_summary.gts diff --git a/src/test/correct-analysis/function_summary/gcc/function_summary.relf b/src/test/analysis/procedure-summaries/procedure_summary/gcc/procedure_summary.relf similarity index 100% rename from src/test/correct-analysis/function_summary/gcc/function_summary.relf rename to src/test/analysis/procedure-summaries/procedure_summary/gcc/procedure_summary.relf diff --git a/src/test/correct-analysis/function_summary/function_summary.c b/src/test/analysis/procedure-summaries/procedure_summary/procedure_summary.c similarity index 100% rename from src/test/correct-analysis/function_summary/function_summary.c rename to src/test/analysis/procedure-summaries/procedure_summary/procedure_summary.c diff --git a/src/test/correct-analysis/function_summary/function_summary.spec b/src/test/analysis/procedure-summaries/procedure_summary/procedure_summary.spec similarity index 100% rename from src/test/correct-analysis/function_summary/function_summary.spec rename to src/test/analysis/procedure-summaries/procedure_summary/procedure_summary.spec diff --git a/src/test/analysis/procedure-summaries/procedure_summary2/config.mk b/src/test/analysis/procedure-summaries/procedure_summary2/config.mk new file mode 100644 index 000000000..9e91d5453 --- /dev/null +++ b/src/test/analysis/procedure-summaries/procedure_summary2/config.mk @@ -0,0 +1 @@ +ENABLED_COMPILERS = gcc_O2 \ No newline at end of file diff --git a/src/test/correct-analysis/function_summary2/gcc_O2/function_summary2.adt b/src/test/analysis/procedure-summaries/procedure_summary2/gcc_O2/procedure_summary2.adt similarity index 100% rename from src/test/correct-analysis/function_summary2/gcc_O2/function_summary2.adt rename to src/test/analysis/procedure-summaries/procedure_summary2/gcc_O2/procedure_summary2.adt diff --git a/src/test/correct-analysis/function_summary2/gcc_O2/function_summary2.bir b/src/test/analysis/procedure-summaries/procedure_summary2/gcc_O2/procedure_summary2.bir similarity index 100% rename from src/test/correct-analysis/function_summary2/gcc_O2/function_summary2.bir rename to src/test/analysis/procedure-summaries/procedure_summary2/gcc_O2/procedure_summary2.bir diff --git a/src/test/correct-analysis/function_summary2/gcc_O2/function_summary2.gts b/src/test/analysis/procedure-summaries/procedure_summary2/gcc_O2/procedure_summary2.gts similarity index 100% rename from src/test/correct-analysis/function_summary2/gcc_O2/function_summary2.gts rename to src/test/analysis/procedure-summaries/procedure_summary2/gcc_O2/procedure_summary2.gts diff --git a/src/test/correct-analysis/function_summary2/gcc_O2/function_summary2.relf b/src/test/analysis/procedure-summaries/procedure_summary2/gcc_O2/procedure_summary2.relf similarity index 100% rename from src/test/correct-analysis/function_summary2/gcc_O2/function_summary2.relf rename to src/test/analysis/procedure-summaries/procedure_summary2/gcc_O2/procedure_summary2.relf diff --git a/src/test/correct-analysis/function_summary2/function_summary2.c b/src/test/analysis/procedure-summaries/procedure_summary2/procedure_summary2.c similarity index 100% rename from src/test/correct-analysis/function_summary2/function_summary2.c rename to src/test/analysis/procedure-summaries/procedure_summary2/procedure_summary2.c diff --git a/src/test/correct-analysis/function_summary2/function_summary2.spec b/src/test/analysis/procedure-summaries/procedure_summary2/procedure_summary2.spec similarity index 100% rename from src/test/correct-analysis/function_summary2/function_summary2.spec rename to src/test/analysis/procedure-summaries/procedure_summary2/procedure_summary2.spec diff --git a/src/test/analysis/procedure-summaries/procedure_summary3/config.mk b/src/test/analysis/procedure-summaries/procedure_summary3/config.mk new file mode 100644 index 000000000..9e91d5453 --- /dev/null +++ b/src/test/analysis/procedure-summaries/procedure_summary3/config.mk @@ -0,0 +1 @@ +ENABLED_COMPILERS = gcc_O2 \ No newline at end of file diff --git a/src/test/correct-analysis/function_summary3/gcc_O2/function_summary3.adt b/src/test/analysis/procedure-summaries/procedure_summary3/gcc_O2/procedure_summary3.adt similarity index 100% rename from src/test/correct-analysis/function_summary3/gcc_O2/function_summary3.adt rename to src/test/analysis/procedure-summaries/procedure_summary3/gcc_O2/procedure_summary3.adt diff --git a/src/test/correct-analysis/function_summary3/gcc_O2/function_summary3.bir b/src/test/analysis/procedure-summaries/procedure_summary3/gcc_O2/procedure_summary3.bir similarity index 100% rename from src/test/correct-analysis/function_summary3/gcc_O2/function_summary3.bir rename to src/test/analysis/procedure-summaries/procedure_summary3/gcc_O2/procedure_summary3.bir diff --git a/src/test/correct-analysis/function_summary3/gcc_O2/function_summary3.gts b/src/test/analysis/procedure-summaries/procedure_summary3/gcc_O2/procedure_summary3.gts similarity index 100% rename from src/test/correct-analysis/function_summary3/gcc_O2/function_summary3.gts rename to src/test/analysis/procedure-summaries/procedure_summary3/gcc_O2/procedure_summary3.gts diff --git a/src/test/correct-analysis/function_summary3/gcc_O2/function_summary3.relf b/src/test/analysis/procedure-summaries/procedure_summary3/gcc_O2/procedure_summary3.relf similarity index 100% rename from src/test/correct-analysis/function_summary3/gcc_O2/function_summary3.relf rename to src/test/analysis/procedure-summaries/procedure_summary3/gcc_O2/procedure_summary3.relf diff --git a/src/test/correct-analysis/function_summary3/function_summary3.c b/src/test/analysis/procedure-summaries/procedure_summary3/procedure_summary3.c similarity index 100% rename from src/test/correct-analysis/function_summary3/function_summary3.c rename to src/test/analysis/procedure-summaries/procedure_summary3/procedure_summary3.c diff --git a/src/test/correct-analysis/function_summary3/function_summary3.spec b/src/test/analysis/procedure-summaries/procedure_summary3/procedure_summary3.spec similarity index 100% rename from src/test/correct-analysis/function_summary3/function_summary3.spec rename to src/test/analysis/procedure-summaries/procedure_summary3/procedure_summary3.spec diff --git a/src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.adt b/src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.adt deleted file mode 100644 index d523f4cbe..000000000 --- a/src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.adt +++ /dev/null @@ -1,551 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_no_plt_no_pic/function_summary.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1892 20 1892)\n(code-region 1536 356 1536)\n(code-region 1440 96 1440)\n(code-region 1408 24 1408)\n(code-start 1588)\n(code-start 1884)\n(code-start 1536)\n(code-start 1828)\n(entry-point 1536)\n(external-reference 131008 _ITM_deregisterTMCloneTable)\n(external-reference 131016 __cxa_finalize)\n(external-reference 131024 __gmon_start__)\n(external-reference 131040 _ITM_registerTMCloneTable)\n(external-reference 131072 __libc_start_main)\n(external-reference 131080 __cxa_finalize)\n(external-reference 131088 __gmon_start__)\n(external-reference 131096 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1408 0)\n(llvm:code-entry main 1828 56)\n(llvm:code-entry _start 1536 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry get_two 1884 8)\n(llvm:code-entry _fini 1892 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1824 0)\n(llvm:code-entry __do_global_dtors_aux 1740 0)\n(llvm:code-entry register_tm_clones 1680 0)\n(llvm:code-entry deregister_tm_clones 1632 0)\n(llvm:code-entry call_weak_fn 1588 20)\n(llvm:code-entry .fini 1892 20)\n(llvm:code-entry .text 1536 356)\n(llvm:code-entry .plt 1440 96)\n(llvm:code-entry .init 1408 24)\n(llvm:elf-program-header 08 64968 568)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1916 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 64984 480)\n(llvm:elf-program-header 03 64968 616)\n(llvm:elf-program-header 02 0 2176)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 130504 568)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1916 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 130520 480)\n(llvm:elf-virtual-program-header 03 130504 632)\n(llvm:elf-virtual-program-header 02 0 2176)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1536)\n(llvm:name-reference 131096 abort)\n(llvm:name-reference 131088 __gmon_start__)\n(llvm:name-reference 131080 __cxa_finalize)\n(llvm:name-reference 131072 __libc_start_main)\n(llvm:name-reference 131040 _ITM_registerTMCloneTable)\n(llvm:name-reference 131024 __gmon_start__)\n(llvm:name-reference 131016 __cxa_finalize)\n(llvm:name-reference 131008 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 68435)\n(llvm:section-entry .strtab 0 579 67856)\n(llvm:section-entry .symtab 0 2232 65624)\n(llvm:section-entry .comment 0 36 65584)\n(llvm:section-entry .bss 131120 16 65584)\n(llvm:section-entry .data 131104 16 65568)\n(llvm:section-entry .got.plt 131048 56 65512)\n(llvm:section-entry .got 131000 48 65464)\n(llvm:section-entry .dynamic 130520 480 64984)\n(llvm:section-entry .fini_array 130512 8 64976)\n(llvm:section-entry .init_array 130504 8 64968)\n(llvm:section-entry .eh_frame 1984 192 1984)\n(llvm:section-entry .eh_frame_hdr 1916 68 1916)\n(llvm:section-entry .rodata 1912 4 1912)\n(llvm:section-entry .fini 1892 20 1892)\n(llvm:section-entry .text 1536 356 1536)\n(llvm:section-entry .plt 1440 96 1440)\n(llvm:section-entry .init 1408 24 1408)\n(llvm:section-entry .rela.plt 1312 96 1312)\n(llvm:section-entry .rela.dyn 1120 192 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1408 0 1408 1408)\n(llvm:symbol-entry main 1828 56 1828 1828)\n(llvm:symbol-entry _start 1536 52 1536 1536)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_two 1884 8 1884 1884)\n(llvm:symbol-entry _fini 1892 0 1892 1892)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1824 0 1824 1824)\n(llvm:symbol-entry __do_global_dtors_aux 1740 0 1740 1740)\n(llvm:symbol-entry register_tm_clones 1680 0 1680 1680)\n(llvm:symbol-entry deregister_tm_clones 1632 0 1632 1632)\n(llvm:symbol-entry call_weak_fn 1588 20 1588 1588)\n(mapped 0 2176 0)\n(mapped 130504 616 64968)\n(named-region 0 2176 02)\n(named-region 130504 632 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 192 .rela.dyn)\n(named-region 1312 96 .rela.plt)\n(named-region 1408 24 .init)\n(named-region 1440 96 .plt)\n(named-region 1536 356 .text)\n(named-region 1892 20 .fini)\n(named-region 1912 4 .rodata)\n(named-region 1916 68 .eh_frame_hdr)\n(named-region 1984 192 .eh_frame)\n(named-region 130504 8 .init_array)\n(named-region 130512 8 .fini_array)\n(named-region 130520 480 .dynamic)\n(named-region 131000 48 .got)\n(named-region 131048 56 .got.plt)\n(named-region 131104 16 .data)\n(named-region 131120 16 .bss)\n(named-region 0 36 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 579 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1588 call_weak_fn)\n(named-symbol 1632 deregister_tm_clones)\n(named-symbol 1680 register_tm_clones)\n(named-symbol 1740 __do_global_dtors_aux)\n(named-symbol 1824 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1892 _fini)\n(named-symbol 1884 get_two)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1536 _start)\n(named-symbol 1828 main)\n(named-symbol 1408 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 192)\n(section 1312 96)\n(section 1408 24)\n(section 1440 96)\n(section 1536 356)\n(section 1892 20)\n(section 1912 4)\n(section 1916 68)\n(section 1984 192)\n(section 130504 8)\n(section 130512 8)\n(section 130520 480)\n(section 131000 48)\n(section 131048 56)\n(section 131104 16)\n(section 131120 16)\n(section 0 36)\n(section 0 2232)\n(section 0 579)\n(section 0 259)\n(segment 0 2176 true false true)\n(segment 130504 632 true true false)\n(subarch v8)\n(symbol-chunk 1588 20 1588)\n(symbol-chunk 1884 8 1884)\n(symbol-chunk 1536 52 1536)\n(symbol-chunk 1828 56 1828)\n(symbol-value 1588 1588)\n(symbol-value 1632 1632)\n(symbol-value 1680 1680)\n(symbol-value 1740 1740)\n(symbol-value 1824 1824)\n(symbol-value 1892 1892)\n(symbol-value 1884 1884)\n(symbol-value 1536 1536)\n(symbol-value 1828 1828)\n(symbol-value 1408 1408)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01"), -Section(".strtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x68\x02\x00\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xd8\xfd\x00\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xd8\xfd\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x7c\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x48\x83\x5e\x50\x18\xb4\x98\x6e\x8b\x56\xca\x58\x0b\xe6\x49\x3b\xbc\xdb\xd8\x1d"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\x80\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xc8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x20\x07\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\xcc\x06\x00\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x24\x07\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x520, "\x00\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x580, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2a\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5A0, "\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x10\x01\x00\x90\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x600, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe5\xff\xff\x97\xf0\xff\xff\x97\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x40\x00\x00\xb4\xe8\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xe0\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\xe2\x00\x00\xf0\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x40\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x14\x40\xf9\xb6\xff\xff\x97\xd9\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x00\x01\x00\x90\x00\xd0\x00\x91\x21\x00\x80\x52\x01\x00\x00\xb9\x08\x00\x00\x94\xe1\x03\x00\x2a\x00\x01\x00\x90\x00\xe0\x00\x91\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x40\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x764, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x778, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x77C, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x84\xfe\xff\xff\x58\x00\x00\x00\xe4\xfe\xff\xff\x6c\x00\x00\x00\x14\xff\xff\xff\x80\x00\x00\x00\x50\xff\xff\xff\x94\x00\x00\x00\xa4\xff\xff\xff\xb8\x00\x00\x00\xa8\xff\xff\xff\xcc\x00\x00\x00\xe0\xff\xff\xff\xec\x00\x00\x00"), -Section(".eh_frame", 0x7C0, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb4\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\xd4\xfe\xff\xff\x38\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x4c\xde\xdd\x0e\x00\x00\x00\x00\x10\x00\x00\x00\xac\x00\x00\x00\xec\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x1FDD0, "\xcc\x06\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDD8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x80\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\xd0\xfd\x01\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x20\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xc0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x1FFB8, "\xd8\xfd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got.plt", 0x1FFE8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00\xa0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x20020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00"), -Section(".init_array", 0x1FDC8, "\x20\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x87F), Attr("segment","02 0 2176")), -Annotation(Region(0x600,0x633), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x242), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x23), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x51F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x520,0x57F), Attr("section","\".rela.plt\"")), -Annotation(Region(0x580,0x597), Attr("section","\".init\"")), -Annotation(Region(0x5A0,0x5FF), Attr("section","\".plt\"")), -Annotation(Region(0x580,0x597), Attr("code-region","()")), -Annotation(Region(0x5A0,0x5FF), Attr("code-region","()")), -Annotation(Region(0x600,0x633), Attr("symbol-info","_start 0x600 52")), -Annotation(Region(0x634,0x647), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x634,0x647), Attr("symbol-info","call_weak_fn 0x634 20")), -Annotation(Region(0x724,0x75B), Attr("symbol","\"main\"")), -Annotation(Region(0x600,0x763), Attr("section","\".text\"")), -Annotation(Region(0x600,0x763), Attr("code-region","()")), -Annotation(Region(0x724,0x75B), Attr("symbol-info","main 0x724 56")), -Annotation(Region(0x75C,0x763), Attr("symbol","\"get_two\"")), -Annotation(Region(0x75C,0x763), Attr("symbol-info","get_two 0x75C 8")), -Annotation(Region(0x764,0x777), Attr("section","\".fini\"")), -Annotation(Region(0x764,0x777), Attr("code-region","()")), -Annotation(Region(0x778,0x77B), Attr("section","\".rodata\"")), -Annotation(Region(0x77C,0x7BF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x7C0,0x87F), Attr("section","\".eh_frame\"")), -Annotation(Region(0x1FDC8,0x2002F), Attr("segment","03 0x1FDC8 632")), -Annotation(Region(0x1FDD0,0x1FDD7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDD8,0x1FFB7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FFB8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2001F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20020,0x2002F), Attr("section","\".data\"")), -Annotation(Region(0x1FDC8,0x1FDCF), Attr("section","\".init_array\""))]), -Program(Tid(3_170, "%00000c62"), Attrs([]), - Subs([Sub(Tid(3_147, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5D0"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(3_171, "%00000c63"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_535, "@__cxa_finalize"), - Attrs([Attr("address","0x5D0")]), Phis([]), -Defs([Def(Tid(2_783, "%00000adf"), Attrs([Attr("address","0x5D0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(2_790, "%00000ae6"), Attrs([Attr("address","0x5D4"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_796, "%00000aec"), Attrs([Attr("address","0x5D8"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(2_801, "%00000af1"), - Attrs([Attr("address","0x5DC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(3_148, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6CC")]), - "__do_global_dtors_aux", Args([Arg(Tid(3_172, "%00000c64"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(2_267, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x6CC")]), Phis([]), -Defs([Def(Tid(2_271, "%000008df"), Attrs([Attr("address","0x6CC"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(2_277, "%000008e5"), Attrs([Attr("address","0x6CC"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(2_283, "%000008eb"), Attrs([Attr("address","0x6CC"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(2_287, "%000008ef"), Attrs([Attr("address","0x6CC"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(2_293, "%000008f5"), - Attrs([Attr("address","0x6D0"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_301, "%000008fd"), - Attrs([Attr("address","0x6D4"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(2_306, "%00000902"), Attrs([Attr("address","0x6D8"), -Attr("insn","adrp x19, #131072")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(2_313, "%00000909"), Attrs([Attr("address","0x6DC"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(2_319, "%0000090f"), Attrs([Attr("address","0x6E0"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), -Direct(Tid(2_317, "%0000090d"))), Goto(Tid(3_149, "%00000c4d"), Attrs([]), - Int(1,1), Direct(Tid(2_480, "%000009b0")))])), Blk(Tid(2_480, "%000009b0"), - Attrs([Attr("address","0x6E4")]), Phis([]), -Defs([Def(Tid(2_483, "%000009b3"), Attrs([Attr("address","0x6E4"), -Attr("insn","adrp x0, #126976")]), Var("R0",Imm(64)), Int(126976,64)), -Def(Tid(2_490, "%000009ba"), Attrs([Attr("address","0x6E8"), -Attr("insn","ldr x0, [x0, #0xfc8]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_496, "%000009c0"), Attrs([Attr("address","0x6EC"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(2_494, "%000009be"))), Goto(Tid(3_150, "%00000c4e"), Attrs([]), - Int(1,1), Direct(Tid(2_519, "%000009d7")))])), Blk(Tid(2_519, "%000009d7"), - Attrs([Attr("address","0x6F0")]), Phis([]), -Defs([Def(Tid(2_522, "%000009da"), Attrs([Attr("address","0x6F0"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(2_529, "%000009e1"), Attrs([Attr("address","0x6F4"), -Attr("insn","ldr x0, [x0, #0x28]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(2_534, "%000009e6"), Attrs([Attr("address","0x6F8"), -Attr("insn","bl #-0x128")]), Var("R30",Imm(64)), Int(1788,64))]), -Jmps([Call(Tid(2_537, "%000009e9"), Attrs([Attr("address","0x6F8"), -Attr("insn","bl #-0x128")]), Int(1,1), -(Direct(Tid(3_147, "@__cxa_finalize")),Direct(Tid(2_494, "%000009be"))))])), -Blk(Tid(2_494, "%000009be"), Attrs([Attr("address","0x6FC")]), Phis([]), -Defs([Def(Tid(2_502, "%000009c6"), Attrs([Attr("address","0x6FC"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1792,64))]), -Jmps([Call(Tid(2_504, "%000009c8"), Attrs([Attr("address","0x6FC"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(3_161, "@deregister_tm_clones")),Direct(Tid(2_506, "%000009ca"))))])), -Blk(Tid(2_506, "%000009ca"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([Def(Tid(2_509, "%000009cd"), Attrs([Attr("address","0x700"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(2_517, "%000009d5"), Attrs([Attr("address","0x704"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(3_151, "%00000c4f"), Attrs([]), Int(1,1), -Direct(Tid(2_317, "%0000090d")))])), Blk(Tid(2_317, "%0000090d"), - Attrs([Attr("address","0x708")]), Phis([]), -Defs([Def(Tid(2_327, "%00000917"), Attrs([Attr("address","0x708"), -Attr("insn","ldr x19, [sp, #0x10]")]), Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(2_334, "%0000091e"), Attrs([Attr("address","0x70C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_339, "%00000923"), Attrs([Attr("address","0x70C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_343, "%00000927"), Attrs([Attr("address","0x70C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(2_348, "%0000092c"), - Attrs([Attr("address","0x710"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(3_152, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5C0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(3_173, "%00000c65"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(3_174, "%00000c66"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(3_175, "%00000c67"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(3_176, "%00000c68"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(3_177, "%00000c69"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(2_094, "@__libc_start_main"), - Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(2_761, "%00000ac9"), Attrs([Attr("address","0x5C0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(2_768, "%00000ad0"), Attrs([Attr("address","0x5C4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(2_774, "%00000ad6"), Attrs([Attr("address","0x5C8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(2_779, "%00000adb"), - Attrs([Attr("address","0x5CC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(3_153, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x764")]), - "_fini", Args([Arg(Tid(3_178, "%00000c6a"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_622, "@_fini"), - Attrs([Attr("address","0x764")]), Phis([]), -Defs([Def(Tid(1_628, "%0000065c"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_634, "%00000662"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_640, "%00000668"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_644, "%0000066c"), Attrs([Attr("address","0x768"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(1_650, "%00000672"), - Attrs([Attr("address","0x76C"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_657, "%00000679"), - Attrs([Attr("address","0x770"), Attr("insn","ldp x29, x30, [sp], #0x10")]), - Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_662, "%0000067e"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_666, "%00000682"), Attrs([Attr("address","0x770"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_671, "%00000687"), - Attrs([Attr("address","0x774"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(3_154, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x580")]), - "_init", Args([Arg(Tid(3_179, "%00000c6b"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_969, "@_init"), - Attrs([Attr("address","0x580")]), Phis([]), -Defs([Def(Tid(2_975, "%00000b9f"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(2_981, "%00000ba5"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(2_987, "%00000bab"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(2_991, "%00000baf"), Attrs([Attr("address","0x584"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(2_997, "%00000bb5"), - Attrs([Attr("address","0x588"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(3_002, "%00000bba"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), - Var("R30",Imm(64)), Int(1424,64))]), Jmps([Call(Tid(3_004, "%00000bbc"), - Attrs([Attr("address","0x58C"), Attr("insn","bl #0xa8")]), Int(1,1), -(Direct(Tid(3_159, "@call_weak_fn")),Direct(Tid(3_006, "%00000bbe"))))])), -Blk(Tid(3_006, "%00000bbe"), Attrs([Attr("address","0x590")]), Phis([]), -Defs([Def(Tid(3_011, "%00000bc3"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(3_016, "%00000bc8"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(3_020, "%00000bcc"), Attrs([Attr("address","0x590"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(3_025, "%00000bd1"), - Attrs([Attr("address","0x594"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(3_155, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()"), Attr("entry-point","()")]), "_start", - Args([Arg(Tid(3_180, "%00000c6c"), 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(2_031, "@_start"), Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(2_036, "%000007f4"), Attrs([Attr("address","0x604"), -Attr("insn","mov x29, #0x0")]), Var("R29",Imm(64)), Int(0,64)), -Def(Tid(2_041, "%000007f9"), Attrs([Attr("address","0x608"), -Attr("insn","mov x30, #0x0")]), Var("R30",Imm(64)), Int(0,64)), -Def(Tid(2_047, "%000007ff"), Attrs([Attr("address","0x60C"), -Attr("insn","mov x5, x0")]), Var("R5",Imm(64)), Var("R0",Imm(64))), -Def(Tid(2_054, "%00000806"), Attrs([Attr("address","0x610"), -Attr("insn","ldr x1, [sp]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_060, "%0000080c"), Attrs([Attr("address","0x614"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(2_066, "%00000812"), - Attrs([Attr("address","0x618"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_071, "%00000817"), - Attrs([Attr("address","0x61C"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(2_078, "%0000081e"), - Attrs([Attr("address","0x620"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(2_083, "%00000823"), Attrs([Attr("address","0x624"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(2_088, "%00000828"), Attrs([Attr("address","0x628"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(2_093, "%0000082d"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Var("R30",Imm(64)), Int(1584,64))]), -Jmps([Call(Tid(2_096, "%00000830"), Attrs([Attr("address","0x62C"), -Attr("insn","bl #-0x6c")]), Int(1,1), -(Direct(Tid(3_152, "@__libc_start_main")),Direct(Tid(2_098, "%00000832"))))])), -Blk(Tid(2_098, "%00000832"), Attrs([Attr("address","0x630")]), Phis([]), -Defs([Def(Tid(2_101, "%00000835"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Var("R30",Imm(64)), Int(1588,64))]), -Jmps([Call(Tid(2_104, "%00000838"), Attrs([Attr("address","0x630"), -Attr("insn","bl #-0x40")]), Int(1,1), -(Direct(Tid(3_158, "@abort")),Direct(Tid(3_156, "%00000c54"))))])), -Blk(Tid(3_156, "%00000c54"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(3_157, "%00000c55"), Attrs([]), Int(1,1), -(Direct(Tid(3_159, "@call_weak_fn")),))]))])), Sub(Tid(3_158, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x5F0"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(2_102, "@abort"), Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(2_827, "%00000b0b"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(2_834, "%00000b12"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(2_840, "%00000b18"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(2_845, "%00000b1d"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(3_159, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x634")]), - "call_weak_fn", Args([Arg(Tid(3_181, "%00000c6d"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_106, "@call_weak_fn"), - Attrs([Attr("address","0x634")]), Phis([]), -Defs([Def(Tid(2_109, "%0000083d"), Attrs([Attr("address","0x634"), -Attr("insn","adrp x0, #126976")]), Var("R0",Imm(64)), Int(126976,64)), -Def(Tid(2_116, "%00000844"), Attrs([Attr("address","0x638"), -Attr("insn","ldr x0, [x0, #0xfd0]")]), Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_122, "%0000084a"), Attrs([Attr("address","0x63C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(2_120, "%00000848"))), Goto(Tid(3_160, "%00000c58"), Attrs([]), - Int(1,1), Direct(Tid(2_599, "%00000a27")))])), Blk(Tid(2_120, "%00000848"), - Attrs([Attr("address","0x644")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_128, "%00000850"), Attrs([Attr("address","0x644"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(2_599, "%00000a27"), Attrs([Attr("address","0x640")]), Phis([]), -Defs([]), Jmps([Goto(Tid(2_602, "%00000a2a"), Attrs([Attr("address","0x640"), -Attr("insn","b #-0x60")]), Int(1,1), -Direct(Tid(2_600, "@__gmon_start__")))])), Blk(Tid(2_600, "@__gmon_start__"), - Attrs([Attr("address","0x5E0")]), Phis([]), -Defs([Def(Tid(2_805, "%00000af5"), Attrs([Attr("address","0x5E0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(2_812, "%00000afc"), Attrs([Attr("address","0x5E4"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(2_818, "%00000b02"), Attrs([Attr("address","0x5E8"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(2_823, "%00000b07"), - Attrs([Attr("address","0x5EC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(3_161, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x660")]), - "deregister_tm_clones", Args([Arg(Tid(3_182, "%00000c6e"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(2_142, "@deregister_tm_clones"), - Attrs([Attr("address","0x660")]), Phis([]), -Defs([Def(Tid(2_145, "%00000861"), Attrs([Attr("address","0x660"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(2_151, "%00000867"), Attrs([Attr("address","0x664"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(2_156, "%0000086c"), - Attrs([Attr("address","0x668"), Attr("insn","adrp x1, #131072")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(2_162, "%00000872"), - Attrs([Attr("address","0x66C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(2_168, "%00000878"), Attrs([Attr("address","0x670"), -Attr("insn","cmp x1, x0")]), Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), -Def(Tid(2_173, "%0000087d"), Attrs([Attr("address","0x670"), -Attr("insn","cmp x1, x0")]), Var("#2",Imm(64)), -PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), Def(Tid(2_179, "%00000883"), - Attrs([Attr("address","0x670"), Attr("insn","cmp x1, x0")]), - Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(2_185, "%00000889"), Attrs([Attr("address","0x670"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(2_189, "%0000088d"), Attrs([Attr("address","0x670"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), -Def(Tid(2_193, "%00000891"), Attrs([Attr("address","0x670"), -Attr("insn","cmp x1, x0")]), Var("NF",Imm(1)), -Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(2_199, "%00000897"), Attrs([Attr("address","0x674"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(2_197, "%00000895"))), Goto(Tid(3_162, "%00000c5a"), Attrs([]), - Int(1,1), Direct(Tid(2_569, "%00000a09")))])), Blk(Tid(2_569, "%00000a09"), - Attrs([Attr("address","0x678")]), Phis([]), -Defs([Def(Tid(2_572, "%00000a0c"), Attrs([Attr("address","0x678"), -Attr("insn","adrp x1, #126976")]), Var("R1",Imm(64)), Int(126976,64)), -Def(Tid(2_579, "%00000a13"), Attrs([Attr("address","0x67C"), -Attr("insn","ldr x1, [x1, #0xfc0]")]), Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4032,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_584, "%00000a18"), Attrs([Attr("address","0x680"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(2_197, "%00000895"))), Goto(Tid(3_163, "%00000c5b"), Attrs([]), - Int(1,1), Direct(Tid(2_588, "%00000a1c")))])), Blk(Tid(2_197, "%00000895"), - Attrs([Attr("address","0x68C")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_205, "%0000089d"), Attrs([Attr("address","0x68C"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(2_588, "%00000a1c"), Attrs([Attr("address","0x684")]), Phis([]), -Defs([Def(Tid(2_592, "%00000a20"), Attrs([Attr("address","0x684"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(2_597, "%00000a25"), Attrs([Attr("address","0x688"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(3_164, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x720")]), "frame_dummy", Args([Arg(Tid(3_183, "%00000c6f"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_356, "@frame_dummy"), - Attrs([Attr("address","0x720")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_358, "%00000936"), Attrs([Attr("address","0x720"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(3_167, "@register_tm_clones")),))]))])), -Sub(Tid(3_165, "@get_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x75C")]), "get_two", Args([Arg(Tid(3_184, "%00000c70"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_416, "@get_two"), - Attrs([Attr("address","0x75C")]), Phis([]), -Defs([Def(Tid(2_422, "%00000976"), Attrs([Attr("address","0x75C"), -Attr("insn","mov w0, #0x2")]), Var("R0",Imm(64)), Int(2,64))]), -Jmps([Call(Tid(2_427, "%0000097b"), Attrs([Attr("address","0x760"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(3_166, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x724")]), "main", Args([Arg(Tid(3_185, "%00000c71"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(3_186, "%00000c72"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(3_187, "%00000c73"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(2_360, "@main"), - Attrs([Attr("address","0x724")]), Phis([]), -Defs([Def(Tid(2_364, "%0000093c"), Attrs([Attr("address","0x724"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(2_370, "%00000942"), Attrs([Attr("address","0x724"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(2_376, "%00000948"), Attrs([Attr("address","0x724"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(2_380, "%0000094c"), Attrs([Attr("address","0x724"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(2_386, "%00000952"), - Attrs([Attr("address","0x728"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(2_391, "%00000957"), - Attrs([Attr("address","0x72C"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(2_397, "%0000095d"), - Attrs([Attr("address","0x730"), Attr("insn","add x0, x0, #0x34")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(52,64))), -Def(Tid(2_402, "%00000962"), Attrs([Attr("address","0x734"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(2_410, "%0000096a"), Attrs([Attr("address","0x738"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(2_415, "%0000096f"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #0x20")]), Var("R30",Imm(64)), Int(1856,64))]), -Jmps([Call(Tid(2_418, "%00000972"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #0x20")]), Int(1,1), -(Direct(Tid(3_165, "@get_two")),Direct(Tid(2_429, "%0000097d"))))])), -Blk(Tid(2_429, "%0000097d"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(2_433, "%00000981"), Attrs([Attr("address","0x740"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(2_438, "%00000986"), - Attrs([Attr("address","0x744"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(2_444, "%0000098c"), - Attrs([Attr("address","0x748"), Attr("insn","add x0, x0, #0x38")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(56,64))), -Def(Tid(2_452, "%00000994"), Attrs([Attr("address","0x74C"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(2_457, "%00000999"), Attrs([Attr("address","0x750"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(2_464, "%000009a0"), Attrs([Attr("address","0x754"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(2_469, "%000009a5"), Attrs([Attr("address","0x754"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(2_473, "%000009a9"), Attrs([Attr("address","0x754"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(2_478, "%000009ae"), - Attrs([Attr("address","0x758"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(3_167, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x690")]), - "register_tm_clones", Args([Arg(Tid(3_188, "%00000c74"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(2_207, "@register_tm_clones"), - Attrs([Attr("address","0x690")]), Phis([]), -Defs([Def(Tid(2_210, "%000008a2"), Attrs([Attr("address","0x690"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(2_216, "%000008a8"), Attrs([Attr("address","0x694"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(2_221, "%000008ad"), - Attrs([Attr("address","0x698"), Attr("insn","adrp x1, #131072")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(2_227, "%000008b3"), - Attrs([Attr("address","0x69C"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(2_234, "%000008ba"), Attrs([Attr("address","0x6A0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(2_240, "%000008c0"), Attrs([Attr("address","0x6A4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(2_247, "%000008c7"), Attrs([Attr("address","0x6A8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(2_253, "%000008cd"), Attrs([Attr("address","0x6AC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(2_259, "%000008d3"), Attrs([Attr("address","0x6B0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(2_257, "%000008d1"))), Goto(Tid(3_168, "%00000c60"), Attrs([]), - Int(1,1), Direct(Tid(2_539, "%000009eb")))])), Blk(Tid(2_539, "%000009eb"), - Attrs([Attr("address","0x6B4")]), Phis([]), -Defs([Def(Tid(2_542, "%000009ee"), Attrs([Attr("address","0x6B4"), -Attr("insn","adrp x2, #126976")]), Var("R2",Imm(64)), Int(126976,64)), -Def(Tid(2_549, "%000009f5"), Attrs([Attr("address","0x6B8"), -Attr("insn","ldr x2, [x2, #0xfe0]")]), Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(2_554, "%000009fa"), Attrs([Attr("address","0x6BC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(2_257, "%000008d1"))), Goto(Tid(3_169, "%00000c61"), Attrs([]), - Int(1,1), Direct(Tid(2_558, "%000009fe")))])), Blk(Tid(2_257, "%000008d1"), - Attrs([Attr("address","0x6C8")]), Phis([]), Defs([]), -Jmps([Call(Tid(2_265, "%000008d9"), Attrs([Attr("address","0x6C8"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(2_558, "%000009fe"), Attrs([Attr("address","0x6C0")]), Phis([]), -Defs([Def(Tid(2_562, "%00000a02"), Attrs([Attr("address","0x6C0"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(2_567, "%00000a07"), Attrs([Attr("address","0x6C4"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.bir b/src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.bir deleted file mode 100644 index 5076d5cbc..000000000 --- a/src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.bir +++ /dev/null @@ -1,251 +0,0 @@ -00000c62: program -00000c4b: sub __cxa_finalize(__cxa_finalize_result) -00000c63: __cxa_finalize_result :: out u32 = low:32[R0] - -000009e7: -00000adf: R16 := 0x20000 -00000ae6: R17 := mem[R16 + 8, el]:u64 -00000aec: R16 := R16 + 8 -00000af1: call R17 with noreturn - -00000c4c: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -00000c64: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000008db: -000008df: #3 := R31 - 0x20 -000008e5: mem := mem with [#3, el]:u64 <- R29 -000008eb: mem := mem with [#3 + 8, el]:u64 <- R30 -000008ef: R31 := #3 -000008f5: R29 := R31 -000008fd: mem := mem with [R31 + 0x10, el]:u64 <- R19 -00000902: R19 := 0x20000 -00000909: R0 := pad:64[mem[R19 + 0x30]] -0000090f: when 0:0[R0] goto %0000090d -00000c4d: goto %000009b0 - -000009b0: -000009b3: R0 := 0x1F000 -000009ba: R0 := mem[R0 + 0xFC8, el]:u64 -000009c0: when R0 = 0 goto %000009be -00000c4e: goto %000009d7 - -000009d7: -000009da: R0 := 0x20000 -000009e1: R0 := mem[R0 + 0x28, el]:u64 -000009e6: R30 := 0x6FC -000009e9: call @__cxa_finalize with return %000009be - -000009be: -000009c6: R30 := 0x700 -000009c8: call @deregister_tm_clones with return %000009ca - -000009ca: -000009cd: R0 := 1 -000009d5: mem := mem with [R19 + 0x30] <- 7:0[R0] -00000c4f: goto %0000090d - -0000090d: -00000917: R19 := mem[R31 + 0x10, el]:u64 -0000091e: R29 := mem[R31, el]:u64 -00000923: R30 := mem[R31 + 8, el]:u64 -00000927: R31 := R31 + 0x20 -0000092c: call R30 with noreturn - -00000c50: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -00000c65: __libc_start_main_main :: in u64 = R0 -00000c66: __libc_start_main_arg2 :: in u32 = low:32[R1] -00000c67: __libc_start_main_arg3 :: in out u64 = R2 -00000c68: __libc_start_main_auxv :: in out u64 = R3 -00000c69: __libc_start_main_result :: out u32 = low:32[R0] - -0000082e: -00000ac9: R16 := 0x20000 -00000ad0: R17 := mem[R16, el]:u64 -00000ad6: R16 := R16 -00000adb: call R17 with noreturn - -00000c51: sub _fini(_fini_result) -00000c6a: _fini_result :: out u32 = low:32[R0] - -00000656: -0000065c: #0 := R31 - 0x10 -00000662: mem := mem with [#0, el]:u64 <- R29 -00000668: mem := mem with [#0 + 8, el]:u64 <- R30 -0000066c: R31 := #0 -00000672: R29 := R31 -00000679: R29 := mem[R31, el]:u64 -0000067e: R30 := mem[R31 + 8, el]:u64 -00000682: R31 := R31 + 0x10 -00000687: call R30 with noreturn - -00000c52: sub _init(_init_result) -00000c6b: _init_result :: out u32 = low:32[R0] - -00000b99: -00000b9f: #6 := R31 - 0x10 -00000ba5: mem := mem with [#6, el]:u64 <- R29 -00000bab: mem := mem with [#6 + 8, el]:u64 <- R30 -00000baf: R31 := #6 -00000bb5: R29 := R31 -00000bba: R30 := 0x590 -00000bbc: call @call_weak_fn with return %00000bbe - -00000bbe: -00000bc3: R29 := mem[R31, el]:u64 -00000bc8: R30 := mem[R31 + 8, el]:u64 -00000bcc: R31 := R31 + 0x10 -00000bd1: call R30 with noreturn - -00000c53: sub _start(_start_result) -00000c6c: _start_result :: out u32 = low:32[R0] - -000007ef: -000007f4: R29 := 0 -000007f9: R30 := 0 -000007ff: R5 := R0 -00000806: R1 := mem[R31, el]:u64 -0000080c: R2 := R31 + 8 -00000812: R6 := R31 -00000817: R0 := 0x1F000 -0000081e: R0 := mem[R0 + 0xFD8, el]:u64 -00000823: R3 := 0 -00000828: R4 := 0 -0000082d: R30 := 0x630 -00000830: call @__libc_start_main with return %00000832 - -00000832: -00000835: R30 := 0x634 -00000838: call @abort with return %00000c54 - -00000c54: -00000c55: call @call_weak_fn with noreturn - -00000c56: sub abort() - - -00000836: -00000b0b: R16 := 0x20000 -00000b12: R17 := mem[R16 + 0x18, el]:u64 -00000b18: R16 := R16 + 0x18 -00000b1d: call R17 with noreturn - -00000c57: sub call_weak_fn(call_weak_fn_result) -00000c6d: call_weak_fn_result :: out u32 = low:32[R0] - -0000083a: -0000083d: R0 := 0x1F000 -00000844: R0 := mem[R0 + 0xFD0, el]:u64 -0000084a: when R0 = 0 goto %00000848 -00000c58: goto %00000a27 - -00000848: -00000850: call R30 with noreturn - -00000a27: -00000a2a: goto @__gmon_start__ - -00000a28: -00000af5: R16 := 0x20000 -00000afc: R17 := mem[R16 + 0x10, el]:u64 -00000b02: R16 := R16 + 0x10 -00000b07: call R17 with noreturn - -00000c59: sub deregister_tm_clones(deregister_tm_clones_result) -00000c6e: deregister_tm_clones_result :: out u32 = low:32[R0] - -0000085e: -00000861: R0 := 0x20000 -00000867: R0 := R0 + 0x30 -0000086c: R1 := 0x20000 -00000872: R1 := R1 + 0x30 -00000878: #1 := ~R0 -0000087d: #2 := R1 + ~R0 -00000883: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000889: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -0000088d: ZF := #2 + 1 = 0 -00000891: NF := 63:63[#2 + 1] -00000897: when ZF goto %00000895 -00000c5a: goto %00000a09 - -00000a09: -00000a0c: R1 := 0x1F000 -00000a13: R1 := mem[R1 + 0xFC0, el]:u64 -00000a18: when R1 = 0 goto %00000895 -00000c5b: goto %00000a1c - -00000895: -0000089d: call R30 with noreturn - -00000a1c: -00000a20: R16 := R1 -00000a25: call R16 with noreturn - -00000c5c: sub frame_dummy(frame_dummy_result) -00000c6f: frame_dummy_result :: out u32 = low:32[R0] - -00000934: -00000936: call @register_tm_clones with noreturn - -00000c5d: sub get_two(get_two_result) -00000c70: get_two_result :: out u32 = low:32[R0] - -00000970: -00000976: R0 := 2 -0000097b: call R30 with noreturn - -00000c5e: sub main(main_argc, main_argv, main_result) -00000c71: main_argc :: in u32 = low:32[R0] -00000c72: main_argv :: in out u64 = R1 -00000c73: main_result :: out u32 = low:32[R0] - -00000938: -0000093c: #4 := R31 - 0x10 -00000942: mem := mem with [#4, el]:u64 <- R29 -00000948: mem := mem with [#4 + 8, el]:u64 <- R30 -0000094c: R31 := #4 -00000952: R29 := R31 -00000957: R0 := 0x20000 -0000095d: R0 := R0 + 0x34 -00000962: R1 := 1 -0000096a: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000096f: R30 := 0x740 -00000972: call @get_two with return %0000097d - -0000097d: -00000981: R1 := pad:64[31:0[R0]] -00000986: R0 := 0x20000 -0000098c: R0 := R0 + 0x38 -00000994: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000999: R0 := 0 -000009a0: R29 := mem[R31, el]:u64 -000009a5: R30 := mem[R31 + 8, el]:u64 -000009a9: R31 := R31 + 0x10 -000009ae: call R30 with noreturn - -00000c5f: sub register_tm_clones(register_tm_clones_result) -00000c74: register_tm_clones_result :: out u32 = low:32[R0] - -0000089f: -000008a2: R0 := 0x20000 -000008a8: R0 := R0 + 0x30 -000008ad: R1 := 0x20000 -000008b3: R1 := R1 + 0x30 -000008ba: R1 := R1 + ~R0 + 1 -000008c0: R2 := 0.63:63[R1] -000008c7: R1 := R2 + (R1 ~>> 3) -000008cd: R1 := extend:64[63:1[R1]] -000008d3: when R1 = 0 goto %000008d1 -00000c60: goto %000009eb - -000009eb: -000009ee: R2 := 0x1F000 -000009f5: R2 := mem[R2 + 0xFE0, el]:u64 -000009fa: when R2 = 0 goto %000008d1 -00000c61: goto %000009fe - -000008d1: -000008d9: call R30 with noreturn - -000009fe: -00000a02: R16 := R2 -00000a07: call R16 with noreturn diff --git a/src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.gts b/src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.gts deleted file mode 100644 index 188d6baca..000000000 Binary files a/src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.gts and /dev/null differ diff --git a/src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.relf b/src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.relf deleted file mode 100644 index 78dba5735..000000000 --- a/src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.relf +++ /dev/null @@ -1,126 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 8 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdc8 0000000000000403 R_AARCH64_RELATIVE 720 -000000000001fdd0 0000000000000403 R_AARCH64_RELATIVE 6cc -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 724 -0000000000020028 0000000000000403 R_AARCH64_RELATIVE 20028 -000000000001ffc0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffc8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffd0 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x520 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000520 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 0000000000000580 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005a0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000600 0 SECTION LOCAL DEFAULT 13 .text - 14: 0000000000000764 0 SECTION LOCAL DEFAULT 14 .fini - 15: 0000000000000778 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 000000000000077c 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 00000000000007c0 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 000000000001fdc8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 000000000001fdd0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 000000000001fdd8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 000000000001ffb8 0 SECTION LOCAL DEFAULT 21 .got - 22: 000000000001ffe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000020030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS abi-note.c - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000000 0 FILE LOCAL DEFAULT ABS start.os - 30: 0000000000000600 0 NOTYPE LOCAL DEFAULT 13 $x - 31: 00000000000007d4 0 NOTYPE LOCAL DEFAULT 17 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS init.c - 33: 0000000000000778 0 NOTYPE LOCAL DEFAULT 15 $d - 34: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 35: 0000000000000634 0 NOTYPE LOCAL DEFAULT 13 $x - 36: 0000000000000634 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 37: 0000000000000580 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 0000000000000764 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 40: 0000000000000590 0 NOTYPE LOCAL DEFAULT 11 $x - 41: 0000000000000770 0 NOTYPE LOCAL DEFAULT 14 $x - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 43: 0000000000000660 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 0000000000000660 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 45: 0000000000000690 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 46: 0000000000020028 0 NOTYPE LOCAL DEFAULT 23 $d - 47: 00000000000006cc 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 48: 0000000000020030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 49: 000000000001fdd0 0 NOTYPE LOCAL DEFAULT 19 $d - 50: 000000000001fdd0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 51: 0000000000000720 0 FUNC LOCAL DEFAULT 13 frame_dummy - 52: 000000000001fdc8 0 NOTYPE LOCAL DEFAULT 18 $d - 53: 000000000001fdc8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 54: 00000000000007e8 0 NOTYPE LOCAL DEFAULT 17 $d - 55: 0000000000020030 0 NOTYPE LOCAL DEFAULT 24 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS function_summary.c - 57: 0000000000020034 0 NOTYPE LOCAL DEFAULT 24 $d - 58: 0000000000000724 0 NOTYPE LOCAL DEFAULT 13 $x - 59: 0000000000000848 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 61: 000000000000087c 0 NOTYPE LOCAL DEFAULT 17 $d - 62: 000000000000087c 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 63: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 64: 000000000001fdd8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 65: 000000000000077c 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 66: 000000000001ffb8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 67: 00000000000005a0 0 NOTYPE LOCAL DEFAULT 12 $x - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 69: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 70: 0000000000020020 0 NOTYPE WEAK DEFAULT 23 data_start - 71: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 72: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 73: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 74: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 75: 0000000000020034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 0000000000000764 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 000000000000075c 8 FUNC GLOBAL DEFAULT 13 get_two - 79: 0000000000020020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 80: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 81: 0000000000020028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 83: 0000000000000778 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 84: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000600 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000020038 4 OBJECT GLOBAL DEFAULT 24 y - 88: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 89: 0000000000000724 56 FUNC GLOBAL DEFAULT 13 main - 90: 0000000000020030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 0000000000000580 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/correct-analysis/function_summary/gcc_pic/function_summary.adt b/src/test/correct-analysis/function_summary/gcc_pic/function_summary.adt deleted file mode 100644 index d02b56bfb..000000000 --- a/src/test/correct-analysis/function_summary/gcc_pic/function_summary.adt +++ /dev/null @@ -1,550 +0,0 @@ -Project(Attrs([Attr("filename","\"gcc_pic/function_summary.out\""), -Attr("image-specification","(declare abi (name str))\n(declare arch (name str))\n(declare base-address (addr int))\n(declare bias (off int))\n(declare bits (size int))\n(declare code-region (addr int) (size int) (off int))\n(declare code-start (addr int))\n(declare entry-point (addr int))\n(declare external-reference (addr int) (name str))\n(declare format (name str))\n(declare is-executable (flag bool))\n(declare is-little-endian (flag bool))\n(declare llvm:base-address (addr int))\n(declare llvm:code-entry (name str) (off int) (size int))\n(declare llvm:coff-import-library (name str))\n(declare llvm:coff-virtual-section-header (name str) (addr int) (size int))\n(declare llvm:elf-program-header (name str) (off int) (size int))\n(declare llvm:elf-program-header-flags (name str) (ld bool) (r bool) \n (w bool) (x bool))\n(declare llvm:elf-virtual-program-header (name str) (addr int) (size int))\n(declare llvm:entry-point (addr int))\n(declare llvm:macho-symbol (name str) (value int))\n(declare llvm:name-reference (at int) (name str))\n(declare llvm:relocation (at int) (addr int))\n(declare llvm:section-entry (name str) (addr int) (size int) (off int))\n(declare llvm:section-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:segment-command (name str) (off int) (size int))\n(declare llvm:segment-command-flags (name str) (r bool) (w bool) (x bool))\n(declare llvm:symbol-entry (name str) (addr int) (size int) (off int)\n (value int))\n(declare llvm:virtual-segment-command (name str) (addr int) (size int))\n(declare mapped (addr int) (size int) (off int))\n(declare named-region (addr int) (size int) (name str))\n(declare named-symbol (addr int) (name str))\n(declare require (name str))\n(declare section (addr int) (size int))\n(declare segment (addr int) (size int) (r bool) (w bool) (x bool))\n(declare subarch (name str))\n(declare symbol-chunk (addr int) (size int) (root int))\n(declare symbol-value (addr int) (value int))\n(declare system (name str))\n(declare vendor (name str))\n\n(abi unknown)\n(arch aarch64)\n(base-address 0)\n(bias 0)\n(bits 64)\n(code-region 1956 20 1956)\n(code-region 1600 356 1600)\n(code-region 1488 96 1488)\n(code-region 1456 24 1456)\n(code-start 1652)\n(code-start 1948)\n(code-start 1600)\n(code-start 1892)\n(entry-point 1600)\n(external-reference 130992 _ITM_deregisterTMCloneTable)\n(external-reference 131000 __cxa_finalize)\n(external-reference 131016 __gmon_start__)\n(external-reference 131040 _ITM_registerTMCloneTable)\n(external-reference 131072 __libc_start_main)\n(external-reference 131080 __cxa_finalize)\n(external-reference 131088 __gmon_start__)\n(external-reference 131096 abort)\n(format elf)\n(is-executable true)\n(is-little-endian true)\n(llvm:base-address 0)\n(llvm:code-entry abort 0 0)\n(llvm:code-entry __cxa_finalize 0 0)\n(llvm:code-entry __libc_start_main 0 0)\n(llvm:code-entry _init 1456 0)\n(llvm:code-entry main 1892 56)\n(llvm:code-entry _start 1600 52)\n(llvm:code-entry abort@GLIBC_2.17 0 0)\n(llvm:code-entry get_two 1948 8)\n(llvm:code-entry _fini 1956 0)\n(llvm:code-entry __cxa_finalize@GLIBC_2.17 0 0)\n(llvm:code-entry __libc_start_main@GLIBC_2.34 0 0)\n(llvm:code-entry frame_dummy 1888 0)\n(llvm:code-entry __do_global_dtors_aux 1804 0)\n(llvm:code-entry register_tm_clones 1744 0)\n(llvm:code-entry deregister_tm_clones 1696 0)\n(llvm:code-entry call_weak_fn 1652 20)\n(llvm:code-entry .fini 1956 20)\n(llvm:code-entry .text 1600 356)\n(llvm:code-entry .plt 1488 96)\n(llvm:code-entry .init 1456 24)\n(llvm:elf-program-header 08 64952 584)\n(llvm:elf-program-header 07 0 0)\n(llvm:elf-program-header 06 1980 68)\n(llvm:elf-program-header 05 596 68)\n(llvm:elf-program-header 04 64968 480)\n(llvm:elf-program-header 03 64952 632)\n(llvm:elf-program-header 02 0 2240)\n(llvm:elf-program-header 01 568 27)\n(llvm:elf-program-header 00 64 504)\n(llvm:elf-program-header-flags 08 false true false false)\n(llvm:elf-program-header-flags 07 false true true false)\n(llvm:elf-program-header-flags 06 false true false false)\n(llvm:elf-program-header-flags 05 false true false false)\n(llvm:elf-program-header-flags 04 false true true false)\n(llvm:elf-program-header-flags 03 true true true false)\n(llvm:elf-program-header-flags 02 true true false true)\n(llvm:elf-program-header-flags 01 false true false false)\n(llvm:elf-program-header-flags 00 false true false false)\n(llvm:elf-virtual-program-header 08 130488 584)\n(llvm:elf-virtual-program-header 07 0 0)\n(llvm:elf-virtual-program-header 06 1980 68)\n(llvm:elf-virtual-program-header 05 596 68)\n(llvm:elf-virtual-program-header 04 130504 480)\n(llvm:elf-virtual-program-header 03 130488 648)\n(llvm:elf-virtual-program-header 02 0 2240)\n(llvm:elf-virtual-program-header 01 568 27)\n(llvm:elf-virtual-program-header 00 64 504)\n(llvm:entry-point 1600)\n(llvm:name-reference 131096 abort)\n(llvm:name-reference 131088 __gmon_start__)\n(llvm:name-reference 131080 __cxa_finalize)\n(llvm:name-reference 131072 __libc_start_main)\n(llvm:name-reference 131040 _ITM_registerTMCloneTable)\n(llvm:name-reference 131016 __gmon_start__)\n(llvm:name-reference 131000 __cxa_finalize)\n(llvm:name-reference 130992 _ITM_deregisterTMCloneTable)\n(llvm:section-entry .shstrtab 0 259 68435)\n(llvm:section-entry .strtab 0 579 67856)\n(llvm:section-entry .symtab 0 2232 65624)\n(llvm:section-entry .comment 0 36 65584)\n(llvm:section-entry .bss 131120 16 65584)\n(llvm:section-entry .data 131104 16 65568)\n(llvm:section-entry .got.plt 131048 56 65512)\n(llvm:section-entry .got 130984 64 65448)\n(llvm:section-entry .dynamic 130504 480 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 2048 192 2048)\n(llvm:section-entry .eh_frame_hdr 1980 68 1980)\n(llvm:section-entry .rodata 1976 4 1976)\n(llvm:section-entry .fini 1956 20 1956)\n(llvm:section-entry .text 1600 356 1600)\n(llvm:section-entry .plt 1488 96 1488)\n(llvm:section-entry .init 1456 24 1456)\n(llvm:section-entry .rela.plt 1360 96 1360)\n(llvm:section-entry .rela.dyn 1120 240 1120)\n(llvm:section-entry .gnu.version_r 1072 48 1072)\n(llvm:section-entry .gnu.version 1054 18 1054)\n(llvm:section-entry .dynstr 912 141 912)\n(llvm:section-entry .dynsym 696 216 696)\n(llvm:section-entry .gnu.hash 664 28 664)\n(llvm:section-entry .note.ABI-tag 632 32 632)\n(llvm:section-entry .note.gnu.build-id 596 36 596)\n(llvm:section-entry .interp 568 27 568)\n(llvm:section-flags .shstrtab true false false)\n(llvm:section-flags .strtab true false false)\n(llvm:section-flags .symtab true false false)\n(llvm:section-flags .comment true false false)\n(llvm:section-flags .bss true true false)\n(llvm:section-flags .data true true false)\n(llvm:section-flags .got.plt true true false)\n(llvm:section-flags .got true true false)\n(llvm:section-flags .dynamic true true false)\n(llvm:section-flags .fini_array true true false)\n(llvm:section-flags .init_array true true false)\n(llvm:section-flags .eh_frame true false false)\n(llvm:section-flags .eh_frame_hdr true false false)\n(llvm:section-flags .rodata true false false)\n(llvm:section-flags .fini true false true)\n(llvm:section-flags .text true false true)\n(llvm:section-flags .plt true false true)\n(llvm:section-flags .init true false true)\n(llvm:section-flags .rela.plt true false false)\n(llvm:section-flags .rela.dyn true false false)\n(llvm:section-flags .gnu.version_r true false false)\n(llvm:section-flags .gnu.version true false false)\n(llvm:section-flags .dynstr true false false)\n(llvm:section-flags .dynsym true false false)\n(llvm:section-flags .gnu.hash true false false)\n(llvm:section-flags .note.ABI-tag true false false)\n(llvm:section-flags .note.gnu.build-id true false false)\n(llvm:section-flags .interp true false false)\n(llvm:symbol-entry abort 0 0 0 0)\n(llvm:symbol-entry __cxa_finalize 0 0 0 0)\n(llvm:symbol-entry __libc_start_main 0 0 0 0)\n(llvm:symbol-entry _init 1456 0 1456 1456)\n(llvm:symbol-entry main 1892 56 1892 1892)\n(llvm:symbol-entry _start 1600 52 1600 1600)\n(llvm:symbol-entry abort@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry get_two 1948 8 1948 1948)\n(llvm:symbol-entry _fini 1956 0 1956 1956)\n(llvm:symbol-entry __cxa_finalize@GLIBC_2.17 0 0 0 0)\n(llvm:symbol-entry __libc_start_main@GLIBC_2.34 0 0 0 0)\n(llvm:symbol-entry frame_dummy 1888 0 1888 1888)\n(llvm:symbol-entry __do_global_dtors_aux 1804 0 1804 1804)\n(llvm:symbol-entry register_tm_clones 1744 0 1744 1744)\n(llvm:symbol-entry deregister_tm_clones 1696 0 1696 1696)\n(llvm:symbol-entry call_weak_fn 1652 20 1652 1652)\n(mapped 0 2240 0)\n(mapped 130488 632 64952)\n(named-region 0 2240 02)\n(named-region 130488 648 03)\n(named-region 568 27 .interp)\n(named-region 596 36 .note.gnu.build-id)\n(named-region 632 32 .note.ABI-tag)\n(named-region 664 28 .gnu.hash)\n(named-region 696 216 .dynsym)\n(named-region 912 141 .dynstr)\n(named-region 1054 18 .gnu.version)\n(named-region 1072 48 .gnu.version_r)\n(named-region 1120 240 .rela.dyn)\n(named-region 1360 96 .rela.plt)\n(named-region 1456 24 .init)\n(named-region 1488 96 .plt)\n(named-region 1600 356 .text)\n(named-region 1956 20 .fini)\n(named-region 1976 4 .rodata)\n(named-region 1980 68 .eh_frame_hdr)\n(named-region 2048 192 .eh_frame)\n(named-region 130488 8 .init_array)\n(named-region 130496 8 .fini_array)\n(named-region 130504 480 .dynamic)\n(named-region 130984 64 .got)\n(named-region 131048 56 .got.plt)\n(named-region 131104 16 .data)\n(named-region 131120 16 .bss)\n(named-region 0 36 .comment)\n(named-region 0 2232 .symtab)\n(named-region 0 579 .strtab)\n(named-region 0 259 .shstrtab)\n(named-symbol 1652 call_weak_fn)\n(named-symbol 1696 deregister_tm_clones)\n(named-symbol 1744 register_tm_clones)\n(named-symbol 1804 __do_global_dtors_aux)\n(named-symbol 1888 frame_dummy)\n(named-symbol 0 __libc_start_main@GLIBC_2.34)\n(named-symbol 0 __cxa_finalize@GLIBC_2.17)\n(named-symbol 1956 _fini)\n(named-symbol 1948 get_two)\n(named-symbol 0 abort@GLIBC_2.17)\n(named-symbol 1600 _start)\n(named-symbol 1892 main)\n(named-symbol 1456 _init)\n(named-symbol 0 __libc_start_main)\n(named-symbol 0 __cxa_finalize)\n(named-symbol 0 abort)\n(require libc.so.6)\n(section 568 27)\n(section 596 36)\n(section 632 32)\n(section 664 28)\n(section 696 216)\n(section 912 141)\n(section 1054 18)\n(section 1072 48)\n(section 1120 240)\n(section 1360 96)\n(section 1456 24)\n(section 1488 96)\n(section 1600 356)\n(section 1956 20)\n(section 1976 4)\n(section 1980 68)\n(section 2048 192)\n(section 130488 8)\n(section 130496 8)\n(section 130504 480)\n(section 130984 64)\n(section 131048 56)\n(section 131104 16)\n(section 131120 16)\n(section 0 36)\n(section 0 2232)\n(section 0 579)\n(section 0 259)\n(segment 0 2240 true false true)\n(segment 130488 648 true true false)\n(subarch v8)\n(symbol-chunk 1652 20 1652)\n(symbol-chunk 1948 8 1948)\n(symbol-chunk 1600 52 1600)\n(symbol-chunk 1892 56 1892)\n(symbol-value 1652 1652)\n(symbol-value 1696 1696)\n(symbol-value 1744 1744)\n(symbol-value 1804 1804)\n(symbol-value 1888 1888)\n(symbol-value 1956 1956)\n(symbol-value 1948 1948)\n(symbol-value 1600 1600)\n(symbol-value 1892 1892)\n(symbol-value 1456 1456)\n(symbol-value 0 0)\n(system \"\")\n(vendor \"\")\n"), -Attr("abi-name","\"aarch64-linux-gnu-elf\"")]), -Sections([Section(".shstrtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\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\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\xfd\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\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"), -Section(".symtab", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x58\x0c\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x38\x00\x09\x00\x40\x00\x1d\x00\x1c\x00\x06\x00\x00\x00\x04\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x38\x02\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\xc0\x08\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xb8\xfd\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\x78\x02\x00\x00\x00\x00\x00\x00\x88\x02\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00\xc8\xfd\x00\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xc8\xfd\x01\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x54\x02\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x50\xe5\x74\x64\x04\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\xbc\x07\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x51\xe5\x74\x64\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x52\xe5\x74\x64\x04\x00\x00\x00\xb8\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\x9c\x6f\x81\xc9\x3d\x4a\x61\xb0\x0b\x49\xf1\x84\xa0\xea\x5d\x17\xf3\x7a\x73\xe5\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00\xb8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\xc0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x0c\x07\x00\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x00\x02\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x00\x02\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\xb0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x10\x01\x00\x90\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6\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\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\xe2\x00\x00\xf0\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x40\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xdc\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x14\x40\xf9\xb2\xff\xff\x97\xd9\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xe0\x00\x00\xf0\x00\xe0\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x08\x00\x00\x94\xe1\x03\x00\x2a\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x40\x00\x80\x52\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x01\x00\x02\x00\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x84\xfe\xff\xff\x58\x00\x00\x00\xe4\xfe\xff\xff\x6c\x00\x00\x00\x14\xff\xff\xff\x80\x00\x00\x00\x50\xff\xff\xff\x94\x00\x00\x00\xa4\xff\xff\xff\xb8\x00\x00\x00\xa8\xff\xff\xff\xcc\x00\x00\x00\xe0\xff\xff\xff\xec\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb4\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\xd4\xfe\xff\xff\x38\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x4c\xde\xdd\x0e\x00\x00\x00\x00\x10\x00\x00\x00\xac\x00\x00\x00\xec\xfe\xff\xff\x08\x00\x00\x00"), -Section(".comment", 0x0, "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\xb7\x00\x01\x00\x00\x00\x40\x06\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00"), -Section(".interp", 0x238, "\x2f\x6c\x69\x62\x2f\x6c\x64\x2d\x6c\x69\x6e\x75\x78\x2d\x61\x61\x72\x63\x68\x36\x34\x2e\x73\x6f\x2e\x31\x00"), -Section(".note.gnu.build-id", 0x254, "\x04\x00\x00\x00\x14\x00\x00\x00\x03\x00\x00\x00\x47\x4e\x55\x00\x9c\x6f\x81\xc9\x3d\x4a\x61\xb0\x0b\x49\xf1\x84\xa0\xea\x5d\x17\xf3\x7a\x73\xe5"), -Section(".note.ABI-tag", 0x278, "\x04\x00\x00\x00\x10\x00\x00\x00\x01\x00\x00\x00\x47\x4e\x55\x00\x00\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00"), -Section(".gnu.hash", 0x298, "\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynsym", 0x2B8, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x0b\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x17\x00\x20\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x48\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x73\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".dynstr", 0x390, "\x00\x5f\x5f\x6c\x69\x62\x63\x5f\x73\x74\x61\x72\x74\x5f\x6d\x61\x69\x6e\x00\x5f\x5f\x63\x78\x61\x5f\x66\x69\x6e\x61\x6c\x69\x7a\x65\x00\x61\x62\x6f\x72\x74\x00\x6c\x69\x62\x63\x2e\x73\x6f\x2e\x36\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x31\x37\x00\x47\x4c\x49\x42\x43\x5f\x32\x2e\x33\x34\x00\x5f\x49\x54\x4d\x5f\x64\x65\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00\x5f\x5f\x67\x6d\x6f\x6e\x5f\x73\x74\x61\x72\x74\x5f\x5f\x00\x5f\x49\x54\x4d\x5f\x72\x65\x67\x69\x73\x74\x65\x72\x54\x4d\x43\x6c\x6f\x6e\x65\x54\x61\x62\x6c\x65\x00"), -Section(".gnu.version", 0x41E, "\x00\x00\x00\x00\x00\x00\x02\x00\x01\x00\x03\x00\x01\x00\x03\x00\x01\x00"), -Section(".gnu.version_r", 0x430, "\x01\x00\x02\x00\x28\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x97\x91\x96\x06\x00\x00\x03\x00\x32\x00\x00\x00\x10\x00\x00\x00\xb4\x91\x96\x06\x00\x00\x02\x00\x3d\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.dyn", 0x460, "\xb8\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x60\x07\x00\x00\x00\x00\x00\x00\xc0\xfd\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x0c\x07\x00\x00\x00\x00\x00\x00\xc0\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x34\x00\x02\x00\x00\x00\x00\x00\xd0\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x38\x00\x02\x00\x00\x00\x00\x00\xd8\xff\x01\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x64\x07\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\x03\x04\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00\xb0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\xff\x01\x00\x00\x00\x00\x00\x01\x04\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".rela.plt", 0x550, "\x00\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x02\x00\x00\x00\x00\x00\x02\x04\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".init", 0x5B0, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\x2e\x00\x00\x94\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".plt", 0x5D0, "\xf0\x7b\xbf\xa9\xf0\x00\x00\xf0\x11\xfe\x47\xf9\x10\xe2\x3f\x91\x20\x02\x1f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x10\x01\x00\x90\x11\x02\x40\xf9\x10\x02\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x06\x40\xf9\x10\x22\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0a\x40\xf9\x10\x42\x00\x91\x20\x02\x1f\xd6\x10\x01\x00\x90\x11\x0e\x40\xf9\x10\x62\x00\x91\x20\x02\x1f\xd6"), -Section(".text", 0x640, "\x1f\x20\x03\xd5\x1d\x00\x80\xd2\x1e\x00\x80\xd2\xe5\x03\x00\xaa\xe1\x03\x40\xf9\xe2\x23\x00\x91\xe6\x03\x00\x91\xe0\x00\x00\xf0\x00\xec\x47\xf9\x03\x00\x80\xd2\x04\x00\x80\xd2\xe1\xff\xff\x97\xec\xff\xff\x97\xe0\x00\x00\xf0\x00\xe4\x47\xf9\x40\x00\x00\xb4\xe4\xff\xff\x17\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x3f\x00\x00\xeb\xc0\x00\x00\x54\xe1\x00\x00\xf0\x21\xd8\x47\xf9\x61\x00\x00\xb4\xf0\x03\x01\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\x00\x01\x00\x90\x00\xc0\x00\x91\x01\x01\x00\x90\x21\xc0\x00\x91\x21\x00\x00\xcb\x22\xfc\x7f\xd3\x41\x0c\x81\x8b\x21\xfc\x41\x93\xc1\x00\x00\xb4\xe2\x00\x00\xf0\x42\xf0\x47\xf9\x62\x00\x00\xb4\xf0\x03\x02\xaa\x00\x02\x1f\xd6\xc0\x03\x5f\xd6\xfd\x7b\xbe\xa9\xfd\x03\x00\x91\xf3\x0b\x00\xf9\x13\x01\x00\x90\x60\xc2\x40\x39\x40\x01\x00\x37\xe0\x00\x00\xf0\x00\xdc\x47\xf9\x80\x00\x00\xb4\x00\x01\x00\x90\x00\x14\x40\xf9\xb2\xff\xff\x97\xd9\xff\xff\x97\x20\x00\x80\x52\x60\xc2\x00\x39\xf3\x0b\x40\xf9\xfd\x7b\xc2\xa8\xc0\x03\x5f\xd6\x1f\x20\x03\xd5\x1f\x20\x03\xd5\x1f\x20\x03\xd5\xdc\xff\xff\x17\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xe0\x00\x00\xf0\x00\xe0\x47\xf9\x21\x00\x80\x52\x01\x00\x00\xb9\x08\x00\x00\x94\xe1\x03\x00\x2a\xe0\x00\x00\xf0\x00\xe8\x47\xf9\x01\x00\x00\xb9\x00\x00\x80\x52\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6\x40\x00\x80\x52\xc0\x03\x5f\xd6"), -Section(".fini", 0x7A4, "\x1f\x20\x03\xd5\xfd\x7b\xbf\xa9\xfd\x03\x00\x91\xfd\x7b\xc1\xa8\xc0\x03\x5f\xd6"), -Section(".rodata", 0x7B8, "\x01\x00\x02\x00"), -Section(".eh_frame_hdr", 0x7BC, "\x01\x1b\x03\x3b\x40\x00\x00\x00\x07\x00\x00\x00\x84\xfe\xff\xff\x58\x00\x00\x00\xe4\xfe\xff\xff\x6c\x00\x00\x00\x14\xff\xff\xff\x80\x00\x00\x00\x50\xff\xff\xff\x94\x00\x00\x00\xa4\xff\xff\xff\xb8\x00\x00\x00\xa8\xff\xff\xff\xcc\x00\x00\x00\xe0\xff\xff\xff\xec\x00\x00\x00"), -Section(".eh_frame", 0x800, "\x10\x00\x00\x00\x00\x00\x00\x00\x01\x7a\x52\x00\x04\x78\x1e\x01\x1b\x0c\x1f\x00\x10\x00\x00\x00\x18\x00\x00\x00\x24\xfe\xff\xff\x34\x00\x00\x00\x00\x41\x07\x1e\x10\x00\x00\x00\x2c\x00\x00\x00\x70\xfe\xff\xff\x30\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x40\x00\x00\x00\x8c\xfe\xff\xff\x3c\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x54\x00\x00\x00\xb4\xfe\xff\xff\x48\x00\x00\x00\x00\x41\x0e\x20\x9d\x04\x9e\x03\x42\x93\x02\x4e\xde\xdd\xd3\x0e\x00\x00\x00\x00\x10\x00\x00\x00\x78\x00\x00\x00\xe4\xfe\xff\xff\x04\x00\x00\x00\x00\x00\x00\x00\x1c\x00\x00\x00\x8c\x00\x00\x00\xd4\xfe\xff\xff\x38\x00\x00\x00\x00\x41\x0e\x10\x9d\x02\x9e\x01\x4c\xde\xdd\x0e\x00\x00\x00\x00\x10\x00\x00\x00\xac\x00\x00\x00\xec\xfe\xff\xff\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".fini_array", 0x1FDC0, "\x0c\x07\x00\x00\x00\x00\x00\x00"), -Section(".dynamic", 0x1FDC8, "\x01\x00\x00\x00\x00\x00\x00\x00\x28\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\xb0\x05\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\x00\x00\x00\x00\xa4\x07\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\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\xf5\xfe\xff\x6f\x00\x00\x00\x00\x98\x02\x00\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x90\x03\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x8d\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\xe8\xff\x01\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x00\x00\x50\x05\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x60\x04\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf0\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\xfb\xff\xff\x6f\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\xfe\xff\xff\x6f\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\xff\xff\xff\x6f\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\xf0\xff\xff\x6f\x00\x00\x00\x00\x1e\x04\x00\x00\x00\x00\x00\x00\xf9\xff\xff\x6f\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"), -Section(".got", 0x1FFA8, "\xc8\xfd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x38\x00\x02\x00\x00\x00\x00\x00\x64\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\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00\xd0\x05\x00\x00\x00\x00\x00\x00"), -Section(".data", 0x20020, "\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x02\x00\x00\x00\x00\x00"), -Section(".init_array", 0x1FDB8, "\x60\x07\x00\x00\x00\x00\x00\x00")]), -Memmap([Annotation(Region(0x0,0x8BF), Attr("segment","02 0 2240")), -Annotation(Region(0x640,0x673), Attr("symbol","\"_start\"")), -Annotation(Region(0x0,0x102), Attr("section","\".shstrtab\"")), -Annotation(Region(0x0,0x242), Attr("section","\".strtab\"")), -Annotation(Region(0x0,0x8B7), Attr("section","\".symtab\"")), -Annotation(Region(0x0,0x23), Attr("section","\".comment\"")), -Annotation(Region(0x238,0x252), Attr("section","\".interp\"")), -Annotation(Region(0x254,0x277), Attr("section","\".note.gnu.build-id\"")), -Annotation(Region(0x278,0x297), Attr("section","\".note.ABI-tag\"")), -Annotation(Region(0x298,0x2B3), Attr("section","\".gnu.hash\"")), -Annotation(Region(0x2B8,0x38F), Attr("section","\".dynsym\"")), -Annotation(Region(0x390,0x41C), Attr("section","\".dynstr\"")), -Annotation(Region(0x41E,0x42F), Attr("section","\".gnu.version\"")), -Annotation(Region(0x430,0x45F), Attr("section","\".gnu.version_r\"")), -Annotation(Region(0x460,0x54F), Attr("section","\".rela.dyn\"")), -Annotation(Region(0x550,0x5AF), Attr("section","\".rela.plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("section","\".init\"")), -Annotation(Region(0x5D0,0x62F), Attr("section","\".plt\"")), -Annotation(Region(0x5B0,0x5C7), Attr("code-region","()")), -Annotation(Region(0x5D0,0x62F), Attr("code-region","()")), -Annotation(Region(0x640,0x673), Attr("symbol-info","_start 0x640 52")), -Annotation(Region(0x674,0x687), Attr("symbol","\"call_weak_fn\"")), -Annotation(Region(0x674,0x687), Attr("symbol-info","call_weak_fn 0x674 20")), -Annotation(Region(0x764,0x79B), Attr("symbol","\"main\"")), -Annotation(Region(0x640,0x7A3), Attr("section","\".text\"")), -Annotation(Region(0x640,0x7A3), Attr("code-region","()")), -Annotation(Region(0x764,0x79B), Attr("symbol-info","main 0x764 56")), -Annotation(Region(0x79C,0x7A3), Attr("symbol","\"get_two\"")), -Annotation(Region(0x79C,0x7A3), Attr("symbol-info","get_two 0x79C 8")), -Annotation(Region(0x7A4,0x7B7), Attr("section","\".fini\"")), -Annotation(Region(0x7A4,0x7B7), Attr("code-region","()")), -Annotation(Region(0x7B8,0x7BB), Attr("section","\".rodata\"")), -Annotation(Region(0x7BC,0x7FF), Attr("section","\".eh_frame_hdr\"")), -Annotation(Region(0x800,0x8BF), Attr("section","\".eh_frame\"")), -Annotation(Region(0x1FDB8,0x2002F), Attr("segment","03 0x1FDB8 648")), -Annotation(Region(0x1FDC0,0x1FDC7), Attr("section","\".fini_array\"")), -Annotation(Region(0x1FDC8,0x1FFA7), Attr("section","\".dynamic\"")), -Annotation(Region(0x1FFA8,0x1FFE7), Attr("section","\".got\"")), -Annotation(Region(0x1FFE8,0x2001F), Attr("section","\".got.plt\"")), -Annotation(Region(0x20020,0x2002F), Attr("section","\".data\"")), -Annotation(Region(0x1FDB8,0x1FDBF), Attr("section","\".init_array\""))]), -Program(Tid(1_490, "%000005d2"), Attrs([]), - Subs([Sub(Tid(1_438, "@__cxa_finalize"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x600"), -Attr("stub","()")]), "__cxa_finalize", Args([Arg(Tid(1_491, "%000005d3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__cxa_finalize_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(947, "@__cxa_finalize"), - Attrs([Attr("address","0x600")]), Phis([]), -Defs([Def(Tid(1_195, "%000004ab"), Attrs([Attr("address","0x600"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_202, "%000004b2"), Attrs([Attr("address","0x604"), -Attr("insn","ldr x17, [x16, #0x8]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_208, "%000004b8"), Attrs([Attr("address","0x608"), -Attr("insn","add x16, x16, #0x8")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(8,64)))]), Jmps([Call(Tid(1_213, "%000004bd"), - Attrs([Attr("address","0x60C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_439, "@__do_global_dtors_aux"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x70C")]), - "__do_global_dtors_aux", Args([Arg(Tid(1_492, "%000005d4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("__do_global_dtors_aux_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(677, "@__do_global_dtors_aux"), - Attrs([Attr("address","0x70C")]), Phis([]), Defs([Def(Tid(681, "%000002a9"), - Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("#3",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551584,64))), -Def(Tid(687, "%000002af"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#3",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(693, "%000002b5"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#3",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(697, "%000002b9"), Attrs([Attr("address","0x70C"), -Attr("insn","stp x29, x30, [sp, #-0x20]!")]), Var("R31",Imm(64)), -Var("#3",Imm(64))), Def(Tid(703, "%000002bf"), - Attrs([Attr("address","0x710"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(711, "%000002c7"), - Attrs([Attr("address","0x714"), Attr("insn","str x19, [sp, #0x10]")]), - Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),Var("R19",Imm(64)),LittleEndian(),64)), -Def(Tid(716, "%000002cc"), Attrs([Attr("address","0x718"), -Attr("insn","adrp x19, #131072")]), Var("R19",Imm(64)), Int(131072,64)), -Def(Tid(723, "%000002d3"), Attrs([Attr("address","0x71C"), -Attr("insn","ldrb w0, [x19, #0x30]")]), Var("R0",Imm(64)), -UNSIGNED(64,Load(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),LittleEndian(),8)))]), -Jmps([Goto(Tid(729, "%000002d9"), Attrs([Attr("address","0x720"), -Attr("insn","tbnz w0, #0x0, #0x28")]), - EQ(Extract(0,0,Var("R0",Imm(64))),Int(1,1)), Direct(Tid(727, "%000002d7"))), -Goto(Tid(1_480, "%000005c8"), Attrs([]), Int(1,1), -Direct(Tid(892, "%0000037c")))])), Blk(Tid(892, "%0000037c"), - Attrs([Attr("address","0x724")]), Phis([]), Defs([Def(Tid(895, "%0000037f"), - Attrs([Attr("address","0x724"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(902, "%00000386"), - Attrs([Attr("address","0x728"), Attr("insn","ldr x0, [x0, #0xfb8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4024,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(908, "%0000038c"), Attrs([Attr("address","0x72C"), -Attr("insn","cbz x0, #0x10")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(906, "%0000038a"))), Goto(Tid(1_481, "%000005c9"), Attrs([]), - Int(1,1), Direct(Tid(931, "%000003a3")))])), Blk(Tid(931, "%000003a3"), - Attrs([Attr("address","0x730")]), Phis([]), Defs([Def(Tid(934, "%000003a6"), - Attrs([Attr("address","0x730"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(941, "%000003ad"), - Attrs([Attr("address","0x734"), Attr("insn","ldr x0, [x0, #0x28]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(40,64)),LittleEndian(),64)), -Def(Tid(946, "%000003b2"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x138")]), Var("R30",Imm(64)), Int(1852,64))]), -Jmps([Call(Tid(949, "%000003b5"), Attrs([Attr("address","0x738"), -Attr("insn","bl #-0x138")]), Int(1,1), -(Direct(Tid(1_438, "@__cxa_finalize")),Direct(Tid(906, "%0000038a"))))])), -Blk(Tid(906, "%0000038a"), Attrs([Attr("address","0x73C")]), Phis([]), -Defs([Def(Tid(914, "%00000392"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Var("R30",Imm(64)), Int(1856,64))]), -Jmps([Call(Tid(916, "%00000394"), Attrs([Attr("address","0x73C"), -Attr("insn","bl #-0x9c")]), Int(1,1), -(Direct(Tid(1_452, "@deregister_tm_clones")),Direct(Tid(918, "%00000396"))))])), -Blk(Tid(918, "%00000396"), Attrs([Attr("address","0x740")]), Phis([]), -Defs([Def(Tid(921, "%00000399"), Attrs([Attr("address","0x740"), -Attr("insn","mov w0, #0x1")]), Var("R0",Imm(64)), Int(1,64)), -Def(Tid(929, "%000003a1"), Attrs([Attr("address","0x744"), -Attr("insn","strb w0, [x19, #0x30]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("R19",Imm(64)),Int(48,64)),Extract(7,0,Var("R0",Imm(64))),LittleEndian(),8))]), -Jmps([Goto(Tid(1_482, "%000005ca"), Attrs([]), Int(1,1), -Direct(Tid(727, "%000002d7")))])), Blk(Tid(727, "%000002d7"), - Attrs([Attr("address","0x748")]), Phis([]), Defs([Def(Tid(737, "%000002e1"), - Attrs([Attr("address","0x748"), Attr("insn","ldr x19, [sp, #0x10]")]), - Var("R19",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(744, "%000002e8"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(749, "%000002ed"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(753, "%000002f1"), Attrs([Attr("address","0x74C"), -Attr("insn","ldp x29, x30, [sp], #0x20")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(32,64)))]), Jmps([Call(Tid(758, "%000002f6"), - Attrs([Attr("address","0x750"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_443, "@__libc_start_main"), - Attrs([Attr("c.proto","signed (*)(signed (*)(signed , char** , char** );* main, signed , char** , \nvoid* auxv)"), -Attr("address","0x5F0"), Attr("stub","()")]), "__libc_start_main", - Args([Arg(Tid(1_493, "%000005d5"), - Attrs([Attr("c.layout","**[ : 64]"), -Attr("c.data","Top:u64 ptr ptr"), -Attr("c.type","signed (*)(signed , char** , char** );*")]), - Var("__libc_start_main_main",Imm(64)), Var("R0",Imm(64)), In()), -Arg(Tid(1_494, "%000005d6"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_arg2",Imm(32)), LOW(32,Var("R1",Imm(64))), In()), -Arg(Tid(1_495, "%000005d7"), Attrs([Attr("c.layout","**[char : 8]"), -Attr("c.data","Top:u8 ptr ptr"), Attr("c.type","char**")]), - Var("__libc_start_main_arg3",Imm(64)), Var("R2",Imm(64)), Both()), -Arg(Tid(1_496, "%000005d8"), Attrs([Attr("c.layout","*[ : 8]"), -Attr("c.data","{} ptr"), Attr("c.type","void*")]), - Var("__libc_start_main_auxv",Imm(64)), Var("R3",Imm(64)), Both()), -Arg(Tid(1_497, "%000005d9"), Attrs([Attr("c.layout","[signed : 32]"), -Attr("c.data","Top:u32"), Attr("c.type","signed")]), - Var("__libc_start_main_result",Imm(32)), LOW(32,Var("R0",Imm(64))), -Out())]), Blks([Blk(Tid(504, "@__libc_start_main"), - Attrs([Attr("address","0x5F0")]), Phis([]), -Defs([Def(Tid(1_173, "%00000495"), Attrs([Attr("address","0x5F0"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_180, "%0000049c"), Attrs([Attr("address","0x5F4"), -Attr("insn","ldr x17, [x16]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R16",Imm(64)),LittleEndian(),64)), -Def(Tid(1_186, "%000004a2"), Attrs([Attr("address","0x5F8"), -Attr("insn","add x16, x16, #0x0")]), Var("R16",Imm(64)), -Var("R16",Imm(64)))]), Jmps([Call(Tid(1_191, "%000004a7"), - Attrs([Attr("address","0x5FC"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_444, "@_fini"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x7A4")]), - "_fini", Args([Arg(Tid(1_498, "%000005da"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_fini_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(32, "@_fini"), - Attrs([Attr("address","0x7A4")]), Phis([]), Defs([Def(Tid(38, "%00000026"), - Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#0",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(44, "%0000002c"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#0",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(50, "%00000032"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#0",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(54, "%00000036"), Attrs([Attr("address","0x7A8"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#0",Imm(64))), Def(Tid(60, "%0000003c"), Attrs([Attr("address","0x7AC"), -Attr("insn","mov x29, sp")]), Var("R29",Imm(64)), Var("R31",Imm(64))), -Def(Tid(67, "%00000043"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(72, "%00000048"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(76, "%0000004c"), Attrs([Attr("address","0x7B0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(81, "%00000051"), - Attrs([Attr("address","0x7B4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_445, "@_init"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x5B0")]), - "_init", Args([Arg(Tid(1_499, "%000005db"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_init_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(1_285, "@_init"), - Attrs([Attr("address","0x5B0")]), Phis([]), -Defs([Def(Tid(1_291, "%0000050b"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#6",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(1_297, "%00000511"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#6",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(1_303, "%00000517"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#6",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(1_307, "%0000051b"), Attrs([Attr("address","0x5B4"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#6",Imm(64))), Def(Tid(1_313, "%00000521"), - Attrs([Attr("address","0x5B8"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(1_318, "%00000526"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), - Var("R30",Imm(64)), Int(1472,64))]), Jmps([Call(Tid(1_320, "%00000528"), - Attrs([Attr("address","0x5BC"), Attr("insn","bl #0xb8")]), Int(1,1), -(Direct(Tid(1_450, "@call_weak_fn")),Direct(Tid(1_322, "%0000052a"))))])), -Blk(Tid(1_322, "%0000052a"), Attrs([Attr("address","0x5C0")]), Phis([]), -Defs([Def(Tid(1_327, "%0000052f"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(1_332, "%00000534"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(1_336, "%00000538"), Attrs([Attr("address","0x5C0"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_341, "%0000053d"), - Attrs([Attr("address","0x5C4"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_446, "@_start"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x640"), -Attr("entry-point","()")]), "_start", Args([Arg(Tid(1_500, "%000005dc"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("_start_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(441, "@_start"), - Attrs([Attr("address","0x640")]), Phis([]), Defs([Def(Tid(446, "%000001be"), - Attrs([Attr("address","0x644"), Attr("insn","mov x29, #0x0")]), - Var("R29",Imm(64)), Int(0,64)), Def(Tid(451, "%000001c3"), - Attrs([Attr("address","0x648"), Attr("insn","mov x30, #0x0")]), - Var("R30",Imm(64)), Int(0,64)), Def(Tid(457, "%000001c9"), - Attrs([Attr("address","0x64C"), Attr("insn","mov x5, x0")]), - Var("R5",Imm(64)), Var("R0",Imm(64))), Def(Tid(464, "%000001d0"), - 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(470, "%000001d6"), Attrs([Attr("address","0x654"), -Attr("insn","add x2, sp, #0x8")]), Var("R2",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(8,64))), Def(Tid(476, "%000001dc"), - Attrs([Attr("address","0x658"), Attr("insn","mov x6, sp")]), - Var("R6",Imm(64)), Var("R31",Imm(64))), Def(Tid(481, "%000001e1"), - Attrs([Attr("address","0x65C"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(488, "%000001e8"), - Attrs([Attr("address","0x660"), Attr("insn","ldr x0, [x0, #0xfd8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4056,64)),LittleEndian(),64)), -Def(Tid(493, "%000001ed"), Attrs([Attr("address","0x664"), -Attr("insn","mov x3, #0x0")]), Var("R3",Imm(64)), Int(0,64)), -Def(Tid(498, "%000001f2"), Attrs([Attr("address","0x668"), -Attr("insn","mov x4, #0x0")]), Var("R4",Imm(64)), Int(0,64)), -Def(Tid(503, "%000001f7"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Var("R30",Imm(64)), Int(1648,64))]), -Jmps([Call(Tid(506, "%000001fa"), Attrs([Attr("address","0x66C"), -Attr("insn","bl #-0x7c")]), Int(1,1), -(Direct(Tid(1_443, "@__libc_start_main")),Direct(Tid(508, "%000001fc"))))])), -Blk(Tid(508, "%000001fc"), Attrs([Attr("address","0x670")]), Phis([]), -Defs([Def(Tid(511, "%000001ff"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Var("R30",Imm(64)), Int(1652,64))]), -Jmps([Call(Tid(514, "%00000202"), Attrs([Attr("address","0x670"), -Attr("insn","bl #-0x50")]), Int(1,1), -(Direct(Tid(1_449, "@abort")),Direct(Tid(1_483, "%000005cb"))))])), -Blk(Tid(1_483, "%000005cb"), Attrs([]), Phis([]), Defs([]), -Jmps([Call(Tid(1_484, "%000005cc"), Attrs([]), Int(1,1), -(Direct(Tid(1_450, "@call_weak_fn")),))]))])), Sub(Tid(1_449, "@abort"), - Attrs([Attr("noreturn","()"), Attr("c.proto","void (*)(void)"), -Attr("address","0x620"), Attr("stub","()")]), "abort", Args([]), -Blks([Blk(Tid(512, "@abort"), Attrs([Attr("address","0x620")]), Phis([]), -Defs([Def(Tid(1_239, "%000004d7"), Attrs([Attr("address","0x620"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_246, "%000004de"), Attrs([Attr("address","0x624"), -Attr("insn","ldr x17, [x16, #0x18]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(24,64)),LittleEndian(),64)), -Def(Tid(1_252, "%000004e4"), Attrs([Attr("address","0x628"), -Attr("insn","add x16, x16, #0x18")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(24,64)))]), Jmps([Call(Tid(1_257, "%000004e9"), - Attrs([Attr("address","0x62C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), Sub(Tid(1_450, "@call_weak_fn"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x674")]), - "call_weak_fn", Args([Arg(Tid(1_501, "%000005dd"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("call_weak_fn_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(516, "@call_weak_fn"), - Attrs([Attr("address","0x674")]), Phis([]), Defs([Def(Tid(519, "%00000207"), - Attrs([Attr("address","0x674"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(526, "%0000020e"), - Attrs([Attr("address","0x678"), Attr("insn","ldr x0, [x0, #0xfc8]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4040,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(532, "%00000214"), Attrs([Attr("address","0x67C"), -Attr("insn","cbz x0, #0x8")]), EQ(Var("R0",Imm(64)),Int(0,64)), -Direct(Tid(530, "%00000212"))), Goto(Tid(1_485, "%000005cd"), Attrs([]), - Int(1,1), Direct(Tid(1_011, "%000003f3")))])), Blk(Tid(530, "%00000212"), - Attrs([Attr("address","0x684")]), Phis([]), Defs([]), -Jmps([Call(Tid(538, "%0000021a"), Attrs([Attr("address","0x684"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_011, "%000003f3"), Attrs([Attr("address","0x680")]), Phis([]), -Defs([]), Jmps([Goto(Tid(1_014, "%000003f6"), Attrs([Attr("address","0x680"), -Attr("insn","b #-0x70")]), Int(1,1), -Direct(Tid(1_012, "@__gmon_start__")))])), Blk(Tid(1_012, "@__gmon_start__"), - Attrs([Attr("address","0x610")]), Phis([]), -Defs([Def(Tid(1_217, "%000004c1"), Attrs([Attr("address","0x610"), -Attr("insn","adrp x16, #131072")]), Var("R16",Imm(64)), Int(131072,64)), -Def(Tid(1_224, "%000004c8"), Attrs([Attr("address","0x614"), -Attr("insn","ldr x17, [x16, #0x10]")]), Var("R17",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R16",Imm(64)),Int(16,64)),LittleEndian(),64)), -Def(Tid(1_230, "%000004ce"), Attrs([Attr("address","0x618"), -Attr("insn","add x16, x16, #0x10")]), Var("R16",Imm(64)), -PLUS(Var("R16",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(1_235, "%000004d3"), - Attrs([Attr("address","0x61C"), Attr("insn","br x17")]), Int(1,1), -(Indirect(Var("R17",Imm(64))),))]))])), -Sub(Tid(1_452, "@deregister_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6A0")]), - "deregister_tm_clones", Args([Arg(Tid(1_502, "%000005de"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("deregister_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(552, "@deregister_tm_clones"), - Attrs([Attr("address","0x6A0")]), Phis([]), Defs([Def(Tid(555, "%0000022b"), - Attrs([Attr("address","0x6A0"), Attr("insn","adrp x0, #131072")]), - Var("R0",Imm(64)), Int(131072,64)), Def(Tid(561, "%00000231"), - Attrs([Attr("address","0x6A4"), Attr("insn","add x0, x0, #0x30")]), - Var("R0",Imm(64)), PLUS(Var("R0",Imm(64)),Int(48,64))), -Def(Tid(566, "%00000236"), Attrs([Attr("address","0x6A8"), -Attr("insn","adrp x1, #131072")]), Var("R1",Imm(64)), Int(131072,64)), -Def(Tid(572, "%0000023c"), Attrs([Attr("address","0x6AC"), -Attr("insn","add x1, x1, #0x30")]), Var("R1",Imm(64)), -PLUS(Var("R1",Imm(64)),Int(48,64))), Def(Tid(578, "%00000242"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#1",Imm(64)), NOT(Var("R0",Imm(64)))), Def(Tid(583, "%00000247"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("#2",Imm(64)), PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64))))), -Def(Tid(589, "%0000024d"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("VF",Imm(1)), -NEQ(SIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(SIGNED(65,Var("R1",Imm(64))),SIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(595, "%00000253"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("CF",Imm(1)), -NEQ(UNSIGNED(65,PLUS(Var("#2",Imm(64)),Int(1,64))),PLUS(PLUS(UNSIGNED(65,Var("R1",Imm(64))),UNSIGNED(65,Var("#1",Imm(64)))),Int(1,65)))), -Def(Tid(599, "%00000257"), Attrs([Attr("address","0x6B0"), -Attr("insn","cmp x1, x0")]), Var("ZF",Imm(1)), -EQ(PLUS(Var("#2",Imm(64)),Int(1,64)),Int(0,64))), Def(Tid(603, "%0000025b"), - Attrs([Attr("address","0x6B0"), Attr("insn","cmp x1, x0")]), - Var("NF",Imm(1)), Extract(63,63,PLUS(Var("#2",Imm(64)),Int(1,64))))]), -Jmps([Goto(Tid(609, "%00000261"), Attrs([Attr("address","0x6B4"), -Attr("insn","b.eq #0x18")]), EQ(Var("ZF",Imm(1)),Int(1,1)), -Direct(Tid(607, "%0000025f"))), Goto(Tid(1_486, "%000005ce"), Attrs([]), - Int(1,1), Direct(Tid(981, "%000003d5")))])), Blk(Tid(981, "%000003d5"), - Attrs([Attr("address","0x6B8")]), Phis([]), Defs([Def(Tid(984, "%000003d8"), - Attrs([Attr("address","0x6B8"), Attr("insn","adrp x1, #126976")]), - Var("R1",Imm(64)), Int(126976,64)), Def(Tid(991, "%000003df"), - Attrs([Attr("address","0x6BC"), Attr("insn","ldr x1, [x1, #0xfb0]")]), - Var("R1",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R1",Imm(64)),Int(4016,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(996, "%000003e4"), Attrs([Attr("address","0x6C0"), -Attr("insn","cbz x1, #0xc")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(607, "%0000025f"))), Goto(Tid(1_487, "%000005cf"), Attrs([]), - Int(1,1), Direct(Tid(1_000, "%000003e8")))])), Blk(Tid(607, "%0000025f"), - Attrs([Attr("address","0x6CC")]), Phis([]), Defs([]), -Jmps([Call(Tid(615, "%00000267"), Attrs([Attr("address","0x6CC"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(1_000, "%000003e8"), Attrs([Attr("address","0x6C4")]), Phis([]), -Defs([Def(Tid(1_004, "%000003ec"), Attrs([Attr("address","0x6C4"), -Attr("insn","mov x16, x1")]), Var("R16",Imm(64)), Var("R1",Imm(64)))]), -Jmps([Call(Tid(1_009, "%000003f1"), Attrs([Attr("address","0x6C8"), -Attr("insn","br x16")]), Int(1,1), (Indirect(Var("R16",Imm(64))),))]))])), -Sub(Tid(1_455, "@frame_dummy"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x760")]), "frame_dummy", Args([Arg(Tid(1_503, "%000005df"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("frame_dummy_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(766, "@frame_dummy"), - Attrs([Attr("address","0x760")]), Phis([]), Defs([]), -Jmps([Call(Tid(768, "%00000300"), Attrs([Attr("address","0x760"), -Attr("insn","b #-0x90")]), Int(1,1), -(Direct(Tid(1_458, "@register_tm_clones")),))]))])), -Sub(Tid(1_456, "@get_two"), Attrs([Attr("c.proto","signed (*)(void)"), -Attr("address","0x79C")]), "get_two", Args([Arg(Tid(1_504, "%000005e0"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("get_two_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(827, "@get_two"), - Attrs([Attr("address","0x79C")]), Phis([]), Defs([Def(Tid(833, "%00000341"), - Attrs([Attr("address","0x79C"), Attr("insn","mov w0, #0x2")]), - Var("R0",Imm(64)), Int(2,64))]), Jmps([Call(Tid(838, "%00000346"), - Attrs([Attr("address","0x7A0"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), Sub(Tid(1_457, "@main"), - Attrs([Attr("c.proto","signed (*)(signed argc, const char** argv)"), -Attr("address","0x764")]), "main", Args([Arg(Tid(1_505, "%000005e1"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_argc",Imm(32)), -LOW(32,Var("R0",Imm(64))), In()), Arg(Tid(1_506, "%000005e2"), - Attrs([Attr("c.layout","**[char : 8]"), Attr("c.data","Top:u8 ptr ptr"), -Attr("c.type"," const char**")]), Var("main_argv",Imm(64)), -Var("R1",Imm(64)), Both()), Arg(Tid(1_507, "%000005e3"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("main_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), Blks([Blk(Tid(770, "@main"), - Attrs([Attr("address","0x764")]), Phis([]), Defs([Def(Tid(774, "%00000306"), - Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("#4",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(18446744073709551600,64))), -Def(Tid(780, "%0000030c"), Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("#4",Imm(64)),Var("R29",Imm(64)),LittleEndian(),64)), -Def(Tid(786, "%00000312"), Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),PLUS(Var("#4",Imm(64)),Int(8,64)),Var("R30",Imm(64)),LittleEndian(),64)), -Def(Tid(790, "%00000316"), Attrs([Attr("address","0x764"), -Attr("insn","stp x29, x30, [sp, #-0x10]!")]), Var("R31",Imm(64)), -Var("#4",Imm(64))), Def(Tid(796, "%0000031c"), - Attrs([Attr("address","0x768"), Attr("insn","mov x29, sp")]), - Var("R29",Imm(64)), Var("R31",Imm(64))), Def(Tid(801, "%00000321"), - Attrs([Attr("address","0x76C"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(808, "%00000328"), - Attrs([Attr("address","0x770"), Attr("insn","ldr x0, [x0, #0xfc0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4032,64)),LittleEndian(),64)), -Def(Tid(813, "%0000032d"), Attrs([Attr("address","0x774"), -Attr("insn","mov w1, #0x1")]), Var("R1",Imm(64)), Int(1,64)), -Def(Tid(821, "%00000335"), Attrs([Attr("address","0x778"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(826, "%0000033a"), Attrs([Attr("address","0x77C"), -Attr("insn","bl #0x20")]), Var("R30",Imm(64)), Int(1920,64))]), -Jmps([Call(Tid(829, "%0000033d"), Attrs([Attr("address","0x77C"), -Attr("insn","bl #0x20")]), Int(1,1), -(Direct(Tid(1_456, "@get_two")),Direct(Tid(840, "%00000348"))))])), -Blk(Tid(840, "%00000348"), Attrs([Attr("address","0x780")]), Phis([]), -Defs([Def(Tid(844, "%0000034c"), Attrs([Attr("address","0x780"), -Attr("insn","mov w1, w0")]), Var("R1",Imm(64)), -UNSIGNED(64,Extract(31,0,Var("R0",Imm(64))))), Def(Tid(849, "%00000351"), - Attrs([Attr("address","0x784"), Attr("insn","adrp x0, #126976")]), - Var("R0",Imm(64)), Int(126976,64)), Def(Tid(856, "%00000358"), - Attrs([Attr("address","0x788"), Attr("insn","ldr x0, [x0, #0xfd0]")]), - Var("R0",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R0",Imm(64)),Int(4048,64)),LittleEndian(),64)), -Def(Tid(864, "%00000360"), Attrs([Attr("address","0x78C"), -Attr("insn","str w1, [x0]")]), Var("mem",Mem(64,8)), -Store(Var("mem",Mem(64,8)),Var("R0",Imm(64)),Extract(31,0,Var("R1",Imm(64))),LittleEndian(),32)), -Def(Tid(869, "%00000365"), Attrs([Attr("address","0x790"), -Attr("insn","mov w0, #0x0")]), Var("R0",Imm(64)), Int(0,64)), -Def(Tid(876, "%0000036c"), Attrs([Attr("address","0x794"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R29",Imm(64)), -Load(Var("mem",Mem(64,8)),Var("R31",Imm(64)),LittleEndian(),64)), -Def(Tid(881, "%00000371"), Attrs([Attr("address","0x794"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R30",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R31",Imm(64)),Int(8,64)),LittleEndian(),64)), -Def(Tid(885, "%00000375"), Attrs([Attr("address","0x794"), -Attr("insn","ldp x29, x30, [sp], #0x10")]), Var("R31",Imm(64)), -PLUS(Var("R31",Imm(64)),Int(16,64)))]), Jmps([Call(Tid(890, "%0000037a"), - Attrs([Attr("address","0x798"), Attr("insn","ret")]), Int(1,1), -(Indirect(Var("R30",Imm(64))),))]))])), -Sub(Tid(1_458, "@register_tm_clones"), - Attrs([Attr("c.proto","signed (*)(void)"), Attr("address","0x6D0")]), - "register_tm_clones", Args([Arg(Tid(1_508, "%000005e4"), - Attrs([Attr("c.layout","[signed : 32]"), Attr("c.data","Top:u32"), -Attr("c.type","signed")]), Var("register_tm_clones_result",Imm(32)), -LOW(32,Var("R0",Imm(64))), Out())]), -Blks([Blk(Tid(617, "@register_tm_clones"), Attrs([Attr("address","0x6D0")]), - Phis([]), Defs([Def(Tid(620, "%0000026c"), Attrs([Attr("address","0x6D0"), -Attr("insn","adrp x0, #131072")]), Var("R0",Imm(64)), Int(131072,64)), -Def(Tid(626, "%00000272"), Attrs([Attr("address","0x6D4"), -Attr("insn","add x0, x0, #0x30")]), Var("R0",Imm(64)), -PLUS(Var("R0",Imm(64)),Int(48,64))), Def(Tid(631, "%00000277"), - Attrs([Attr("address","0x6D8"), Attr("insn","adrp x1, #131072")]), - Var("R1",Imm(64)), Int(131072,64)), Def(Tid(637, "%0000027d"), - Attrs([Attr("address","0x6DC"), Attr("insn","add x1, x1, #0x30")]), - Var("R1",Imm(64)), PLUS(Var("R1",Imm(64)),Int(48,64))), -Def(Tid(644, "%00000284"), Attrs([Attr("address","0x6E0"), -Attr("insn","sub x1, x1, x0")]), Var("R1",Imm(64)), -PLUS(PLUS(Var("R1",Imm(64)),NOT(Var("R0",Imm(64)))),Int(1,64))), -Def(Tid(650, "%0000028a"), Attrs([Attr("address","0x6E4"), -Attr("insn","lsr x2, x1, #63")]), Var("R2",Imm(64)), -Concat(Int(0,63),Extract(63,63,Var("R1",Imm(64))))), -Def(Tid(657, "%00000291"), Attrs([Attr("address","0x6E8"), -Attr("insn","add x1, x2, x1, asr #3")]), Var("R1",Imm(64)), -PLUS(Var("R2",Imm(64)),ARSHIFT(Var("R1",Imm(64)),Int(3,3)))), -Def(Tid(663, "%00000297"), Attrs([Attr("address","0x6EC"), -Attr("insn","asr x1, x1, #1")]), Var("R1",Imm(64)), -SIGNED(64,Extract(63,1,Var("R1",Imm(64)))))]), -Jmps([Goto(Tid(669, "%0000029d"), Attrs([Attr("address","0x6F0"), -Attr("insn","cbz x1, #0x18")]), EQ(Var("R1",Imm(64)),Int(0,64)), -Direct(Tid(667, "%0000029b"))), Goto(Tid(1_488, "%000005d0"), Attrs([]), - Int(1,1), Direct(Tid(951, "%000003b7")))])), Blk(Tid(951, "%000003b7"), - Attrs([Attr("address","0x6F4")]), Phis([]), Defs([Def(Tid(954, "%000003ba"), - Attrs([Attr("address","0x6F4"), Attr("insn","adrp x2, #126976")]), - Var("R2",Imm(64)), Int(126976,64)), Def(Tid(961, "%000003c1"), - Attrs([Attr("address","0x6F8"), Attr("insn","ldr x2, [x2, #0xfe0]")]), - Var("R2",Imm(64)), -Load(Var("mem",Mem(64,8)),PLUS(Var("R2",Imm(64)),Int(4064,64)),LittleEndian(),64))]), -Jmps([Goto(Tid(966, "%000003c6"), Attrs([Attr("address","0x6FC"), -Attr("insn","cbz x2, #0xc")]), EQ(Var("R2",Imm(64)),Int(0,64)), -Direct(Tid(667, "%0000029b"))), Goto(Tid(1_489, "%000005d1"), Attrs([]), - Int(1,1), Direct(Tid(970, "%000003ca")))])), Blk(Tid(667, "%0000029b"), - Attrs([Attr("address","0x708")]), Phis([]), Defs([]), -Jmps([Call(Tid(675, "%000002a3"), Attrs([Attr("address","0x708"), -Attr("insn","ret")]), Int(1,1), (Indirect(Var("R30",Imm(64))),))])), -Blk(Tid(970, "%000003ca"), Attrs([Attr("address","0x700")]), Phis([]), -Defs([Def(Tid(974, "%000003ce"), Attrs([Attr("address","0x700"), -Attr("insn","mov x16, x2")]), Var("R16",Imm(64)), Var("R2",Imm(64)))]), -Jmps([Call(Tid(979, "%000003d3"), Attrs([Attr("address","0x704"), -Attr("insn","br x16")]), Int(1,1), -(Indirect(Var("R16",Imm(64))),))]))]))]))) \ No newline at end of file diff --git a/src/test/correct-analysis/function_summary/gcc_pic/function_summary.bir b/src/test/correct-analysis/function_summary/gcc_pic/function_summary.bir deleted file mode 100644 index 7ab47f34b..000000000 --- a/src/test/correct-analysis/function_summary/gcc_pic/function_summary.bir +++ /dev/null @@ -1,251 +0,0 @@ -000005d2: program -0000059e: sub __cxa_finalize(__cxa_finalize_result) -000005d3: __cxa_finalize_result :: out u32 = low:32[R0] - -000003b3: -000004ab: R16 := 0x20000 -000004b2: R17 := mem[R16 + 8, el]:u64 -000004b8: R16 := R16 + 8 -000004bd: call R17 with noreturn - -0000059f: sub __do_global_dtors_aux(__do_global_dtors_aux_result) -000005d4: __do_global_dtors_aux_result :: out u32 = low:32[R0] - -000002a5: -000002a9: #3 := R31 - 0x20 -000002af: mem := mem with [#3, el]:u64 <- R29 -000002b5: mem := mem with [#3 + 8, el]:u64 <- R30 -000002b9: R31 := #3 -000002bf: R29 := R31 -000002c7: mem := mem with [R31 + 0x10, el]:u64 <- R19 -000002cc: R19 := 0x20000 -000002d3: R0 := pad:64[mem[R19 + 0x30]] -000002d9: when 0:0[R0] goto %000002d7 -000005c8: goto %0000037c - -0000037c: -0000037f: R0 := 0x1F000 -00000386: R0 := mem[R0 + 0xFB8, el]:u64 -0000038c: when R0 = 0 goto %0000038a -000005c9: goto %000003a3 - -000003a3: -000003a6: R0 := 0x20000 -000003ad: R0 := mem[R0 + 0x28, el]:u64 -000003b2: R30 := 0x73C -000003b5: call @__cxa_finalize with return %0000038a - -0000038a: -00000392: R30 := 0x740 -00000394: call @deregister_tm_clones with return %00000396 - -00000396: -00000399: R0 := 1 -000003a1: mem := mem with [R19 + 0x30] <- 7:0[R0] -000005ca: goto %000002d7 - -000002d7: -000002e1: R19 := mem[R31 + 0x10, el]:u64 -000002e8: R29 := mem[R31, el]:u64 -000002ed: R30 := mem[R31 + 8, el]:u64 -000002f1: R31 := R31 + 0x20 -000002f6: call R30 with noreturn - -000005a3: sub __libc_start_main(__libc_start_main_main, __libc_start_main_arg2, __libc_start_main_arg3, __libc_start_main_auxv, __libc_start_main_result) -000005d5: __libc_start_main_main :: in u64 = R0 -000005d6: __libc_start_main_arg2 :: in u32 = low:32[R1] -000005d7: __libc_start_main_arg3 :: in out u64 = R2 -000005d8: __libc_start_main_auxv :: in out u64 = R3 -000005d9: __libc_start_main_result :: out u32 = low:32[R0] - -000001f8: -00000495: R16 := 0x20000 -0000049c: R17 := mem[R16, el]:u64 -000004a2: R16 := R16 -000004a7: call R17 with noreturn - -000005a4: sub _fini(_fini_result) -000005da: _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 - -000005a5: sub _init(_init_result) -000005db: _init_result :: out u32 = low:32[R0] - -00000505: -0000050b: #6 := R31 - 0x10 -00000511: mem := mem with [#6, el]:u64 <- R29 -00000517: mem := mem with [#6 + 8, el]:u64 <- R30 -0000051b: R31 := #6 -00000521: R29 := R31 -00000526: R30 := 0x5C0 -00000528: call @call_weak_fn with return %0000052a - -0000052a: -0000052f: R29 := mem[R31, el]:u64 -00000534: R30 := mem[R31 + 8, el]:u64 -00000538: R31 := R31 + 0x10 -0000053d: call R30 with noreturn - -000005a6: sub _start(_start_result) -000005dc: _start_result :: out u32 = low:32[R0] - -000001b9: -000001be: R29 := 0 -000001c3: R30 := 0 -000001c9: R5 := R0 -000001d0: R1 := mem[R31, el]:u64 -000001d6: R2 := R31 + 8 -000001dc: R6 := R31 -000001e1: R0 := 0x1F000 -000001e8: R0 := mem[R0 + 0xFD8, el]:u64 -000001ed: R3 := 0 -000001f2: R4 := 0 -000001f7: R30 := 0x670 -000001fa: call @__libc_start_main with return %000001fc - -000001fc: -000001ff: R30 := 0x674 -00000202: call @abort with return %000005cb - -000005cb: -000005cc: call @call_weak_fn with noreturn - -000005a9: sub abort() - - -00000200: -000004d7: R16 := 0x20000 -000004de: R17 := mem[R16 + 0x18, el]:u64 -000004e4: R16 := R16 + 0x18 -000004e9: call R17 with noreturn - -000005aa: sub call_weak_fn(call_weak_fn_result) -000005dd: call_weak_fn_result :: out u32 = low:32[R0] - -00000204: -00000207: R0 := 0x1F000 -0000020e: R0 := mem[R0 + 0xFC8, el]:u64 -00000214: when R0 = 0 goto %00000212 -000005cd: goto %000003f3 - -00000212: -0000021a: call R30 with noreturn - -000003f3: -000003f6: goto @__gmon_start__ - -000003f4: -000004c1: R16 := 0x20000 -000004c8: R17 := mem[R16 + 0x10, el]:u64 -000004ce: R16 := R16 + 0x10 -000004d3: call R17 with noreturn - -000005ac: sub deregister_tm_clones(deregister_tm_clones_result) -000005de: deregister_tm_clones_result :: out u32 = low:32[R0] - -00000228: -0000022b: R0 := 0x20000 -00000231: R0 := R0 + 0x30 -00000236: R1 := 0x20000 -0000023c: R1 := R1 + 0x30 -00000242: #1 := ~R0 -00000247: #2 := R1 + ~R0 -0000024d: VF := extend:65[#2 + 1] <> extend:65[R1] + extend:65[#1] + 1 -00000253: CF := pad:65[#2 + 1] <> pad:65[R1] + pad:65[#1] + 1 -00000257: ZF := #2 + 1 = 0 -0000025b: NF := 63:63[#2 + 1] -00000261: when ZF goto %0000025f -000005ce: goto %000003d5 - -000003d5: -000003d8: R1 := 0x1F000 -000003df: R1 := mem[R1 + 0xFB0, el]:u64 -000003e4: when R1 = 0 goto %0000025f -000005cf: goto %000003e8 - -0000025f: -00000267: call R30 with noreturn - -000003e8: -000003ec: R16 := R1 -000003f1: call R16 with noreturn - -000005af: sub frame_dummy(frame_dummy_result) -000005df: frame_dummy_result :: out u32 = low:32[R0] - -000002fe: -00000300: call @register_tm_clones with noreturn - -000005b0: sub get_two(get_two_result) -000005e0: get_two_result :: out u32 = low:32[R0] - -0000033b: -00000341: R0 := 2 -00000346: call R30 with noreturn - -000005b1: sub main(main_argc, main_argv, main_result) -000005e1: main_argc :: in u32 = low:32[R0] -000005e2: main_argv :: in out u64 = R1 -000005e3: main_result :: out u32 = low:32[R0] - -00000302: -00000306: #4 := R31 - 0x10 -0000030c: mem := mem with [#4, el]:u64 <- R29 -00000312: mem := mem with [#4 + 8, el]:u64 <- R30 -00000316: R31 := #4 -0000031c: R29 := R31 -00000321: R0 := 0x1F000 -00000328: R0 := mem[R0 + 0xFC0, el]:u64 -0000032d: R1 := 1 -00000335: mem := mem with [R0, el]:u32 <- 31:0[R1] -0000033a: R30 := 0x780 -0000033d: call @get_two with return %00000348 - -00000348: -0000034c: R1 := pad:64[31:0[R0]] -00000351: R0 := 0x1F000 -00000358: R0 := mem[R0 + 0xFD0, el]:u64 -00000360: mem := mem with [R0, el]:u32 <- 31:0[R1] -00000365: R0 := 0 -0000036c: R29 := mem[R31, el]:u64 -00000371: R30 := mem[R31 + 8, el]:u64 -00000375: R31 := R31 + 0x10 -0000037a: call R30 with noreturn - -000005b2: sub register_tm_clones(register_tm_clones_result) -000005e4: register_tm_clones_result :: out u32 = low:32[R0] - -00000269: -0000026c: R0 := 0x20000 -00000272: R0 := R0 + 0x30 -00000277: R1 := 0x20000 -0000027d: R1 := R1 + 0x30 -00000284: R1 := R1 + ~R0 + 1 -0000028a: R2 := 0.63:63[R1] -00000291: R1 := R2 + (R1 ~>> 3) -00000297: R1 := extend:64[63:1[R1]] -0000029d: when R1 = 0 goto %0000029b -000005d0: goto %000003b7 - -000003b7: -000003ba: R2 := 0x1F000 -000003c1: R2 := mem[R2 + 0xFE0, el]:u64 -000003c6: when R2 = 0 goto %0000029b -000005d1: goto %000003ca - -0000029b: -000002a3: call R30 with noreturn - -000003ca: -000003ce: R16 := R2 -000003d3: call R16 with noreturn diff --git a/src/test/correct-analysis/function_summary/gcc_pic/function_summary.gts b/src/test/correct-analysis/function_summary/gcc_pic/function_summary.gts deleted file mode 100644 index 5460e3d14..000000000 Binary files a/src/test/correct-analysis/function_summary/gcc_pic/function_summary.gts and /dev/null differ diff --git a/src/test/correct-analysis/function_summary/gcc_pic/function_summary.relf b/src/test/correct-analysis/function_summary/gcc_pic/function_summary.relf deleted file mode 100644 index 02a9d8bef..000000000 --- a/src/test/correct-analysis/function_summary/gcc_pic/function_summary.relf +++ /dev/null @@ -1,128 +0,0 @@ - -Relocation section '.rela.dyn' at offset 0x460 contains 10 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -000000000001fdb8 0000000000000403 R_AARCH64_RELATIVE 760 -000000000001fdc0 0000000000000403 R_AARCH64_RELATIVE 70c -000000000001ffc0 0000000000000403 R_AARCH64_RELATIVE 20034 -000000000001ffd0 0000000000000403 R_AARCH64_RELATIVE 20038 -000000000001ffd8 0000000000000403 R_AARCH64_RELATIVE 764 -0000000000020028 0000000000000403 R_AARCH64_RELATIVE 20028 -000000000001ffb0 0000000400000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_deregisterTMCloneTable + 0 -000000000001ffb8 0000000500000401 R_AARCH64_GLOB_DAT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -000000000001ffc8 0000000600000401 R_AARCH64_GLOB_DAT 0000000000000000 __gmon_start__ + 0 -000000000001ffe0 0000000800000401 R_AARCH64_GLOB_DAT 0000000000000000 _ITM_registerTMCloneTable + 0 - -Relocation section '.rela.plt' at offset 0x550 contains 4 entries: - Offset Info Type Symbol's Value Symbol's Name + Addend -0000000000020000 0000000300000402 R_AARCH64_JUMP_SLOT 0000000000000000 __libc_start_main@GLIBC_2.34 + 0 -0000000000020008 0000000500000402 R_AARCH64_JUMP_SLOT 0000000000000000 __cxa_finalize@GLIBC_2.17 + 0 -0000000000020010 0000000600000402 R_AARCH64_JUMP_SLOT 0000000000000000 __gmon_start__ + 0 -0000000000020018 0000000700000402 R_AARCH64_JUMP_SLOT 0000000000000000 abort@GLIBC_2.17 + 0 - -Symbol table '.dynsym' contains 9 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 2: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 3: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 (2) - 4: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 5: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 (3) - 6: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 7: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 (3) - 8: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - -Symbol table '.symtab' contains 93 entries: - Num: Value Size Type Bind Vis Ndx Name - 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND - 1: 0000000000000238 0 SECTION LOCAL DEFAULT 1 .interp - 2: 0000000000000254 0 SECTION LOCAL DEFAULT 2 .note.gnu.build-id - 3: 0000000000000278 0 SECTION LOCAL DEFAULT 3 .note.ABI-tag - 4: 0000000000000298 0 SECTION LOCAL DEFAULT 4 .gnu.hash - 5: 00000000000002b8 0 SECTION LOCAL DEFAULT 5 .dynsym - 6: 0000000000000390 0 SECTION LOCAL DEFAULT 6 .dynstr - 7: 000000000000041e 0 SECTION LOCAL DEFAULT 7 .gnu.version - 8: 0000000000000430 0 SECTION LOCAL DEFAULT 8 .gnu.version_r - 9: 0000000000000460 0 SECTION LOCAL DEFAULT 9 .rela.dyn - 10: 0000000000000550 0 SECTION LOCAL DEFAULT 10 .rela.plt - 11: 00000000000005b0 0 SECTION LOCAL DEFAULT 11 .init - 12: 00000000000005d0 0 SECTION LOCAL DEFAULT 12 .plt - 13: 0000000000000640 0 SECTION LOCAL DEFAULT 13 .text - 14: 00000000000007a4 0 SECTION LOCAL DEFAULT 14 .fini - 15: 00000000000007b8 0 SECTION LOCAL DEFAULT 15 .rodata - 16: 00000000000007bc 0 SECTION LOCAL DEFAULT 16 .eh_frame_hdr - 17: 0000000000000800 0 SECTION LOCAL DEFAULT 17 .eh_frame - 18: 000000000001fdb8 0 SECTION LOCAL DEFAULT 18 .init_array - 19: 000000000001fdc0 0 SECTION LOCAL DEFAULT 19 .fini_array - 20: 000000000001fdc8 0 SECTION LOCAL DEFAULT 20 .dynamic - 21: 000000000001ffa8 0 SECTION LOCAL DEFAULT 21 .got - 22: 000000000001ffe8 0 SECTION LOCAL DEFAULT 22 .got.plt - 23: 0000000000020020 0 SECTION LOCAL DEFAULT 23 .data - 24: 0000000000020030 0 SECTION LOCAL DEFAULT 24 .bss - 25: 0000000000000000 0 SECTION LOCAL DEFAULT 25 .comment - 26: 0000000000000000 0 FILE LOCAL DEFAULT ABS abi-note.c - 27: 0000000000000278 0 NOTYPE LOCAL DEFAULT 3 $d - 28: 0000000000000278 32 OBJECT LOCAL DEFAULT 3 __abi_tag - 29: 0000000000000000 0 FILE LOCAL DEFAULT ABS start.os - 30: 0000000000000640 0 NOTYPE LOCAL DEFAULT 13 $x - 31: 0000000000000814 0 NOTYPE LOCAL DEFAULT 17 $d - 32: 0000000000000000 0 FILE LOCAL DEFAULT ABS init.c - 33: 00000000000007b8 0 NOTYPE LOCAL DEFAULT 15 $d - 34: 0000000000000000 0 FILE LOCAL DEFAULT ABS crti.o - 35: 0000000000000674 0 NOTYPE LOCAL DEFAULT 13 $x - 36: 0000000000000674 20 FUNC LOCAL DEFAULT 13 call_weak_fn - 37: 00000000000005b0 0 NOTYPE LOCAL DEFAULT 11 $x - 38: 00000000000007a4 0 NOTYPE LOCAL DEFAULT 14 $x - 39: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtn.o - 40: 00000000000005c0 0 NOTYPE LOCAL DEFAULT 11 $x - 41: 00000000000007b0 0 NOTYPE LOCAL DEFAULT 14 $x - 42: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 43: 00000000000006a0 0 NOTYPE LOCAL DEFAULT 13 $x - 44: 00000000000006a0 0 FUNC LOCAL DEFAULT 13 deregister_tm_clones - 45: 00000000000006d0 0 FUNC LOCAL DEFAULT 13 register_tm_clones - 46: 0000000000020028 0 NOTYPE LOCAL DEFAULT 23 $d - 47: 000000000000070c 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux - 48: 0000000000020030 1 OBJECT LOCAL DEFAULT 24 completed.0 - 49: 000000000001fdc0 0 NOTYPE LOCAL DEFAULT 19 $d - 50: 000000000001fdc0 0 OBJECT LOCAL DEFAULT 19 __do_global_dtors_aux_fini_array_entry - 51: 0000000000000760 0 FUNC LOCAL DEFAULT 13 frame_dummy - 52: 000000000001fdb8 0 NOTYPE LOCAL DEFAULT 18 $d - 53: 000000000001fdb8 0 OBJECT LOCAL DEFAULT 18 __frame_dummy_init_array_entry - 54: 0000000000000828 0 NOTYPE LOCAL DEFAULT 17 $d - 55: 0000000000020030 0 NOTYPE LOCAL DEFAULT 24 $d - 56: 0000000000000000 0 FILE LOCAL DEFAULT ABS function_summary.c - 57: 0000000000020034 0 NOTYPE LOCAL DEFAULT 24 $d - 58: 0000000000000764 0 NOTYPE LOCAL DEFAULT 13 $x - 59: 0000000000000888 0 NOTYPE LOCAL DEFAULT 17 $d - 60: 0000000000000000 0 FILE LOCAL DEFAULT ABS crtstuff.c - 61: 00000000000008bc 0 NOTYPE LOCAL DEFAULT 17 $d - 62: 00000000000008bc 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__ - 63: 0000000000000000 0 FILE LOCAL DEFAULT ABS - 64: 000000000001fdc8 0 OBJECT LOCAL DEFAULT ABS _DYNAMIC - 65: 00000000000007bc 0 NOTYPE LOCAL DEFAULT 16 __GNU_EH_FRAME_HDR - 66: 000000000001ffa8 0 OBJECT LOCAL DEFAULT ABS _GLOBAL_OFFSET_TABLE_ - 67: 00000000000005d0 0 NOTYPE LOCAL DEFAULT 12 $x - 68: 0000000000000000 0 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.34 - 69: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_deregisterTMCloneTable - 70: 0000000000020020 0 NOTYPE WEAK DEFAULT 23 data_start - 71: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start__ - 72: 0000000000000000 0 FUNC WEAK DEFAULT UND __cxa_finalize@GLIBC_2.17 - 73: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _bss_end__ - 74: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 23 _edata - 75: 0000000000020034 4 OBJECT GLOBAL DEFAULT 24 x - 76: 00000000000007a4 0 FUNC GLOBAL HIDDEN 14 _fini - 77: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __bss_end__ - 78: 000000000000079c 8 FUNC GLOBAL DEFAULT 13 get_two - 79: 0000000000020020 0 NOTYPE GLOBAL DEFAULT 23 __data_start - 80: 0000000000000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__ - 81: 0000000000020028 0 OBJECT GLOBAL HIDDEN 23 __dso_handle - 82: 0000000000000000 0 FUNC GLOBAL DEFAULT UND abort@GLIBC_2.17 - 83: 00000000000007b8 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used - 84: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 _end - 85: 0000000000000640 52 FUNC GLOBAL DEFAULT 13 _start - 86: 0000000000020040 0 NOTYPE GLOBAL DEFAULT 24 __end__ - 87: 0000000000020038 4 OBJECT GLOBAL DEFAULT 24 y - 88: 0000000000020030 0 NOTYPE GLOBAL DEFAULT 24 __bss_start - 89: 0000000000000764 56 FUNC GLOBAL DEFAULT 13 main - 90: 0000000000020030 0 OBJECT GLOBAL HIDDEN 23 __TMC_END__ - 91: 0000000000000000 0 NOTYPE WEAK DEFAULT UND _ITM_registerTMCloneTable - 92: 00000000000005b0 0 FUNC GLOBAL HIDDEN 11 _init diff --git a/src/test/scala/SystemTests.scala b/src/test/scala/SystemTests.scala index e9c7c99f6..047e18cc4 100644 --- a/src/test/scala/SystemTests.scala +++ b/src/test/scala/SystemTests.scala @@ -17,8 +17,6 @@ trait SystemTests extends AnyFunSuite { val correctPrograms: Array[String] = getSubdirectories(correctPath) val incorrectPath = "./src/test/incorrect" val incorrectPrograms: Array[String] = getSubdirectories(incorrectPath) - val correctWithAnalysisPath = "./src/test/correct-analysis" - val correctWithAnalysisPrograms: Array[String] = getSubdirectories(correctWithAnalysisPath) case class TestResult(passed: Boolean, verified: Boolean, shouldVerify: Boolean, hasExpected: Boolean, timedOut: Boolean, matchesExpected: Boolean, translateTime: Long, verifyTime: Long) { val toCsv = s"$passed,$verified,$shouldVerify,$hasExpected,$timedOut,$matchesExpected,$translateTime,$verifyTime" @@ -30,7 +28,7 @@ trait SystemTests extends AnyFunSuite { val testResults: mutable.ArrayBuffer[(String, TestResult)] = mutable.ArrayBuffer() - def runTests(programs: Array[String], path: String, name: String, shouldVerify: Boolean, useADT: Boolean, analyse: Boolean): Unit = { + def runTests(programs: Array[String], path: String, name: String, shouldVerify: Boolean, useADT: Boolean, analyse: Boolean, procedureSummaries: Boolean): Unit = { // get all variations of each program val testSuffix = if useADT then ":BAP" else ":GTIRB" for (p <- programs) { @@ -38,7 +36,7 @@ trait SystemTests extends AnyFunSuite { val variations = getSubdirectories(programPath) variations.foreach(t => test(name + "/" + p + "/" + t + testSuffix) { - runTest(path, p, t, shouldVerify, useADT, analyse) + runTest(path, p, t, shouldVerify, useADT, analyse, procedureSummaries) } ) } @@ -67,7 +65,7 @@ trait SystemTests extends AnyFunSuite { log(summaryHeader + System.lineSeparator() + summaryRow, testPath + "summary-" + filename) } - def runTest(path: String, name: String, variation: String, shouldVerify: Boolean, useADT: Boolean, analyse: Boolean): Unit = { + def runTest(path: String, name: String, variation: String, shouldVerify: Boolean, useADT: Boolean, analyse: Boolean, procedureSummaries: Boolean): Unit = { val directoryPath = path + "/" + name + "/" val variationPath = directoryPath + variation + "/" + name val specPath = directoryPath + name + ".spec" @@ -79,6 +77,7 @@ trait SystemTests extends AnyFunSuite { val args = mutable.ArrayBuffer("--input", inputPath, "--relf", RELFPath, "--output", outPath) if analyse then args += "--analyse" + if procedureSummaries then args += "--summarise-procedures" if (File(specPath).exists) args ++= Seq("--spec", specPath) Main.main(args.toArray) @@ -117,7 +116,8 @@ trait SystemTests extends AnyFunSuite { } 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)) + val testSuffix = if useADT then ":BAP" else ":GTIRB" + testResults.append((s"$name/$variation$testSuffix", result)) if (!passed) fail(failureMsg) } @@ -164,20 +164,30 @@ trait SystemTests extends AnyFunSuite { } -class SystemTestsBAP extends SystemTests { - runTests(correctPrograms, correctPath, "correct", true, true, false) - runTests(incorrectPrograms, incorrectPath, "incorrect", false, true, false) - runTests(correctWithAnalysisPrograms, correctWithAnalysisPath, "correct", true, true, true) +class SystemTestsBAP extends SystemTests { + runTests(correctPrograms, correctPath, "correct", true, true, false, false) + runTests(incorrectPrograms, incorrectPath, "incorrect", false, true, false, false) test("summary") { summary("testresult-BAP.csv") } } -class SystemTestsGTIRB extends SystemTests { - runTests(correctPrograms, correctPath, "correct", true, false, false) - runTests(incorrectPrograms, incorrectPath, "incorrect", false, false, false) - runTests(correctWithAnalysisPrograms, correctWithAnalysisPath, "correct", true, false, true) +class SystemTestsGTIRB extends SystemTests { + runTests(correctPrograms, correctPath, "correct", true, false, false, false) + runTests(incorrectPrograms, incorrectPath, "incorrect", false, false, false, false) test("summary") { summary("testresult-GTIRB.csv") } } + +class ProcedureSummaryTests extends SystemTests { + // TODO currently procedure_summary3 verifies despite incorrect procedure summary analysis + // this is due to BASIL's currently limited handling of non-returning calls + private val procedureSummaryPath = "./src/test/analysis/procedure-summaries" + private val procedureSummaryPrograms = getSubdirectories(procedureSummaryPath) + runTests(procedureSummaryPrograms, procedureSummaryPath, "analysis/procedure-summaries", true, true, true, true) + runTests(procedureSummaryPrograms, procedureSummaryPath, "analysis/procedure-summaries", true, false, true, true) + test("summary") { + summary("procedureSummaryTestResult.csv") + } +} \ No newline at end of file