NAME=riscv entrypoint
FILE=bins/elf/ip-riscv
CMDS=ie;ii~str
EXPECT=<<EOF
[Entrypoints]
vaddr=0x0000d344 paddr=0x0000d344 haddr=0x00000018 hvaddr=0x00000018 type=program

1 entrypoints
2   0x0000a960 GLOBAL FUNC       strncpy
15  0x0000aa10 GLOBAL FUNC       strspn
19  0x0000aa50 GLOBAL FUNC       strdup
27  0x0000aad0 GLOBAL FUNC       strcat
31  0x0000ab10 GLOBAL FUNC       strtol
43  0x0000abd0 GLOBAL FUNC       elf_strptr
45  0x0000abf0 GLOBAL FUNC       strcspn
46  0x0000ac00 GLOBAL FUNC       strchr
48  0x0000ac20 GLOBAL FUNC       strrchr
65  0x0000ad30 GLOBAL FUNC       strlen
67  0x0000ad50 GLOBAL FUNC       strcpy
71  0x0000ad90 GLOBAL FUNC       strsep
78  0x0000adf0 GLOBAL FUNC       strftime
85  0x0000ae60 GLOBAL FUNC       strcasecmp
87  0x0000ae80 GLOBAL FUNC       strerror
89  0x0000aea0 GLOBAL FUNC       strtoull
97  0x0000af20 GLOBAL FUNC       strtoul
103 0x0000af80 GLOBAL FUNC       mnl_attr_get_str
107 0x0000afc0 GLOBAL FUNC       strncmp
113 0x0000b020 GLOBAL FUNC       strtod
114 0x0000b030 GLOBAL FUNC       strstr
141 0x0000b1b0 GLOBAL FUNC       strtok
145 0x0000b1f0 GLOBAL FUNC       strcmp
152 0x0000b250 GLOBAL FUNC       strtof
EOF
RUN

NAME=ELF: riscv64: entrypoint
FILE=bins/elf/analysis/guess-number-riscv64
CMDS=ie
EXPECT=<<EOF
[Entrypoints]
vaddr=0x00010000 paddr=0x00001000 haddr=0x00000018 type=program

1 entrypoints
EOF
RUN

