From b03838eb3de4592cb2dc1563cae5e37f39732340 Mon Sep 17 00:00:00 2001 From: l-kent Date: Mon, 19 Aug 2024 15:35:11 +1000 Subject: [PATCH] reorganise procedure summary tests --- src/main/scala/util/RunUtils.scala | 4 +- .../procedure_summary/config.mk | 1 + .../gcc/procedure_summary.adt} | 0 .../gcc/procedure_summary.bir} | 0 .../gcc/procedure_summary.gts} | Bin .../gcc/procedure_summary.relf} | 0 .../procedure_summary/procedure_summary.c} | 0 .../procedure_summary/procedure_summary.spec} | 0 .../procedure_summary2/config.mk | 1 + .../gcc_O2/procedure_summary2.adt} | 0 .../gcc_O2/procedure_summary2.bir} | 0 .../gcc_O2/procedure_summary2.gts} | Bin .../gcc_O2/procedure_summary2.relf} | 0 .../procedure_summary2/procedure_summary2.c} | 0 .../procedure_summary2.spec} | 0 .../procedure_summary3/config.mk | 1 + .../gcc_O2/procedure_summary3.adt} | 0 .../gcc_O2/procedure_summary3.bir} | 0 .../gcc_O2/procedure_summary3.gts} | Bin .../gcc_O2/procedure_summary3.relf} | 0 .../procedure_summary3/procedure_summary3.c} | 0 .../procedure_summary3.spec} | 0 .../gcc_no_plt_no_pic/function_summary.adt | 551 ------------------ .../gcc_no_plt_no_pic/function_summary.bir | 251 -------- .../gcc_no_plt_no_pic/function_summary.gts | Bin 60284 -> 0 bytes .../gcc_no_plt_no_pic/function_summary.relf | 126 ---- .../gcc_pic/function_summary.adt | 550 ----------------- .../gcc_pic/function_summary.bir | 251 -------- .../gcc_pic/function_summary.gts | Bin 60952 -> 0 bytes .../gcc_pic/function_summary.relf | 128 ---- src/test/scala/SystemTests.scala | 38 +- 31 files changed, 29 insertions(+), 1873 deletions(-) create mode 100644 src/test/analysis/procedure-summaries/procedure_summary/config.mk rename src/test/{correct-analysis/function_summary/gcc/function_summary.adt => analysis/procedure-summaries/procedure_summary/gcc/procedure_summary.adt} (100%) rename src/test/{correct-analysis/function_summary/gcc/function_summary.bir => analysis/procedure-summaries/procedure_summary/gcc/procedure_summary.bir} (100%) rename src/test/{correct-analysis/function_summary/gcc/function_summary.gts => analysis/procedure-summaries/procedure_summary/gcc/procedure_summary.gts} (100%) rename src/test/{correct-analysis/function_summary/gcc/function_summary.relf => analysis/procedure-summaries/procedure_summary/gcc/procedure_summary.relf} (100%) rename src/test/{correct-analysis/function_summary/function_summary.c => analysis/procedure-summaries/procedure_summary/procedure_summary.c} (100%) rename src/test/{correct-analysis/function_summary/function_summary.spec => analysis/procedure-summaries/procedure_summary/procedure_summary.spec} (100%) create mode 100644 src/test/analysis/procedure-summaries/procedure_summary2/config.mk rename src/test/{correct-analysis/function_summary2/gcc_O2/function_summary2.adt => analysis/procedure-summaries/procedure_summary2/gcc_O2/procedure_summary2.adt} (100%) rename src/test/{correct-analysis/function_summary2/gcc_O2/function_summary2.bir => analysis/procedure-summaries/procedure_summary2/gcc_O2/procedure_summary2.bir} (100%) rename src/test/{correct-analysis/function_summary2/gcc_O2/function_summary2.gts => analysis/procedure-summaries/procedure_summary2/gcc_O2/procedure_summary2.gts} (100%) rename src/test/{correct-analysis/function_summary2/gcc_O2/function_summary2.relf => analysis/procedure-summaries/procedure_summary2/gcc_O2/procedure_summary2.relf} (100%) rename src/test/{correct-analysis/function_summary2/function_summary2.c => analysis/procedure-summaries/procedure_summary2/procedure_summary2.c} (100%) rename src/test/{correct-analysis/function_summary2/function_summary2.spec => analysis/procedure-summaries/procedure_summary2/procedure_summary2.spec} (100%) create mode 100644 src/test/analysis/procedure-summaries/procedure_summary3/config.mk rename src/test/{correct-analysis/function_summary3/gcc_O2/function_summary3.adt => analysis/procedure-summaries/procedure_summary3/gcc_O2/procedure_summary3.adt} (100%) rename src/test/{correct-analysis/function_summary3/gcc_O2/function_summary3.bir => analysis/procedure-summaries/procedure_summary3/gcc_O2/procedure_summary3.bir} (100%) rename src/test/{correct-analysis/function_summary3/gcc_O2/function_summary3.gts => analysis/procedure-summaries/procedure_summary3/gcc_O2/procedure_summary3.gts} (100%) rename src/test/{correct-analysis/function_summary3/gcc_O2/function_summary3.relf => analysis/procedure-summaries/procedure_summary3/gcc_O2/procedure_summary3.relf} (100%) rename src/test/{correct-analysis/function_summary3/function_summary3.c => analysis/procedure-summaries/procedure_summary3/procedure_summary3.c} (100%) rename src/test/{correct-analysis/function_summary3/function_summary3.spec => analysis/procedure-summaries/procedure_summary3/procedure_summary3.spec} (100%) delete mode 100644 src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.adt delete mode 100644 src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.bir delete mode 100644 src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.gts delete mode 100644 src/test/correct-analysis/function_summary/gcc_no_plt_no_pic/function_summary.relf delete mode 100644 src/test/correct-analysis/function_summary/gcc_pic/function_summary.adt delete mode 100644 src/test/correct-analysis/function_summary/gcc_pic/function_summary.bir delete mode 100644 src/test/correct-analysis/function_summary/gcc_pic/function_summary.gts delete mode 100644 src/test/correct-analysis/function_summary/gcc_pic/function_summary.relf 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 188d6baca227ea8f855c457e54630e7e57019077..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60284 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