NAME=ELF: riscv64: symbols
FILE=bins/elf/analysis/guess-number-riscv64
CMDS=is
EXPECT=<<EOF
[Symbols]
nth paddr      vaddr      bind   type   size lib name                                   demangled
-------------------------------------------------------------------------------------------------
1   0x00001000 0x00010000 LOCAL  SECT   0        .text
2   0x000124f8 0x000214f8 LOCAL  SECT   0        .rodata
3   0x00013620 0x00022620 LOCAL  SECT   0        .init_array
4   0x00013628 0x00022628 LOCAL  SECT   0        .fini_array
5   0x00013630 0x00022630 LOCAL  SECT   0        .eh_frame
6   0x00015060 0x00024060 LOCAL  SECT   0        .jcr
7   0x00015070 0x00024070 LOCAL  SECT   0        .data
8   0x00016070 0x00025070 LOCAL  SECT   0        .sdata
9   ---------- 0x00025168 LOCAL  SECT   0        .sbss
10  ---------- 0x00025198 LOCAL  SECT   0        .bss
11  ---------- 0x00000000 LOCAL  SECT   0        .comment
12  ---------- 0x00000000 LOCAL  SECT   0        .debug_info
13  ---------- 0x00000000 LOCAL  SECT   0        .debug_abbrev
14  ---------- 0x00000000 LOCAL  SECT   0        .debug_loc
15  ---------- 0x00000000 LOCAL  SECT   0        .debug_aranges
16  ---------- 0x00000000 LOCAL  SECT   0        .debug_line
17  ---------- 0x00000000 LOCAL  SECT   0        .debug_str
18  ---------- 0x00000000 LOCAL  SECT   0        .debug_ranges
19  ---------- 0x00000000 LOCAL  FILE   0        crtstuff.c
20  0x00013630 0x00022630 LOCAL  OBJ    0        __EH_FRAME_BEGIN__
21  0x00015060 0x00024060 LOCAL  OBJ    0        __JCR_LIST__
22  0x0000104c 0x0001004c LOCAL  FUNC   0        deregister_tm_clones
23  0x00001080 0x00010080 LOCAL  FUNC   0        register_tm_clones
24  0x000010c0 0x000100c0 LOCAL  FUNC   0        __do_global_dtors_aux
25  ---------- 0x00025198 LOCAL  OBJ    1        completed.3084
26  0x00013628 0x00022628 LOCAL  OBJ    0        __do_global_dtors_aux_fini_array_entry
27  0x00001104 0x00010104 LOCAL  FUNC   0        frame_dummy
28  ---------- 0x000251a0 LOCAL  OBJ    48       object.3089
29  0x00013620 0x00022620 LOCAL  OBJ    0        __frame_dummy_init_array_entry
30  ---------- 0x00000000 LOCAL  FILE   0        hello.c
31  ---------- 0x00000000 LOCAL  FILE   0        crtstuff.c
32  0x00013630 0x00022630 LOCAL  OBJ    0        __FRAME_END__
33  0x00015060 0x00024060 LOCAL  OBJ    0        __JCR_END__
34  ---------- 0x00000000 LOCAL  FILE   0        atexit.c
35  ---------- 0x00000000 LOCAL  FILE   0        exit.c
36  ---------- 0x00000000 LOCAL  FILE   0        fini.c
37  ---------- 0x00000000 LOCAL  FILE   0        impure.c
38  0x00015070 0x00024070 LOCAL  OBJ    1864     impure_data
39  ---------- 0x00000000 LOCAL  FILE   0        init.c
40  ---------- 0x00000000 LOCAL  FILE   0        printf.c
41  ---------- 0x00000000 LOCAL  FILE   0        puts.c
42  ---------- 0x00000000 LOCAL  FILE   0        scanf.c
43  ---------- 0x00000000 LOCAL  FILE   0        strlen.c
44  ---------- 0x00000000 LOCAL  FILE   0        vfprintf.c
45  0x0000326c 0x0001226c LOCAL  FUNC   188      __sbprintf
46  0x000126a8 0x000216a8 LOCAL  OBJ    16       blanks.4193
47  0x000126b8 0x000216b8 LOCAL  OBJ    16       zeroes.4194
48  ---------- 0x00000000 LOCAL  FILE   0        vfscanf.c
49  0x00012b20 0x00021b20 LOCAL  OBJ    34       basefix.4147
50  ---------- 0x00000000 LOCAL  FILE   0        wsetup.c
51  ---------- 0x00000000 LOCAL  FILE   0        __atexit.c
52  ---------- 0x00000000 LOCAL  FILE   0        __call_atexit.c
53  ---------- 0x00000000 LOCAL  FILE   0        ctype_.c
54  ---------- 0x00000000 LOCAL  FILE   0        dtoa.c
55  0x00004958 0x00013958 LOCAL  FUNC   492      quorem
56  ---------- 0x00000000 LOCAL  FILE   0        fflush.c
57  ---------- 0x00000000 LOCAL  FILE   0        findfp.c
58  0x00005ef8 0x00014ef8 LOCAL  FUNC   8        __fp_unlock
59  0x00005f0c 0x00014f0c LOCAL  FUNC   396      __sinit.part.1
60  0x0000609c 0x0001509c LOCAL  FUNC   8        __fp_lock
61  ---------- 0x00000000 LOCAL  FILE   0        fread.c
62  ---------- 0x00000000 LOCAL  FILE   0        mallocr.c
63  ---------- 0x00000000 LOCAL  FILE   0        fvwrite.c
64  ---------- 0x00000000 LOCAL  FILE   0        fwalk.c
65  ---------- 0x00000000 LOCAL  FILE   0        iswspace.c
66  ---------- 0x00000000 LOCAL  FILE   0        locale.c
67  0x000157b8 0x000247b8 LOCAL  OBJ    32       lc_ctype_charset
68  0x000157d8 0x000247d8 LOCAL  OBJ    32       lc_message_charset
69  0x000157f8 0x000247f8 LOCAL  OBJ    96       lconv
70  ---------- 0x00000000 LOCAL  FILE   0        makebuf.c
71  ---------- 0x00000000 LOCAL  FILE   0        mallocr.c
72  ---------- 0x00000000 LOCAL  FILE   0        mbrtowc.c
73  ---------- 0x00000000 LOCAL  FILE   0        mbtowc_r.c
74  ---------- 0x00000000 LOCAL  FILE   0        memchr.c
75  ---------- 0x00000000 LOCAL  FILE   0        memcpy.c
76  ---------- 0x00000000 LOCAL  FILE   0        memmove.c
77  ---------- 0x00000000 LOCAL  FILE   0        mlock.c
78  ---------- 0x00000000 LOCAL  FILE   0        mprec.c
79  0x00012c50 0x00021c50 LOCAL  OBJ    12       p05.2568
80  ---------- 0x00000000 LOCAL  FILE   0        mallocr.c
81  ---------- 0x00000000 LOCAL  FILE   0        refill.c
82  0x00009590 0x00018590 LOCAL  FUNC   28       lflush
83  ---------- 0x00000000 LOCAL  FILE   0        sccl.c
84  ---------- 0x00000000 LOCAL  FILE   0        sf_nan.c
85  ---------- 0x00000000 LOCAL  FILE   0        s_fpclassify.c
86  ---------- 0x00000000 LOCAL  FILE   0        sprintf.c
87  ---------- 0x00000000 LOCAL  FILE   0        stdio.c
88  ---------- 0x00000000 LOCAL  FILE   0        lib_a-strcmp.o
89  0x000160b8 0x000250b8 LOCAL  NOTYPE 0        mask
90  ---------- 0x00000000 LOCAL  FILE   0        strtod.c
91  0x0001248c 0x0002148c LOCAL  FUNC   104      sulp
92  0x00012e50 0x00021e50 LOCAL  OBJ    20       fpi.2617
93  0x00012e68 0x00021e68 LOCAL  OBJ    20       fpinan.2653
94  0x00012e80 0x00021e80 LOCAL  OBJ    40       tinytens
95  ---------- 0x00000000 LOCAL  FILE   0        strtol.c
96  ---------- 0x00000000 LOCAL  FILE   0        strtoul.c
97  ---------- 0x00000000 LOCAL  FILE   0        vfprintf.c
98  0x00013010 0x00022010 LOCAL  OBJ    16       blanks.4178
99  0x00013020 0x00022020 LOCAL  OBJ    16       zeroes.4179
100 ---------- 0x00000000 LOCAL  FILE   0        ungetc.c
101 ---------- 0x00000000 LOCAL  FILE   0        vfprintf.c
102 0x0000d244 0x0001c244 LOCAL  FUNC   236      __sprint_r.part.0
103 0x0000e40c 0x0001d40c LOCAL  FUNC   188      __sbprintf
104 0x00013198 0x00022198 LOCAL  OBJ    16       blanks.4136
105 0x000131a8 0x000221a8 LOCAL  OBJ    16       zeroes.4137
106 ---------- 0x00000000 LOCAL  FILE   0        mallocr.c
107 ---------- 0x00000000 LOCAL  FILE   0        fclose.c
108 ---------- 0x00000000 LOCAL  FILE   0        fputwc.c
109 ---------- 0x00000000 LOCAL  FILE   0        gdtoa-gethex.c
110 0x0000e8a0 0x0001d8a0 LOCAL  FUNC   244      rshift
111 ---------- 0x00000000 LOCAL  FILE   0        gdtoa-hexnan.c
112 ---------- 0x00000000 LOCAL  FILE   0        strncmp.c
113 ---------- 0x00000000 LOCAL  FILE   0        vfprintf.c
114 0x00013420 0x00022420 LOCAL  OBJ    16       blanks.4122
115 0x00013430 0x00022430 LOCAL  OBJ    16       zeroes.4123
116 ---------- 0x00000000 LOCAL  FILE   0        wbuf.c
117 ---------- 0x00000000 LOCAL  FILE   0        wcrtomb.c
118 ---------- 0x00000000 LOCAL  FILE   0        wctomb_r.c
119 ---------- 0x00000000 LOCAL  FILE   0        syscalls.c
120 ---------- 0x00025190 LOCAL  OBJ    8        heap_end.2381
121 ---------- 0x000251f8 LOCAL  OBJ    16       t0.2343
122 ---------- 0x00000000 LOCAL  FILE   0        dp-bit.c
123 0x00010b9c 0x0001fb9c LOCAL  FUNC   496      _fpadd_parts
124 ---------- 0x00000000 LOCAL  FILE   0        libgcc2.c
125 ---------- 0x00000000 LOCAL  FILE   0        fp-bit.c
126 0x00011858 0x00020858 LOCAL  FUNC   444      _fpadd_parts
127 ---------- 0x00000000 LOCAL  FILE   0        libgcc2.c
128 ---------- 0x00000000 LOCAL  FILE   0        errno.c
129 ---------- 0x00000000 LOCAL  FILE   0
130 0x00013630 0x00022630 LOCAL  NOTYPE 0        __fini_array_end
131 0x00013628 0x00022628 LOCAL  NOTYPE 0        __fini_array_start
132 0x00013628 0x00022628 LOCAL  NOTYPE 0        __init_array_end
133 0x00013620 0x00022620 LOCAL  NOTYPE 0        __preinit_array_end
134 0x00013620 0x00022620 LOCAL  NOTYPE 0        __init_array_start
135 0x00013620 0x00022620 LOCAL  NOTYPE 0        __preinit_array_start
136 0x00008ef4 0x00017ef4 GLOBAL FUNC   56       _mprec_log10
137 0x00008f94 0x00017f94 GLOBAL FUNC   132      __any_on
138 0x00012d28 0x00021d28 GLOBAL OBJ    40       __mprec_tinytens
139 0x000013c4 0x000103c4 GLOBAL FUNC   176      _puts_r
140 0x00011468 0x00020468 GLOBAL FUNC   64       __cmpdf2
141 0x00011564 0x00020564 GLOBAL FUNC   4        __eqdf2
142 0x000108b8 0x0001f8b8 GLOBAL FUNC   20       fstatat
143 0x00010b14 0x0001fb14 GLOBAL FUNC   28       sysconf
144 0x00001374 0x00010374 GLOBAL FUNC   80       printf
145 0x00015070 0x00024070 GLOBAL NOTYPE 0        _fdata
146 0x00010aec 0x0001faec GLOBAL FUNC   8        utime
147 0x000105e4 0x0001f5e4 GLOBAL FUNC   164      _wcrtomb_r
148 0x00009b08 0x00018b08 GLOBAL FUNC   104      __sseek
149 0x00006228 0x00015228 GLOBAL FUNC   16       __sinit
150 0x0001045c 0x0001f45c GLOBAL FUNC   376      __swbuf_r
151 0x00006f4c 0x00015f4c GLOBAL FUNC   120      _setlocale_r
152 0x000060a4 0x000150a4 GLOBAL FUNC   108      __sfmoreglue
153 0x0000d234 0x0001c234 GLOBAL FUNC   16       ungetc
154 0x00007fac 0x00016fac GLOBAL FUNC   4        __malloc_unlock
155 0x00009ca8 0x00018ca8 GLOBAL FUNC   4756     _strtod_r
156 0x00011e8c 0x00020e8c GLOBAL FUNC   300      __divsf3
157 0x00007dac 0x00016dac GLOBAL FUNC   288      memmove
158 0x00006218 0x00015218 GLOBAL FUNC   16       _cleanup
159 0x00007fb0 0x00016fb0 GLOBAL FUNC   172      _Balloc
160 0x00012358 0x00021358 GLOBAL FUNC   140      __fixsfsi
161 0x000108e8 0x0001f8e8 GLOBAL FUNC   20       faccessat
162 0x00011500 0x00020500 GLOBAL FUNC   4        __gtdf2
163 0x00012484 0x00021484 GLOBAL FUNC   8        __errno
164 0x00010a2c 0x0001fa2c GLOBAL FUNC   144      times
165 0x00011780 0x00020780 GLOBAL FUNC   44       __make_dp
166 0x00004508 0x00013508 GLOBAL FUNC   20       __svfscanf
167 0x00009a90 0x00018a90 GLOBAL FUNC   8        __seofread
168 0x00013620 0x00022620 GLOBAL NOTYPE 0        _etext
169 0x0001241c 0x0002141c GLOBAL FUNC   44       __make_fp
170 ---------- 0x00025870 GLOBAL NOTYPE 0        _gp
171 0x00011c94 0x00020c94 GLOBAL FUNC   84       __subsf3
172 0x00010958 0x0001f958 GLOBAL FUNC   36       execve
173 0x000109a0 0x0001f9a0 GLOBAL FUNC   8        getpid
174 0x00007c8c 0x00016c8c GLOBAL FUNC   288      memcpy
175 0x0000f124 0x0001e124 GLOBAL FUNC   616      __hexnan
176 0x00016068 0x00025068 GLOBAL OBJ    0        __TMC_END__
177 0x00005f00 0x00014f00 GLOBAL FUNC   12       _cleanup_r
178 0x0000b384 0x0001a384 GLOBAL FUNC   7156     _svfprintf_r
179 0x000115b4 0x000205b4 GLOBAL FUNC   132      __floatsidf
180 0x0001155c 0x0002055c GLOBAL FUNC   4        __ltdf2
181 0x00001474 0x00010474 GLOBAL FUNC   12       puts
182 0x00007a38 0x00016a38 GLOBAL FUNC   208      mbrtowc
183 0x000098bc 0x000188bc GLOBAL FUNC   132      __fpclassifyd
184 0x0000451c 0x0001351c GLOBAL FUNC   76       _vfscanf_r
185 0x00008e30 0x00017e30 GLOBAL FUNC   196      __ratio
187 0x00001330 0x00010330 GLOBAL FUNC   68       _printf_r
188 0x000109f0 0x0001f9f0 GLOBAL FUNC   60       isatty
189 0x00006f1c 0x00015f1c GLOBAL FUNC   48       iswspace
190 0x00012c60 0x00021c60 GLOBAL OBJ    200      __mprec_tens
191 0x00006fc4 0x00015fc4 GLOBAL FUNC   12       __locale_charset
192 0x00012128 0x00021128 GLOBAL FUNC   84       __lesf2
193 ---------- 0x00025198 GLOBAL NOTYPE 0        _bss_start
194 ---------- 0x00025188 GLOBAL OBJ    8        __malloc_top_pad
195 0x0000b370 0x0001a370 GLOBAL FUNC   20       strtoul
196 0x00016070 0x00025070 GLOBAL OBJ    0        __dso_handle
197 0x00016090 0x00025090 GLOBAL OBJ    4        __mb_cur_max
198 0x00006fec 0x00015fec GLOBAL FUNC   12       _localeconv_r
199 0x000083e8 0x000173e8 GLOBAL FUNC   52       __i2b
200 0x000068f8 0x000158f8 GLOBAL FUNC   1204     __sfvwrite_r
201 0x00010ed8 0x0001fed8 GLOBAL FUNC   228      __unpack_d
202 0x0000e580 0x0001d580 GLOBAL FUNC   260      _fclose_r
203 0x00005ed8 0x00014ed8 GLOBAL FUNC   32       fflush
204 ---------- 0x00025180 GLOBAL OBJ    8        __malloc_max_sbrked_mem
205 0x00012448 0x00021448 GLOBAL FUNC   60       __extendsfdf2
206 0x00010fbc 0x0001ffbc GLOBAL FUNC   72       __adddf3
207 0x00012184 0x00021184 GLOBAL FUNC   4        __nesf2
208 0x00008ba0 0x00017ba0 GLOBAL FUNC   336      __b2d
209 0x00010828 0x0001f828 GLOBAL FUNC   20       lseek
210 0x00016078 0x00025078 GLOBAL OBJ    8        _global_impure_ptr
211 0x00010af4 0x0001faf4 GLOBAL FUNC   8        chown
212 0x00009018 0x00018018 GLOBAL FUNC   1400     _realloc_r
213 0x00001290 0x00010290 GLOBAL FUNC   160      __libc_init_array
214 0x000131b8 0x000221b8 GLOBAL OBJ    256      __hexdig
215 0x0000e7fc 0x0001d7fc GLOBAL FUNC   40       _fputwc_r
216 0x00012d50 0x00021d50 GLOBAL OBJ    40       __mprec_bigtens
217 0x00008190 0x00017190 GLOBAL FUNC   300      __s2b
218 0x00011638 0x00020638 GLOBAL FUNC   124      __floatunsidf
219 0x000088a8 0x000178a8 GLOBAL FUNC   96       __mcmp
220 0x00010afc 0x0001fafc GLOBAL FUNC   8        chmod
221 0x00006248 0x00015248 GLOBAL FUNC   16       __fp_lock_all
222 0x00001048 0x00010048 GLOBAL NOTYPE 0        _init
223 0x0000b178 0x0001a178 GLOBAL FUNC   20       strtol
224 0x00001234 0x00010234 GLOBAL FUNC   92       __libc_fini_array
225 0x00011b74 0x00020b74 GLOBAL FUNC   216      __unpack_f
226 0x000082bc 0x000172bc GLOBAL FUNC   124      __hi0bits
227 0x000116b4 0x000206b4 GLOBAL FUNC   148      __fixdfsi
228 0x0000af3c 0x00019f3c GLOBAL FUNC   16       strtod
229 0x00010850 0x0001f850 GLOBAL FUNC   20       write
230 0x00012124 0x00021124 GLOBAL FUNC   4        __gtsf2
231 0x00010864 0x0001f864 GLOBAL FUNC   28       fstat
232 0x000109a8 0x0001f9a8 GLOBAL FUNC   36       kill
233 0x00011504 0x00020504 GLOBAL FUNC   84       __ledf2
234 0x00008610 0x00017610 GLOBAL FUNC   312      __pow5mult
235 ---------- 0x00025174 GLOBAL OBJ    4        __nlocale_changed
236 0x000014d0 0x000104d0 GLOBAL FUNC   68       _scanf_r
238 0x00010b04 0x0001fb04 GLOBAL FUNC   8        chdir
239 0x00011a14 0x00020a14 GLOBAL FUNC   352      __pack_f
241 0x00006238 0x00015238 GLOBAL FUNC   0        __sfp_lock_acquire
242 0x00007bac 0x00016bac GLOBAL FUNC   224      memchr
243 0x00009940 0x00018940 GLOBAL FUNC   112      _sprintf_r
244 0x000065ec 0x000155ec GLOBAL FUNC   780      _free_r
245 0x000109cc 0x0001f9cc GLOBAL FUNC   36       wait
246 0x00006fd0 0x00015fd0 GLOBAL FUNC   8        __locale_mb_cur_max
247 0x000047cc 0x000137cc GLOBAL FUNC   396      __call_exitprocs
248 ---------- 0x00025170 GLOBAL OBJ    4        __mlocale_changed
249 0x00001000 0x00010000 GLOBAL NOTYPE 0        _ftext
250 0x00016098 0x00025098 GLOBAL OBJ    8        __malloc_sbrk_base
251 0x00001000 0x00010000 GLOBAL NOTYPE 0        _start
252 0x0001089c 0x0001f89c GLOBAL FUNC   28       lstat
253 0x00008748 0x00017748 GLOBAL FUNC   352      __lshift
254 0x0001083c 0x0001f83c GLOBAL FUNC   20       read
255 0x000121d8 0x000211d8 GLOBAL FUNC   172      __floatsisf
256 0x0000f45c 0x0001e45c GLOBAL FUNC   504      __ssprint_r
257 0x000046cc 0x000136cc GLOBAL FUNC   256      __register_exitproc
258 0x0000f38c 0x0001e38c GLOBAL FUNC   208      strncmp
259 0x0000841c 0x0001741c GLOBAL FUNC   500      __multiply
260 0x00010938 0x0001f938 GLOBAL FUNC   32       unlink
261 ---------- 0x000251d0 GLOBAL OBJ    40       __malloc_current_mallinfo
262 0x00012188 0x00021188 GLOBAL FUNC   4        __eqsf2
263 0x00008cf0 0x00017cf0 GLOBAL FUNC   320      __d2b
264 0x0000b18c 0x0001a18c GLOBAL FUNC   484      _strtoul_r
265 0x00011394 0x00020394 GLOBAL FUNC   212      __fpcmp_parts_d
266 0x00011748 0x00020748 GLOBAL FUNC   56       __negdf2
267 0x0001097c 0x0001f97c GLOBAL FUNC   36       fork
268 0x00004568 0x00013568 GLOBAL FUNC   356      __swsetup_r
269 0x00011260 0x00020260 GLOBAL FUNC   308      __divdf3
270 0x000123e4 0x000213e4 GLOBAL FUNC   56       __negsf2
271 0x00006110 0x00015110 GLOBAL FUNC   264      __sfp
272 0x00008f2c 0x00017f2c GLOBAL FUNC   104      __copybits
273 0x00015858 0x00024858 GLOBAL OBJ    2064     __malloc_av_
274 0x00006244 0x00015244 GLOBAL FUNC   4        __sinit_lock_release
275 0x00011058 0x00020058 GLOBAL FUNC   520      __muldf3
276 0x00009a2c 0x00018a2c GLOBAL FUNC   100      __sread
277 0x00013458 0x00022458 GLOBAL OBJ    16       __thenan_sf
278 0x000064bc 0x000154bc GLOBAL FUNC   24       fread
279 0x000107cc 0x0001f7cc GLOBAL FUNC   48       __syscall_error
280 0x00007fa8 0x00016fa8 GLOBAL FUNC   4        __malloc_lock
282 0x00010b30 0x0001fb30 GLOBAL FUNC   80       sbrk
283 0x00005e7c 0x00014e7c GLOBAL FUNC   92       _fflush_r
284 0x0000e4cc 0x0001d4cc GLOBAL FUNC   180      _calloc_r
285 0x0001208c 0x0002108c GLOBAL FUNC   64       __cmpsf2
286 0x00010abc 0x0001fabc GLOBAL FUNC   32       gettimeofday
287 0x00007ecc 0x00016ecc GLOBAL NOTYPE 0        memset
288 0x00001150 0x00010150 GLOBAL FUNC   160      main
289 ---------- 0x00025178 GLOBAL OBJ    8        __malloc_max_total_mem
290 0x000105d4 0x0001f5d4 GLOBAL FUNC   16       __swbuf
291 0x00012180 0x00021180 GLOBAL FUNC   4        __ltsf2
292 0x00006268 0x00015268 GLOBAL FUNC   596      _fread_r
293 0x00009b74 0x00018b74 GLOBAL FUNC   8        __sclose
294 0x0000e684 0x0001d684 GLOBAL FUNC   12       fclose
295 0x000117ac 0x000207ac GLOBAL FUNC   76       __truncdfsf2
296 0x0000af9c 0x00019f9c GLOBAL FUNC   476      _strtol_r
297 0x00004b44 0x00013b44 GLOBAL FUNC   4300     _dtoa_r
298 0x000071c0 0x000161c0 GLOBAL FUNC   1988     _malloc_r
299 0x00010740 0x0001f740 GLOBAL FUNC   48       __ascii_wctomb
300 0x0000cf78 0x0001bf78 GLOBAL FUNC   240      __submore
301 0x00006dac 0x00015dac GLOBAL FUNC   176      _fwalk
302 0x00007b48 0x00016b48 GLOBAL FUNC   100      _mbtowc_r
303 0x00013440 0x00022440 GLOBAL OBJ    24       __thenan_df
304 0x000064d4 0x000154d4 GLOBAL FUNC   280      _malloc_trim_r
305 0x00011ce8 0x00020ce8 GLOBAL FUNC   420      __mulsf3
306 0x00009b7c 0x00018b7c GLOBAL NOTYPE 0        strcmp
307 0x0000e3f8 0x0001d3f8 GLOBAL FUNC   20       vfiprintf
308 0x00010b0c 0x0001fb0c GLOBAL FUNC   8        getcwd
309 0x00011560 0x00020560 GLOBAL FUNC   4        __nedf2
310 0x00001048 0x00010048 GLOBAL NOTYPE 0        _fini
311 0x000099b0 0x000189b0 GLOBAL FUNC   124      sprintf
312 0x00013468 0x00022468 GLOBAL OBJ    256      __clz_tab
313 ---------- 0x00025168 GLOBAL OBJ    8        _PathLocale
314 0x0000af4c 0x00019f4c GLOBAL FUNC   80       strtof
315 0x000011f0 0x000101f0 GLOBAL FUNC   20       atexit
316 0x000120cc 0x000210cc GLOBAL FUNC   88       __gesf2
317 0x00006ff8 0x00015ff8 GLOBAL FUNC   16       setlocale
318 0x00001480 0x00010480 GLOBAL FUNC   80       scanf
319 0x000098b4 0x000188b4 GLOBAL FUNC   8        nanf
320 0x00016080 0x00025080 GLOBAL OBJ    8        _impure_ptr
321 0x00005c10 0x00014c10 GLOBAL FUNC   620      __sflush_r
322 0x00007984 0x00016984 GLOBAL FUNC   180      _mbrtowc_r
323 0x00006fe4 0x00015fe4 GLOBAL FUNC   8        __locale_cjk_lang
324 0x0000f654 0x0001e654 GLOBAL FUNC   3592     _svfiprintf_r
325 0x000095ac 0x000185ac GLOBAL FUNC   588      __srefill_r
326 0x00007b08 0x00016b08 GLOBAL FUNC   64       __ascii_mbtowc
327 0x00008b10 0x00017b10 GLOBAL FUNC   144      __ulp
328 0x00006258 0x00015258 GLOBAL FUNC   16       __fp_unlock_all
329 0x00007008 0x00016008 GLOBAL FUNC   8        localeconv
330 0x00010adc 0x0001fadc GLOBAL FUNC   16       ftime
331 0x00010880 0x0001f880 GLOBAL FUNC   28       stat
332 0x000108cc 0x0001f8cc GLOBAL FUNC   28       access
333 0x00016068 0x00025068 GLOBAL NOTYPE 0        _edata
334 ---------- 0x00025208 GLOBAL NOTYPE 0        _end
335 0x0001218c 0x0002118c GLOBAL FUNC   72       __unordsf2
336 0x0000e690 0x0001d690 GLOBAL FUNC   364      __fputwc
337 0x000044a8 0x000134a8 GLOBAL FUNC   96       vfscanf
338 0x00009a98 0x00018a98 GLOBAL FUNC   112      __swrite
339 0x000160a0 0x000250a0 GLOBAL OBJ    8        __malloc_trim_threshold
340 0x0001091c 0x0001f91c GLOBAL FUNC   28       link
341 0x00006fd8 0x00015fd8 GLOBAL FUNC   12       __locale_msgcharset
342 0x00001204 0x00010204 GLOBAL FUNC   48       exit
343 0x0000d348 0x0001c348 GLOBAL FUNC   4272     _vfiprintf_r
344 0x00006e5c 0x00015e5c GLOBAL FUNC   192      _fwalk_reent
345 0x00012284 0x00021284 GLOBAL FUNC   212      __floatunsisf
346 0x00008908 0x00017908 GLOBAL FUNC   520      __mdiff
347 0x00016088 0x00025088 GLOBAL OBJ    8        __ctype_ptr__
348 0x0000623c 0x0001523c GLOBAL FUNC   4        __sfp_lock_release
349 0x000097fc 0x000187fc GLOBAL FUNC   184      __sccl
350 0x00012b48 0x00021b48 GLOBAL OBJ    257      _ctype_
351 0x00010814 0x0001f814 GLOBAL FUNC   20       openat
352 0x00011568 0x00020568 GLOBAL FUNC   72       __unorddf2
353 0x000160a8 0x000250a8 GLOBAL OBJ    8        __mbtowc
354 0x00011fb8 0x00020fb8 GLOBAL FUNC   212      __fpcmp_parts_f
355 0x00010b80 0x0001fb80 GLOBAL FUNC   28       _exit
356 0x00007014 0x00016014 GLOBAL FUNC   428      __smakebuf_r
357 0x00001514 0x00010514 GLOBAL FUNC   204      strlen
358 0x000107fc 0x0001f7fc GLOBAL FUNC   24       open
359 0x000114a8 0x000204a8 GLOBAL FUNC   88       __gedf2
360 0x0000e994 0x0001d994 GLOBAL FUNC   1936     __gethex
361 0x000160b0 0x000250b0 GLOBAL OBJ    8        __wctomb
362 0x0000d330 0x0001c330 GLOBAL FUNC   24       __sprint_r
363 0x00010770 0x0001f770 GLOBAL FUNC   92       _wctomb_r
365 0x000117f8 0x000207f8 GLOBAL FUNC   96       __clzdi2
366 0x00011004 0x00020004 GLOBAL FUNC   84       __subdf3
367 0x000015e0 0x000105e0 GLOBAL FUNC   7288     _vfprintf_r
368 0x00008338 0x00017338 GLOBAL FUNC   176      __lo0bits
369 0x0000332c 0x0001232c GLOBAL FUNC   4476     __svfscanf_r
370 ---------- 0x00025168 GLOBAL NOTYPE 0        _fbss
371 0x0000d068 0x0001c068 GLOBAL FUNC   460      _ungetc_r
373 0x00010688 0x0001f688 GLOBAL FUNC   184      wcrtomb
374 0x000108fc 0x0001f8fc GLOBAL FUNC   32       close
375 0x00011c4c 0x00020c4c GLOBAL FUNC   72       __addsf3
376 0x00010d8c 0x0001fd8c GLOBAL FUNC   332      __pack_d
377 0x00003258 0x00012258 GLOBAL FUNC   20       vfprintf
378 0x0000e824 0x0001d824 GLOBAL FUNC   120      fputwc
380 0x00006240 0x00015240 GLOBAL FUNC   4        __sinit_lock_acquire
381 0x00008080 0x00017080 GLOBAL FUNC   272      __multadd
382 0x0000805c 0x0001705c GLOBAL FUNC   36       _Bfree
EOF
RUN

NAME=ELF: riscv64: file format
FILE=bins/elf/analysis/guess-number-riscv64
CMDS=i
EXPECT=<<EOF
fd       3
file     bins/elf/analysis/guess-number-riscv64
size     0x9d5a8
humansz  629.4K
mode     r-x
format   elf64
iorw     false
block    0x100
type     EXEC (Executable file)
arch     riscv
baddr    0x10000
binsz    643108
bintype  elf
bits     64
canary   false
injprot  true
class    ELF64
compiler GCC: (GNU) 5.2.0
crypto   false
endian   little
havecode true
laddr    0x0
lang     c
linenum  true
lsyms    true
machine  RISC V
nx       false
os       linux
pic      false
relocs   true
relro    no
rpath    NONE
sanitize false
static   true
stripped false
subsys   linux
va       true
EOF
RUN

NAME=ELF: riscv64: main analysis (1)
FILE=bins/elf/analysis/guess-number-riscv64
CMDS=<<EOF
e asm.var.summary=0
e anal.vars.stackname=true
e asm.cmt.calls=false
s sym.main
af
pdf
EOF
EXPECT=<<EOF
/ (fcn) main 160
// int main (int argc, char **argv);
|           ; arg int argc @ a0
|           ; var int64_t var_18h @ s0-0x18
|           ; arg int64_t argv @ sp+0x20
|           0x00010150      130101fe       addi sp, sp, -32
|           0x00010154      233c1100       sd ra, 24(sp)
|           0x00010158      23388100       sd s0, 16(sp)
|           0x0001015c      13040102       addi s0, sp, 32
|           0x00010160      9307b007       li a5, 123
|           0x00010164      2326f4fe       sw a5, -20(s0)
|           0x00010168      9307f0ff       li a5, -1
|           0x0001016c      2324f4fe       sw a5, -24(s0)
|           ; CODE XREFS from main @ 0x101c8(x), 0x101d8(x)
|      ..-> 0x00010170      b7170200       lui a5, 0x21
|      ::   0x00010174      1385874f       addi a0, a5, 1272
|      ::   0x00010178      ef00c01f       jal ra, sym.printf
|      ::   0x0001017c      930784fe       addi a5, s0, -24
|      ::   0x00010180      93850700       mv a1, a5
|      ::   0x00010184      b7170200       lui a5, 0x21
|      ::   0x00010188      13850751       addi a0, a5, 1296
|      ::   0x0001018c      ef00402f       jal ra, sym.scanf
|      ::   0x00010190      032784fe       lw a4, -24(s0)
|      ::   0x00010194      8327c4fe       lw a5, -20(s0)
|     ,===< 0x00010198      631cf700       bne a4, a5, 0x101b0
|     |::   0x0001019c      b7170200       lui a5, 0x21
|     |::   0x000101a0      13858751       addi a0, a5, 1304
|     |::   0x000101a4      ef00002d       jal ra, sym.puts
|     |::   0x000101a8      93070000       li a5, 0
|    ,====< 0x000101ac      6f000003       j 0x101dc
|    |`---> 0x000101b0      032784fe       lw a4, -24(s0)
|    | ::   0x000101b4      8327c4fe       lw a5, -20(s0)
|    |,===< 0x000101b8      635af700       ble a5, a4, 0x101cc
|    ||::   0x000101bc      b7170200       lui a5, 0x21
|    ||::   0x000101c0      13858752       addi a0, a5, 1320
|    ||::   0x000101c4      ef00002b       jal ra, sym.puts
|    ||`==< 0x000101c8      6ff09ffa       j 0x10170
|    |`---> 0x000101cc      b7170200       lui a5, 0x21
|    |  :   0x000101d0      13858753       addi a0, a5, 1336
|    |  :   0x000101d4      ef00002a       jal ra, sym.puts
|    |  `=< 0x000101d8      6ff09ff9       j 0x10170
|    |      ; CODE XREF from main @ 0x101ac(x)
|    `----> 0x000101dc      13850700       mv a0, a5
|           0x000101e0      83308101       ld ra, 24(sp)
|           0x000101e4      03340101       ld s0, 16(sp)
|           0x000101e8      13010102       addi sp, sp, 32
\           0x000101ec      67800000       ret
EOF
RUN

NAME=ELF: riscv64: main analysis (2)
FILE=bins/elf/analysis/guess-number-riscv64
CMDS=<<EOF
e asm.var.summary=0
s sym.main
af
pdf
EOF
EXPECT=<<EOF
/ 160: int main (int argc, char **argv);
|           ; arg int argc @ a0
|           ; var int64_t var_18h @ s0-0x18
|           ; arg int64_t argv @ sp+0x20
|           0x00010150      130101fe       addi sp, sp, -32
|           0x00010154      233c1100       sd ra, 24(sp)
|           0x00010158      23388100       sd s0, 16(sp)
|           0x0001015c      13040102       addi s0, sp, 32
|           0x00010160      9307b007       li a5, 123
|           0x00010164      2326f4fe       sw a5, -20(s0)
|           0x00010168      9307f0ff       li a5, -1
|           0x0001016c      2324f4fe       sw a5, -24(s0)
|           ; CODE XREFS from main @ 0x101c8(x), 0x101d8(x)
|      ..-> 0x00010170      b7170200       lui a5, 0x21
|      ::   0x00010174      1385874f       addi a0, a5, 1272
|      ::   0x00010178      ef00c01f       jal ra, sym.printf          ; int printf(const char *format)
|      ::   0x0001017c      930784fe       addi a5, s0, -24
|      ::   0x00010180      93850700       mv a1, a5
|      ::   0x00010184      b7170200       lui a5, 0x21
|      ::   0x00010188      13850751       addi a0, a5, 1296
|      ::   0x0001018c      ef00402f       jal ra, sym.scanf           ; int scanf(const char *format)
|      ::   0x00010190      032784fe       lw a4, -24(s0)
|      ::   0x00010194      8327c4fe       lw a5, -20(s0)
|     ,===< 0x00010198      631cf700       bne a4, a5, 0x101b0
|     |::   0x0001019c      b7170200       lui a5, 0x21
|     |::   0x000101a0      13858751       addi a0, a5, 1304
|     |::   0x000101a4      ef00002d       jal ra, sym.puts            ; int puts(const char *s)
|     |::   0x000101a8      93070000       li a5, 0
|    ,====< 0x000101ac      6f000003       j 0x101dc
|    |`---> 0x000101b0      032784fe       lw a4, -24(s0)
|    | ::   0x000101b4      8327c4fe       lw a5, -20(s0)
|    |,===< 0x000101b8      635af700       ble a5, a4, 0x101cc
|    ||::   0x000101bc      b7170200       lui a5, 0x21
|    ||::   0x000101c0      13858752       addi a0, a5, 1320
|    ||::   0x000101c4      ef00002b       jal ra, sym.puts            ; int puts(const char *s)
|    ||`==< 0x000101c8      6ff09ffa       j 0x10170
|    |`---> 0x000101cc      b7170200       lui a5, 0x21
|    |  :   0x000101d0      13858753       addi a0, a5, 1336
|    |  :   0x000101d4      ef00002a       jal ra, sym.puts            ; int puts(const char *s)
|    |  `=< 0x000101d8      6ff09ff9       j 0x10170
|    |      ; CODE XREF from main @ 0x101ac(x)
|    `----> 0x000101dc      13850700       mv a0, a5
|           0x000101e0      83308101       ld ra, 24(sp)
|           0x000101e4      03340101       ld s0, 16(sp)
|           0x000101e8      13010102       addi sp, sp, 32
\           0x000101ec      67800000       ret
EOF
RUN

NAME=ELF: riscv64: full analysis
FILE=bins/elf/analysis/guess-number-riscv64
BROKEN=1
ARGS=-e asm.cmt.calls=false -b64 -A
CMDS=<<EOF
s sym.main
e emu.str=true
pdf
EOF
EXPECT=<<EOF
            ; CALL XREF from entry0 @ 0x10040(x)
/ (fcn) main 160
// int main (int argc, int64_t argv);
|           ; arg int argc @ a0
|           ; var int64_t var_18h @ s0-0x18
|           ; arg int64_t argv @ sp+0x20
|           0x00010150      130101fe       addi sp, sp, -32
|           0x00010154      233c1100       sd ra, 24(sp)
|           0x00010158      23388100       sd s0, 16(sp)
|           0x0001015c      13040102       addi s0, sp, 32
|           0x00010160      9307b007       li a5, 123
|           0x00010164      2326f4fe       sw a5, -20(s0)
|           0x00010168      9307f0ff       li a5, -1
|           0x0001016c      2324f4fe       sw a5, -24(s0)
|           ; CODE XREFS from main @ 0x101c8(x), 0x101d8(x)
|      ..-> 0x00010170      b7170200       lui a5, 0x21
|      ::   0x00010174      1385874f       addi a0, a5, 1272           ; 0x214f8 ; "Enter your guess : " ; const char *format
|      ::   0x00010178      ef00c01f       jal ra, dbg.printf
|      ::   0x0001017c      930784fe       addi a5, s0, -24
|      ::   0x00010180      93850700       mv a1, a5
|      ::   0x00010184      b7170200       lui a5, 0x21
|      ::   0x00010188      13850751       addi a0, a5, 1296           ; const char *format
|      ::   0x0001018c      ef00402f       jal ra, dbg.scanf
|      ::   0x00010190      032784fe       lw a4, -24(s0)
|      ::   0x00010194      8327c4fe       lw a5, -20(s0)
|     ,===< 0x00010198      631cf700       bne a4, a5, 0x101b0
|     |::   0x0001019c      b7170200       lui a5, 0x21
|     |::   0x000101a0      13858751       addi a0, a5, 1304           ; 0x21518 ; "You win!" ; const char *s
|     |::   0x000101a4      ef00002d       jal ra, dbg.puts
|     |::   0x000101a8      93070000       li a5, 0
|    ,====< 0x000101ac      6f000003       j 0x101dc
|    ||::   ; CODE XREF from main @ 0x10198(x)
|    |`---> 0x000101b0      032784fe       lw a4, -24(s0)
|    | ::   0x000101b4      8327c4fe       lw a5, -20(s0)
|    |,===< 0x000101b8      635af700       ble a5, a4, 0x101cc
|    ||::   0x000101bc      b7170200       lui a5, 0x21
|    ||::   0x000101c0      13858752       addi a0, a5, 1320           ; 0x21528 ; "Too small" ; const char *s
|    ||::   0x000101c4      ef00002b       jal ra, dbg.puts
|    ||`==< 0x000101c8      6ff09ffa       j 0x10170
|    || :   ; CODE XREF from main @ 0x101b8(x)
|    |`---> 0x000101cc      b7170200       lui a5, 0x21
|    |  :   0x000101d0      13858753       addi a0, a5, 1336           ; 0x21538 ; "Too big" ; const char *s
|    |  :   0x000101d4      ef00002a       jal ra, dbg.puts
|    |  `=< 0x000101d8      6ff09ff9       j 0x10170
|    |      ; CODE XREF from main @ 0x101ac(x)
|    `----> 0x000101dc      13850700       mv a0, a5
|           0x000101e0      83308101       ld ra, 24(sp)
|           0x000101e4      03340101       ld s0, 16(sp)
|           0x000101e8      13010102       addi sp, sp, 32
\           0x000101ec      67800000       ret
EOF
RUN

NAME=ELF: riscv64: full analysis
FILE=bins/elf/analysis/guess-number-riscv64
ARGS=-e asm.cmt.calls=false -b64
CMDS=<<EOF
e asm.var.summary=0
aeim
e asm.bits=64
e asm.arch=riscv
e asm.emu=true
s sym.main
af
pdf
EOF
EXPECT=<<EOF
/ (fcn) main 160
// int main (int argc, char **argv);
|           ; arg int argc @ a0
|           ; var int64_t var_18h @ s0-0x18
|           ; arg int64_t argv @ sp+0x20
|           0x00010150      130101fe       addi sp, sp, -32            ; sp=0x177fe0
|           0x00010154      233c1100       sd ra, 24(sp)               ; [0x00177ff8:8] = 0x0
|           0x00010158      23388100       sd s0, 16(sp)               ; [0x00177ff0:8] = 0x178000
|           0x0001015c      13040102       addi s0, sp, 32             ; s0=0x178000
|           0x00010160      9307b007       li a5, 123                  ; a5=0x7b
|           0x00010164      2326f4fe       sw a5, -20(s0)              ; [0x00177fec:4] = 0x7b
|           0x00010168      9307f0ff       li a5, -1                   ; a5=0xffffffffffffffff
|           0x0001016c      2324f4fe       sw a5, -24(s0)              ; [0x00177fe8:4] = 0xffffffff
|           ; CODE XREFS from main @ 0x101c8(x), 0x101d8(x)
|      ..-> 0x00010170      b7170200       lui a5, 0x21                ; a5=0x21000
|      ::   0x00010174      1385874f       addi a0, a5, 1272           ; a0=0x214f8 "Enter your guess : " section..rodata
|      ::   0x00010178      ef00c01f       jal ra, sym.printf          ; ra=0x1017c -> 0xfe840793 ; pc=0x10374 -> 0x8101b283
|      ::                                                              ; int printf("Enter your guess : ")
|      ::   0x0001017c      930784fe       addi a5, s0, -24            ; a5=0x177fe8
|      ::   0x00010180      93850700       mv a1, a5                   ; a1=0x177fe8
|      ::   0x00010184      b7170200       lui a5, 0x21                ; a5=0x21000
|      ::   0x00010188      13850751       addi a0, a5, 1296           ; a0=0x21510 "%d"
|      ::   0x0001018c      ef00402f       jal ra, sym.scanf           ; ra=0x10190 -> 0xfe842703 ; pc=0x10480 -> 0x8101b283
|      ::                                                              ; int scanf("%d")
|      ::   0x00010190      032784fe       lw a4, -24(s0)              ; a4=0x0
|      ::   0x00010194      8327c4fe       lw a5, -20(s0)              ; a5=0x0
|     ,===< 0x00010198      631cf700       bne a4, a5, 0x101b0         ; unlikely
|     |::   0x0001019c      b7170200       lui a5, 0x21                ; a5=0x21000
|     |::   0x000101a0      13858751       addi a0, a5, 1304           ; a0=0x21518 "You win!" str.You_win_
|     |::   0x000101a4      ef00002d       jal ra, sym.puts            ; ra=0x101a8 -> 0x793 ; pc=0x10474 -> 0x50593
|     |::                                                              ; int puts("You win!")
|     |::   0x000101a8      93070000       li a5, 0                    ; a5=0x0
|    ,====< 0x000101ac      6f000003       j 0x101dc                   ; pc=0x101dc -> 0x78513
|    |`---> 0x000101b0      032784fe       lw a4, -24(s0)              ; a4=0x0
|    | ::   0x000101b4      8327c4fe       lw a5, -20(s0)              ; a5=0x0
|    |,===< 0x000101b8      635af700       ble a5, a4, 0x101cc         ; pc=0x101cc -> 0x125fc00 ; likely
|    ||::   0x000101bc      b7170200       lui a5, 0x21                ; a5=0x21000
|    ||::   0x000101c0      13858752       addi a0, a5, 1320           ; a0=0x21528 "Too small" str.Too_small
|    ||::   0x000101c4      ef00002b       jal ra, sym.puts            ; ra=0x101c8 -> 0xfa9ff06f ; pc=0x10474 -> 0x50593
|    ||::                                                              ; int puts("Too small")
|    ||`==< 0x000101c8      6ff09ffa       j 0x10170                   ; pc=0x10170 -> 0x125fc00
|    |`---> 0x000101cc      b7170200       lui a5, 0x21                ; a5=0x21000
|    |  :   0x000101d0      13858753       addi a0, a5, 1336           ; a0=0x21538 "Too big" str.Too_big
|    |  :   0x000101d4      ef00002a       jal ra, sym.puts            ; ra=0x101d8 -> 0xf99ff06f ; pc=0x10474 -> 0x50593
|    |  :                                                              ; int puts("Too big")
|    |  `=< 0x000101d8      6ff09ff9       j 0x10170                   ; pc=0x10170 -> 0x125fc00
|    |      ; CODE XREF from main @ 0x101ac(x)
|    `----> 0x000101dc      13850700       mv a0, a5                   ; a0=0x21000
|           0x000101e0      83308101       ld ra, 24(sp)               ; ra=0x0
|           0x000101e4      03340101       ld s0, 16(sp)               ; s0=0x0
|           0x000101e8      13010102       addi sp, sp, 32             ; sp=0x178028
\           0x000101ec      67800000       ret                         ; pc=0x0
EOF
RUN
