NAME=cmd_c
FILE=bins/elf/ls
CMDS=c 1234567890
EXPECT=<<EOF
0x00005ae0 (byte=01)   f3 ' '  ->  31 '1'
0x00005ae1 (byte=02)   0f ' '  ->  32 '2'
0x00005ae2 (byte=03)   1e ' '  ->  33 '3'
0x00005ae3 (byte=04)   fa ' '  ->  34 '4'
0x00005ae4 (byte=05)   31 '1'  ->  35 '5'
0x00005ae5 (byte=06)   ed ' '  ->  36 '6'
0x00005ae6 (byte=07)   49 'I'  ->  37 '7'
0x00005ae7 (byte=08)   89 ' '  ->  38 '8'
0x00005ae8 (byte=09)   d1 ' '  ->  39 '9'
0x00005ae9 (byte=10)   5e '^'  ->  30 '0'
Compare 0/10 equal bytes (0%)
EOF
RUN

NAME=cmd_cj
FILE=bins/elf/ls
CMDS=cj 1234
EXPECT=<<EOF
{"diff_bytes":[{"offset1":23264,"offset2":0,"rel_offset":0,"value1":243,"value2":49},{"offset1":23265,"offset2":1,"rel_offset":1,"value1":15,"value2":50},{"offset1":23266,"offset2":2,"rel_offset":2,"value1":30,"value2":51},{"offset1":23267,"offset2":3,"rel_offset":3,"value1":250,"value2":52}],"equal_bytes":0,"total_bytes":4}
EOF
RUN

NAME=cmd_c1
FILE=bins/elf/ls
CMDS=c1 0x00005ae1
EXPECT=<<EOF
- offset -  7 6 5 4 3 2 1 0
0x00005ae0  1 1 1 1 0 0 1 1 
0x00005ae1  0 0 0 0 1 1 1 1 
EOF
RUN

NAME=cmd_cb
FILE=bins/elf/ls
CMDS=<<EOF
cb 0xf3f3 2
cb 0xfa1e0ff2 4
cb 0x8989898989898989 8
cb 0x133713371337133713 9
cb 0xf1f2fa1e0ff2 4
cb 0x1a0ff2 3
cb 0x33445566778899aa 8
echo -- be
e cfg.bigendian=1
cb 0x1a0ff2 3
cb 0x33445566778899aa 8
EOF
EXPECT=<<EOF
0x00005ae1 (byte=02)   0f ' '  ->  f3 ' '
Compare 1/2 equal bytes (50%)
0x00005ae0 (byte=01)   f3 ' '  ->  f2 ' '
Compare 3/4 equal bytes (75%)
0x00005ae0 (byte=01)   f3 ' '  ->  89 ' '
0x00005ae1 (byte=02)   0f ' '  ->  89 ' '
0x00005ae2 (byte=03)   1e ' '  ->  89 ' '
0x00005ae3 (byte=04)   fa ' '  ->  89 ' '
0x00005ae4 (byte=05)   31 '1'  ->  89 ' '
0x00005ae5 (byte=06)   ed ' '  ->  89 ' '
0x00005ae6 (byte=07)   49 'I'  ->  89 ' '
Compare 1/8 equal bytes (12%)
0x00005ae0 (byte=01)   f3 ' '  ->  f2 ' '
Compare 3/4 equal bytes (75%)
0x00005ae0 (byte=01)   f3 ' '  ->  f2 ' '
0x00005ae2 (byte=03)   1e ' '  ->  1a ' '
Compare 1/3 equal bytes (33%)
0x00005ae0 (byte=01)   f3 ' '  ->  aa ' '
0x00005ae1 (byte=02)   0f ' '  ->  99 ' '
0x00005ae2 (byte=03)   1e ' '  ->  88 ' '
0x00005ae3 (byte=04)   fa ' '  ->  77 'w'
0x00005ae4 (byte=05)   31 '1'  ->  66 'f'
0x00005ae5 (byte=06)   ed ' '  ->  55 'U'
0x00005ae6 (byte=07)   49 'I'  ->  44 'D'
0x00005ae7 (byte=08)   89 ' '  ->  33 '3'
Compare 0/8 equal bytes (0%)
-- be
0x00005ae0 (byte=01)   f3 ' '  ->  1a ' '
0x00005ae2 (byte=03)   1e ' '  ->  f2 ' '
Compare 1/3 equal bytes (33%)
0x00005ae0 (byte=01)   f3 ' '  ->  33 '3'
0x00005ae1 (byte=02)   0f ' '  ->  44 'D'
0x00005ae2 (byte=03)   1e ' '  ->  55 'U'
0x00005ae3 (byte=04)   fa ' '  ->  66 'f'
0x00005ae4 (byte=05)   31 '1'  ->  77 'w'
0x00005ae5 (byte=06)   ed ' '  ->  88 ' '
0x00005ae6 (byte=07)   49 'I'  ->  99 ' '
0x00005ae7 (byte=08)   89 ' '  ->  aa ' '
Compare 0/8 equal bytes (0%)
EOF
RUN

NAME=cmd_ca
FILE=bins/elf/ls
CMDS=<<EOF
ca 0x5ae4 10
EOF
EXPECT=<<EOF
0x00005ae0  ->  0x00005ae4 (byte=01)   f3 ' '  ->  31 '1'
0x00005ae1  ->  0x00005ae5 (byte=02)   0f ' '  ->  ed ' '
0x00005ae2  ->  0x00005ae6 (byte=03)   1e ' '  ->  49 'I'
0x00005ae3  ->  0x00005ae7 (byte=04)   fa ' '  ->  89 ' '
0x00005ae4  ->  0x00005ae8 (byte=05)   31 '1'  ->  d1 ' '
0x00005ae5  ->  0x00005ae9 (byte=06)   ed ' '  ->  5e '^'
0x00005ae6  ->  0x00005aea (byte=07)   49 'I'  ->  48 'H'
0x00005ae8  ->  0x00005aec (byte=09)   d1 ' '  ->  e2 ' '
0x00005ae9  ->  0x00005aed (byte=10)   5e '^'  ->  48 'H'
Compare 1/10 equal bytes (10%)
EOF
RUN

NAME=cmd_cc
FILE=bins/elf/ls
ARGS=-e scr.columns=160
CMDS=<<EOF
cc 0x5af0
echo --------
cc 0x5ae0
EOF
EXPECT=<<EOF
0x00005ae0 f30f1efa31ed4989d15e4889e24883e4 ....1.I..^H..H.. ! 0x00005af0 f050544c8d05660c0100488d0def0b01 .PTL..f...H.....
0x00005af0 f050544c8d05660c0100488d0def0b01 .PTL..f...H..... ! 0x00005b00 00488d3d68e5ffffff150ac30100f490 .H.=h...........
0x00005b00 00488d3d68e5ffffff150ac30100f490 .H.=h........... ! 0x00005b10 488d3d51c70100488d054ac701004839 H.=Q...H..J...H9
0x00005b10 488d3d51c70100488d054ac701004839 H.=Q...H..J...H9 ! 0x00005b20 f87415488b0596c101004885c07409ff .t.H......H..t..
0x00005b20 f87415488b0596c101004885c07409ff .t.H......H..t.. ! 0x00005b30 e00f1f8000000000c30f1f8000000000 ................
0x00005b30 e00f1f8000000000c30f1f8000000000 ................ ! 0x00005b40 488d3d21c70100488d351ac701004829 H.=!...H.5....H)
0x00005b40 488d3d21c70100488d351ac701004829 H.=!...H.5....H) ! 0x00005b50 fe48c1fe034889f048c1e83f4801c648 .H...H..H..?H..H
0x00005b50 fe48c1fe034889f048c1e83f4801c648 .H...H..H..?H..H ! 0x00005b60 d1fe7414488b053dc401004885c07408 ..t.H..=...H..t.
0x00005b60 d1fe7414488b053dc401004885c07408 ..t.H..=...H..t. ! 0x00005b70 ffe0660f1f440000c30f1f8000000000 ..f..D..........
0x00005b70 ffe0660f1f440000c30f1f8000000000 ..f..D.......... ! 0x00005b80 f30f1efa803d3dc70100007533554883 .....==....u3UH.
0x00005b80 f30f1efa803d3dc70100007533554883 .....==....u3UH. ! 0x00005b90 3d32c40100004889e5740d488b3d66c4 =2....H..t.H.=f.
0x00005b90 3d32c40100004889e5740d488b3d66c4 =2....H..t.H.=f. ! 0x00005ba0 0100ff1520c40100e863ffffffc60514 .... ....c......
0x00005ba0 0100ff1520c40100e863ffffffc60514 .... ....c...... ! 0x00005bb0 c70100015dc3662e0f1f840000000000 ....].f.........
0x00005bb0 c70100015dc3662e0f1f840000000000 ....].f......... ! 0x00005bc0 c366662e0f1f8400000000000f1f4000 .ff...........@.
0x00005bc0 c366662e0f1f8400000000000f1f4000 .ff...........@. ! 0x00005bd0 f30f1efae967ffffff0f1f8000000000 .....g..........
0x00005bd0 f30f1efae967ffffff0f1f8000000000 .....g.......... ! 0x00005be0 488b0731d248f7f64889d0c30f1f4000 H..1.H..H.....@.
--------
0x00005ae0 f30f1efa31ed4989d15e4889e24883e4 ....1.I..^H..H.. | 0x00005ae0 f30f1efa31ed4989d15e4889e24883e4 ....1.I..^H..H..
0x00005af0 f050544c8d05660c0100488d0def0b01 .PTL..f...H..... | 0x00005af0 f050544c8d05660c0100488d0def0b01 .PTL..f...H.....
0x00005b00 00488d3d68e5ffffff150ac30100f490 .H.=h........... | 0x00005b00 00488d3d68e5ffffff150ac30100f490 .H.=h...........
0x00005b10 488d3d51c70100488d054ac701004839 H.=Q...H..J...H9 | 0x00005b10 488d3d51c70100488d054ac701004839 H.=Q...H..J...H9
0x00005b20 f87415488b0596c101004885c07409ff .t.H......H..t.. | 0x00005b20 f87415488b0596c101004885c07409ff .t.H......H..t..
0x00005b30 e00f1f8000000000c30f1f8000000000 ................ | 0x00005b30 e00f1f8000000000c30f1f8000000000 ................
0x00005b40 488d3d21c70100488d351ac701004829 H.=!...H.5....H) | 0x00005b40 488d3d21c70100488d351ac701004829 H.=!...H.5....H)
0x00005b50 fe48c1fe034889f048c1e83f4801c648 .H...H..H..?H..H | 0x00005b50 fe48c1fe034889f048c1e83f4801c648 .H...H..H..?H..H
0x00005b60 d1fe7414488b053dc401004885c07408 ..t.H..=...H..t. | 0x00005b60 d1fe7414488b053dc401004885c07408 ..t.H..=...H..t.
0x00005b70 ffe0660f1f440000c30f1f8000000000 ..f..D.......... | 0x00005b70 ffe0660f1f440000c30f1f8000000000 ..f..D..........
0x00005b80 f30f1efa803d3dc70100007533554883 .....==....u3UH. | 0x00005b80 f30f1efa803d3dc70100007533554883 .....==....u3UH.
0x00005b90 3d32c40100004889e5740d488b3d66c4 =2....H..t.H.=f. | 0x00005b90 3d32c40100004889e5740d488b3d66c4 =2....H..t.H.=f.
0x00005ba0 0100ff1520c40100e863ffffffc60514 .... ....c...... | 0x00005ba0 0100ff1520c40100e863ffffffc60514 .... ....c......
0x00005bb0 c70100015dc3662e0f1f840000000000 ....].f......... | 0x00005bb0 c70100015dc3662e0f1f840000000000 ....].f.........
0x00005bc0 c366662e0f1f8400000000000f1f4000 .ff...........@. | 0x00005bc0 c366662e0f1f8400000000000f1f4000 .ff...........@.
0x00005bd0 f30f1efae967ffffff0f1f8000000000 .....g.......... | 0x00005bd0 f30f1efae967ffffff0f1f8000000000 .....g..........
EOF
RUN

NAME=cmd_ccc
FILE=bins/elf/ls
ARGS=-e scr.columns=160
CMDS=<<EOF
ccc 0x5ad0
echo --------
ccc 0x5ae0
EOF
EXPECT=<<EOF
0x00005ae0 f30f1efa31ed4989d15e4889e24883e4 ....1.I..^H..H.. ! 0x00005ad0 1503c30100662e0f1f84000000000090 .....f..........
0x00005af0 f050544c8d05660c0100488d0def0b01 .PTL..f...H..... ! 0x00005ae0 f30f1efa31ed4989d15e4889e24883e4 ....1.I..^H..H..
0x00005b00 00488d3d68e5ffffff150ac30100f490 .H.=h........... ! 0x00005af0 f050544c8d05660c0100488d0def0b01 .PTL..f...H.....
0x00005b10 488d3d51c70100488d054ac701004839 H.=Q...H..J...H9 ! 0x00005b00 00488d3d68e5ffffff150ac30100f490 .H.=h...........
0x00005b20 f87415488b0596c101004885c07409ff .t.H......H..t.. ! 0x00005b10 488d3d51c70100488d054ac701004839 H.=Q...H..J...H9
0x00005b30 e00f1f8000000000c30f1f8000000000 ................ ! 0x00005b20 f87415488b0596c101004885c07409ff .t.H......H..t..
0x00005b40 488d3d21c70100488d351ac701004829 H.=!...H.5....H) ! 0x00005b30 e00f1f8000000000c30f1f8000000000 ................
0x00005b50 fe48c1fe034889f048c1e83f4801c648 .H...H..H..?H..H ! 0x00005b40 488d3d21c70100488d351ac701004829 H.=!...H.5....H)
0x00005b60 d1fe7414488b053dc401004885c07408 ..t.H..=...H..t. ! 0x00005b50 fe48c1fe034889f048c1e83f4801c648 .H...H..H..?H..H
0x00005b70 ffe0660f1f440000c30f1f8000000000 ..f..D.......... ! 0x00005b60 d1fe7414488b053dc401004885c07408 ..t.H..=...H..t.
0x00005b80 f30f1efa803d3dc70100007533554883 .....==....u3UH. ! 0x00005b70 ffe0660f1f440000c30f1f8000000000 ..f..D..........
0x00005b90 3d32c40100004889e5740d488b3d66c4 =2....H..t.H.=f. ! 0x00005b80 f30f1efa803d3dc70100007533554883 .....==....u3UH.
0x00005ba0 0100ff1520c40100e863ffffffc60514 .... ....c...... ! 0x00005b90 3d32c40100004889e5740d488b3d66c4 =2....H..t.H.=f.
0x00005bb0 c70100015dc3662e0f1f840000000000 ....].f......... ! 0x00005ba0 0100ff1520c40100e863ffffffc60514 .... ....c......
0x00005bc0 c366662e0f1f8400000000000f1f4000 .ff...........@. ! 0x00005bb0 c70100015dc3662e0f1f840000000000 ....].f.........
0x00005bd0 f30f1efae967ffffff0f1f8000000000 .....g.......... ! 0x00005bc0 c366662e0f1f8400000000000f1f4000 .ff...........@.
--------
EOF
RUN

NAME=cmd_ccd
FILE=bins/elf/ls
CMDS=<<EOF
ccd 0x5a8d
EOF
EXPECT=<<EOF
 0x00005ae0  endbr64                          ! 0x00005a8d  add dword [rax], eax
 0x00005ae4  xor ebp, ebp                     ! 0x00005a8f  call qword [rip + 0x1c343]
 0x00005ae6  mov r9, rdx                      ! 0x00005a95  lea rcx, [rip + 0x11cbe]
 0x00005ae9  pop rsi                          ! 0x00005a9c  mov edx, 0x670
 0x00005aea  mov rdx, rsp                     ! 0x00005aa1  lea rsi, [rip + 0x12dcf]
 0x00005aed  and rsp, 0xfffffffffffffff0      ! 0x00005aa8  lea rdi, [rip + 0x153b9]
 0x00005af1  push rax                         ! 0x00005aaf  call qword [rip + 0x1c323]
 0x00005af2  push rsp                         ! 0x00005ab5  lea rcx, [rip + 0x11bfc]
 0x00005af3  lea r8, [rip + 0x10c66]          ! 0x00005abc  mov edx, 0x403
 0x00005afa  lea rcx, [rip + 0x10bef]         ! 0x00005ac1  lea rsi, [rip + 0x12daf]
 0x00005b01  lea rdi, [rip - 0x1a98]          ! 0x00005ac8  lea rdi, [rip + 0x15339]
 0x00005b08  call qword [rip + 0x1c30a]       ! 0x00005acf  call qword [rip + 0x1c303]
 0x00005b0e  hlt                              ! 0x00005ad5  nop word cs:[rax + rax]
 0x00005b0f  nop                              = 0x00005adf  nop
 0x00005b10  lea rdi, [rip + 0x1c751]         ! 0x00005ae0  endbr64
 0x00005b17  lea rax, [rip + 0x1c74a]         ! 0x00005ae4  xor ebp, ebp
 0x00005b1e  cmp rax, rdi                     ! 0x00005ae6  mov r9, rdx
 0x00005b21  je 0x5b38                        ! 0x00005ae9  pop rsi
 0x00005b23  mov rax, qword [rip + 0x1c196]   ! 0x00005aea  mov rdx, rsp
 0x00005b2a  test rax, rax                    ! 0x00005aed  and rsp, 0xfffffffffffffff0
 0x00005b2d  je 0x5b38                        ! 0x00005af1  push rax
 0x00005b2f  jmp rax                          ! 0x00005af2  push rsp
 0x00005b31  nop dword [rax]                  ! 0x00005af3  lea r8, [rip + 0x10c66]
 0x00005b38  ret                              ! 0x00005afa  lea rcx, [rip + 0x10bef]
 0x00005b39  nop dword [rax]                  ! 0x00005b01  lea rdi, [rip - 0x1a98]
 0x00005b40  lea rdi, [rip + 0x1c721]         ! 0x00005b08  call qword [rip + 0x1c30a]
 0x00005b47  lea rsi, [rip + 0x1c71a]         ! 0x00005b0e  hlt
 0x00005b4e  sub rsi, rdi                     ! 0x00005b0f  nop
 0x00005b51  sar rsi, 3                       ! 0x00005b10  lea rdi, [rip + 0x1c751]
 0x00005b55  mov rax, rsi                     ! 0x00005b17  lea rax, [rip + 0x1c74a]
 0x00005b58  shr rax, 0x3f                    ! 0x00005b1e  cmp rax, rdi
 0x00005b5c  add rsi, rax                     ! 0x00005b21  je 0x5b20
 0x00005b5f  sar rsi, 1                       ! 0x00005b23  mov rax, qword [rip + 0x1c196]
 0x00005b62  je 0x5b78                        ! 0x00005b2a  test rax, rax
 0x00005b64  mov rax, qword [rip + 0x1c43d]   ! 0x00005b2d  je 0x5b1c
 0x00005b6b  test rax, rax                    ! 0x00005b2f  jmp rax
 0x00005b6e  je 0x5b78                        ! 0x00005b31  nop dword [rax]
 0x00005b70  jmp rax                          ! 0x00005b38  ret
 0x00005b72  nop word [rax + rax]             ! 0x00005b39  nop dword [rax]
 0x00005b78  ret                              ! 0x00005b40  lea rdi, [rip + 0x1c721]
 0x00005b79  nop dword [rax]                  ! 0x00005b47  lea rsi, [rip + 0x1c71a]
 0x00005b80  endbr64                          ! 0x00005b4e  sub rsi, rdi
 0x00005b84  cmp byte [rip + 0x1c73d], 0      ! 0x00005b51  sar rsi, 3
 0x00005b8b  jne 0x5bc0                       ! 0x00005b55  mov rax, rsi
 0x00005b8d  push rbp                         ! 0x00005b58  shr rax, 0x3f
 0x00005b8e  cmp qword [rip + 0x1c432], 0     ! 0x00005b5c  add rsi, rax
 0x00005b96  mov rbp, rsp                     ! 0x00005b5f  sar rsi, 1
 0x00005b99  je 0x5ba8                        ! 0x00005b62  je 0x5b5c
 0x00005b9b  mov rdi, qword [rip + 0x1c466]   ! 0x00005b64  mov rax, qword [rip + 0x1c43d]
 0x00005ba2  call qword [rip + 0x1c420]       ! 0x00005b6b  test rax, rax
 0x00005ba8  call 0x5b10                      ! 0x00005b6e  je 0x5b5f
 0x00005bad  mov byte [rip + 0x1c714], 1      ! 0x00005b70  jmp rax
 0x00005bb4  pop rbp                          ! 0x00005b72  nop word [rax + rax]
 0x00005bb5  ret                              = 0x00005b78  ret
 0x00005bb6  nop word cs:[rax + rax]          ! 0x00005b79  nop dword [rax]
 0x00005bc0  ret                              ! 0x00005b80  endbr64
 0x00005bc1  nop word cs:[rax + rax]          ! 0x00005b84  cmp byte [rip + 0x1c73d], 0
 0x00005bcc  nop dword [rax]                  ! 0x00005b8b  jne 0x5bae
EOF
RUN

NAME=cmd_ccd
FILE=bins/elf/ls
CMDS=<<EOF
cf bins/elf/echo
EOF
EXPECT=<<EOF
0x00005ae0 (byte=01)   f3 ' '  ->  7f ' '
0x00005ae1 (byte=02)   0f ' '  ->  45 'E'
0x00005ae2 (byte=03)   1e ' '  ->  4c 'L'
0x00005ae3 (byte=04)   fa ' '  ->  46 'F'
0x00005ae4 (byte=05)   31 '1'  ->  02 ' '
0x00005ae5 (byte=06)   ed ' '  ->  01 ' '
0x00005ae6 (byte=07)   49 'I'  ->  01 ' '
0x00005ae7 (byte=08)   89 ' '  ->  00 ' '
0x00005ae8 (byte=09)   d1 ' '  ->  00 ' '
0x00005ae9 (byte=10)   5e '^'  ->  00 ' '
0x00005aea (byte=11)   48 'H'  ->  00 ' '
0x00005aeb (byte=12)   89 ' '  ->  00 ' '
0x00005aec (byte=13)   e2 ' '  ->  00 ' '
0x00005aed (byte=14)   48 'H'  ->  00 ' '
0x00005aee (byte=15)   83 ' '  ->  00 ' '
0x00005aef (byte=16)   e4 ' '  ->  00 ' '
0x00005af0 (byte=17)   f0 ' '  ->  03 ' '
0x00005af1 (byte=18)   50 'P'  ->  00 ' '
0x00005af2 (byte=19)   54 'T'  ->  3e '>'
0x00005af3 (byte=20)   4c 'L'  ->  00 ' '
0x00005af4 (byte=21)   8d ' '  ->  01 ' '
0x00005af5 (byte=22)   05 ' '  ->  00 ' '
0x00005af6 (byte=23)   66 'f'  ->  00 ' '
0x00005af7 (byte=24)   0c ' '  ->  00 ' '
0x00005af8 (byte=25)   01 ' '  ->  40 '@'
0x00005af9 (byte=26)   00 ' '  ->  08 ' '
0x00005afa (byte=27)   48 'H'  ->  00 ' '
0x00005afb (byte=28)   8d ' '  ->  00 ' '
0x00005afc (byte=29)   0d ' '  ->  00 ' '
0x00005afd (byte=30)   ef ' '  ->  00 ' '
0x00005afe (byte=31)   0b ' '  ->  00 ' '
0x00005aff (byte=32)   01 ' '  ->  00 ' '
0x00005b00 (byte=33)   00 ' '  ->  40 '@'
0x00005b01 (byte=34)   48 'H'  ->  00 ' '
0x00005b02 (byte=35)   8d ' '  ->  00 ' '
0x00005b03 (byte=36)   3d '='  ->  00 ' '
0x00005b04 (byte=37)   68 'h'  ->  00 ' '
0x00005b05 (byte=38)   e5 ' '  ->  00 ' '
0x00005b06 (byte=39)   ff ' '  ->  00 ' '
0x00005b07 (byte=40)   ff ' '  ->  00 ' '
0x00005b08 (byte=41)   ff ' '  ->  98 ' '
0x00005b09 (byte=42)   15 ' '  ->  21 '!'
0x00005b0a (byte=43)   0a ' '  ->  00 ' '
0x00005b0b (byte=44)   c3 ' '  ->  00 ' '
0x00005b0c (byte=45)   01 ' '  ->  00 ' '
0x00005b0e (byte=47)   f4 ' '  ->  00 ' '
0x00005b0f (byte=48)   90 ' '  ->  00 ' '
0x00005b10 (byte=49)   48 'H'  ->  00 ' '
0x00005b11 (byte=50)   8d ' '  ->  00 ' '
0x00005b12 (byte=51)   3d '='  ->  00 ' '
0x00005b13 (byte=52)   51 'Q'  ->  00 ' '
0x00005b14 (byte=53)   c7 ' '  ->  40 '@'
0x00005b15 (byte=54)   01 ' '  ->  00 ' '
0x00005b16 (byte=55)   00 ' '  ->  38 '8'
0x00005b17 (byte=56)   48 'H'  ->  00 ' '
0x00005b18 (byte=57)   8d ' '  ->  09 ' '
0x00005b19 (byte=58)   05 ' '  ->  00 ' '
0x00005b1a (byte=59)   4a 'J'  ->  40 '@'
0x00005b1b (byte=60)   c7 ' '  ->  00 ' '
0x00005b1c (byte=61)   01 ' '  ->  1d ' '
0x00005b1e (byte=63)   48 'H'  ->  1c ' '
0x00005b1f (byte=64)   39 '9'  ->  00 ' '
0x00005b20 (byte=65)   f8 ' '  ->  06 ' '
0x00005b21 (byte=66)   74 't'  ->  00 ' '
0x00005b22 (byte=67)   15 ' '  ->  00 ' '
0x00005b23 (byte=68)   48 'H'  ->  00 ' '
0x00005b24 (byte=69)   8b ' '  ->  05 ' '
0x00005b25 (byte=70)   05 ' '  ->  00 ' '
0x00005b26 (byte=71)   96 ' '  ->  00 ' '
0x00005b27 (byte=72)   c1 ' '  ->  00 ' '
0x00005b28 (byte=73)   01 ' '  ->  40 '@'
0x00005b2a (byte=75)   48 'H'  ->  00 ' '
0x00005b2b (byte=76)   85 ' '  ->  00 ' '
0x00005b2c (byte=77)   c0 ' '  ->  00 ' '
0x00005b2d (byte=78)   74 't'  ->  00 ' '
0x00005b2e (byte=79)   09 ' '  ->  00 ' '
0x00005b2f (byte=80)   ff ' '  ->  00 ' '
0x00005b30 (byte=81)   e0 ' '  ->  40 '@'
0x00005b31 (byte=82)   0f ' '  ->  00 ' '
0x00005b32 (byte=83)   1f ' '  ->  00 ' '
0x00005b33 (byte=84)   80 ' '  ->  00 ' '
0x00005b38 (byte=89)   c3 ' '  ->  40 '@'
0x00005b39 (byte=90)   0f ' '  ->  00 ' '
0x00005b3a (byte=91)   1f ' '  ->  00 ' '
0x00005b3b (byte=92)   80 ' '  ->  00 ' '
0x00005b40 (byte=97)   48 'H'  ->  f8 ' '
0x00005b41 (byte=98)   8d ' '  ->  01 ' '
0x00005b42 (byte=99)   3d '='  ->  00 ' '
0x00005b43 (byte=100)   21 '!'  ->  00 ' '
0x00005b44 (byte=101)   c7 ' '  ->  00 ' '
0x00005b45 (byte=102)   01 ' '  ->  00 ' '
0x00005b47 (byte=104)   48 'H'  ->  00 ' '
0x00005b48 (byte=105)   8d ' '  ->  f8 ' '
0x00005b49 (byte=106)   35 '5'  ->  01 ' '
0x00005b4a (byte=107)   1a ' '  ->  00 ' '
0x00005b4b (byte=108)   c7 ' '  ->  00 ' '
0x00005b4c (byte=109)   01 ' '  ->  00 ' '
0x00005b4e (byte=111)   48 'H'  ->  00 ' '
0x00005b4f (byte=112)   29 ')'  ->  00 ' '
0x00005b50 (byte=113)   fe ' '  ->  08 ' '
0x00005b51 (byte=114)   48 'H'  ->  00 ' '
0x00005b52 (byte=115)   c1 ' '  ->  00 ' '
0x00005b53 (byte=116)   fe ' '  ->  00 ' '
0x00005b54 (byte=117)   03 ' '  ->  00 ' '
0x00005b55 (byte=118)   48 'H'  ->  00 ' '
0x00005b56 (byte=119)   89 ' '  ->  00 ' '
0x00005b57 (byte=120)   f0 ' '  ->  00 ' '
0x00005b58 (byte=121)   48 'H'  ->  03 ' '
0x00005b59 (byte=122)   c1 ' '  ->  00 ' '
0x00005b5a (byte=123)   e8 ' '  ->  00 ' '
0x00005b5b (byte=124)   3f '?'  ->  00 ' '
0x00005b5c (byte=125)   48 'H'  ->  04 ' '
0x00005b5d (byte=126)   01 ' '  ->  00 ' '
0x00005b5e (byte=127)   c6 ' '  ->  00 ' '
0x00005b5f (byte=128)   48 'H'  ->  00 ' '
0x00005b60 (byte=129)   d1 ' '  ->  38 '8'
0x00005b61 (byte=130)   fe ' '  ->  02 ' '
0x00005b62 (byte=131)   74 't'  ->  00 ' '
0x00005b63 (byte=132)   14 ' '  ->  00 ' '
0x00005b64 (byte=133)   48 'H'  ->  00 ' '
0x00005b65 (byte=134)   8b ' '  ->  00 ' '
0x00005b66 (byte=135)   05 ' '  ->  00 ' '
0x00005b67 (byte=136)   3d '='  ->  00 ' '
0x00005b68 (byte=137)   c4 ' '  ->  38 '8'
0x00005b69 (byte=138)   01 ' '  ->  02 ' '
0x00005b6b (byte=140)   48 'H'  ->  00 ' '
0x00005b6c (byte=141)   85 ' '  ->  00 ' '
0x00005b6d (byte=142)   c0 ' '  ->  00 ' '
0x00005b6e (byte=143)   74 't'  ->  00 ' '
0x00005b6f (byte=144)   08 ' '  ->  00 ' '
0x00005b70 (byte=145)   ff ' '  ->  38 '8'
0x00005b71 (byte=146)   e0 ' '  ->  02 ' '
0x00005b72 (byte=147)   66 'f'  ->  00 ' '
0x00005b73 (byte=148)   0f ' '  ->  00 ' '
0x00005b74 (byte=149)   1f ' '  ->  00 ' '
0x00005b75 (byte=150)   44 'D'  ->  00 ' '
0x00005b78 (byte=153)   c3 ' '  ->  1c ' '
0x00005b79 (byte=154)   0f ' '  ->  00 ' '
0x00005b7a (byte=155)   1f ' '  ->  00 ' '
0x00005b7b (byte=156)   80 ' '  ->  00 ' '
0x00005b80 (byte=161)   f3 ' '  ->  1c ' '
0x00005b81 (byte=162)   0f ' '  ->  00 ' '
0x00005b82 (byte=163)   1e ' '  ->  00 ' '
0x00005b83 (byte=164)   fa ' '  ->  00 ' '
0x00005b84 (byte=165)   80 ' '  ->  00 ' '
0x00005b85 (byte=166)   3d '='  ->  00 ' '
0x00005b86 (byte=167)   3d '='  ->  00 ' '
0x00005b87 (byte=168)   c7 ' '  ->  00 ' '
0x00005b8b (byte=172)   75 'u'  ->  00 ' '
0x00005b8c (byte=173)   33 '3'  ->  00 ' '
0x00005b8d (byte=174)   55 'U'  ->  00 ' '
0x00005b8e (byte=175)   48 'H'  ->  00 ' '
0x00005b8f (byte=176)   83 ' '  ->  00 ' '
0x00005b90 (byte=177)   3d '='  ->  01 ' '
0x00005b91 (byte=178)   32 '2'  ->  00 ' '
0x00005b92 (byte=179)   c4 ' '  ->  00 ' '
0x00005b93 (byte=180)   01 ' '  ->  00 ' '
0x00005b94 (byte=181)   00 ' '  ->  05 ' '
0x00005b96 (byte=183)   48 'H'  ->  00 ' '
0x00005b97 (byte=184)   89 ' '  ->  00 ' '
0x00005b98 (byte=185)   e5 ' '  ->  00 ' '
0x00005b99 (byte=186)   74 't'  ->  00 ' '
0x00005b9a (byte=187)   0d ' '  ->  00 ' '
0x00005b9b (byte=188)   48 'H'  ->  00 ' '
0x00005b9c (byte=189)   8b ' '  ->  00 ' '
0x00005b9d (byte=190)   3d '='  ->  00 ' '
0x00005b9e (byte=191)   66 'f'  ->  00 ' '
0x00005b9f (byte=192)   c4 ' '  ->  00 ' '
0x00005ba0 (byte=193)   01 ' '  ->  00 ' '
0x00005ba2 (byte=195)   ff ' '  ->  00 ' '
0x00005ba3 (byte=196)   15 ' '  ->  00 ' '
0x00005ba4 (byte=197)   20 ' '  ->  00 ' '
0x00005ba5 (byte=198)   c4 ' '  ->  00 ' '
0x00005ba6 (byte=199)   01 ' '  ->  00 ' '
0x00005ba8 (byte=201)   e8 ' '  ->  00 ' '
0x00005ba9 (byte=202)   63 'c'  ->  00 ' '
0x00005baa (byte=203)   ff ' '  ->  00 ' '
0x00005bab (byte=204)   ff ' '  ->  00 ' '
0x00005bac (byte=205)   ff ' '  ->  00 ' '
0x00005bad (byte=206)   c6 ' '  ->  00 ' '
0x00005bae (byte=207)   05 ' '  ->  00 ' '
0x00005baf (byte=208)   14 ' '  ->  00 ' '
0x00005bb0 (byte=209)   c7 ' '  ->  64 'd'
0x00005bb1 (byte=210)   01 ' '  ->  14 ' '
0x00005bb3 (byte=212)   01 ' '  ->  00 ' '
0x00005bb4 (byte=213)   5d ']'  ->  00 ' '
0x00005bb5 (byte=214)   c3 ' '  ->  00 ' '
0x00005bb6 (byte=215)   66 'f'  ->  00 ' '
0x00005bb7 (byte=216)   2e '.'  ->  00 ' '
0x00005bb8 (byte=217)   0f ' '  ->  64 'd'
0x00005bb9 (byte=218)   1f ' '  ->  14 ' '
0x00005bba (byte=219)   84 ' '  ->  00 ' '
0x00005bc0 (byte=225)   c3 ' '  ->  00 ' '
0x00005bc1 (byte=226)   66 'f'  ->  00 ' '
0x00005bc2 (byte=227)   66 'f'  ->  20 ' '
0x00005bc3 (byte=228)   2e '.'  ->  00 ' '
0x00005bc4 (byte=229)   0f ' '  ->  00 ' '
0x00005bc5 (byte=230)   1f ' '  ->  00 ' '
0x00005bc6 (byte=231)   84 ' '  ->  00 ' '
0x00005bc8 (byte=233)   00 ' '  ->  01 ' '
0x00005bcc (byte=237)   0f ' '  ->  06 ' '
0x00005bcd (byte=238)   1f ' '  ->  00 ' '
0x00005bce (byte=239)   40 '@'  ->  00 ' '
0x00005bd0 (byte=241)   f3 ' '  ->  d8 ' '
0x00005bd1 (byte=242)   0f ' '  ->  1d ' '
0x00005bd2 (byte=243)   1e ' '  ->  00 ' '
0x00005bd3 (byte=244)   fa ' '  ->  00 ' '
0x00005bd4 (byte=245)   e9 ' '  ->  00 ' '
0x00005bd5 (byte=246)   67 'g'  ->  00 ' '
0x00005bd6 (byte=247)   ff ' '  ->  00 ' '
0x00005bd7 (byte=248)   ff ' '  ->  00 ' '
0x00005bd8 (byte=249)   ff ' '  ->  d8 ' '
0x00005bd9 (byte=250)   0f ' '  ->  1d ' '
0x00005bda (byte=251)   1f ' '  ->  20 ' '
0x00005bdb (byte=252)   80 ' '  ->  00 ' '
Compare 41/256 equal bytes (16%)
EOF
RUN

NAME=cmd_cu
FILE=bins/elf/ls
CMDS=<<EOF
cu 0x5af0
echo --------
cu 0x5ae0
EOF
EXPECT=<<EOF
- 0x00005ae0 f30f1efa31ed4989d15e4889e24883e4 ....1.I..^H..H.. !
+ 0x00005af0 f050544c8d05660c0100488d0def0b01 .PTL..f...H..... !
- 0x00005af0 f050544c8d05660c0100488d0def0b01 .PTL..f...H..... !
+ 0x00005b00 00488d3d68e5ffffff150ac30100f490 .H.=h........... !
- 0x00005b00 00488d3d68e5ffffff150ac30100f490 .H.=h........... !
+ 0x00005b10 488d3d51c70100488d054ac701004839 H.=Q...H..J...H9 !
- 0x00005b10 488d3d51c70100488d054ac701004839 H.=Q...H..J...H9 !
+ 0x00005b20 f87415488b0596c101004885c07409ff .t.H......H..t.. !
- 0x00005b20 f87415488b0596c101004885c07409ff .t.H......H..t.. !
+ 0x00005b30 e00f1f8000000000c30f1f8000000000 ................ !
- 0x00005b30 e00f1f8000000000c30f1f8000000000 ................ !
+ 0x00005b40 488d3d21c70100488d351ac701004829 H.=!...H.5....H) !
- 0x00005b40 488d3d21c70100488d351ac701004829 H.=!...H.5....H) !
+ 0x00005b50 fe48c1fe034889f048c1e83f4801c648 .H...H..H..?H..H !
- 0x00005b50 fe48c1fe034889f048c1e83f4801c648 .H...H..H..?H..H !
+ 0x00005b60 d1fe7414488b053dc401004885c07408 ..t.H..=...H..t. !
- 0x00005b60 d1fe7414488b053dc401004885c07408 ..t.H..=...H..t. !
+ 0x00005b70 ffe0660f1f440000c30f1f8000000000 ..f..D.......... !
- 0x00005b70 ffe0660f1f440000c30f1f8000000000 ..f..D.......... !
+ 0x00005b80 f30f1efa803d3dc70100007533554883 .....==....u3UH. !
- 0x00005b80 f30f1efa803d3dc70100007533554883 .....==....u3UH. !
+ 0x00005b90 3d32c40100004889e5740d488b3d66c4 =2....H..t.H.=f. !
- 0x00005b90 3d32c40100004889e5740d488b3d66c4 =2....H..t.H.=f. !
+ 0x00005ba0 0100ff1520c40100e863ffffffc60514 .... ....c...... !
- 0x00005ba0 0100ff1520c40100e863ffffffc60514 .... ....c...... !
+ 0x00005bb0 c70100015dc3662e0f1f840000000000 ....].f......... !
- 0x00005bb0 c70100015dc3662e0f1f840000000000 ....].f......... !
+ 0x00005bc0 c366662e0f1f8400000000000f1f4000 .ff...........@. !
- 0x00005bc0 c366662e0f1f8400000000000f1f4000 .ff...........@. !
+ 0x00005bd0 f30f1efae967ffffff0f1f8000000000 .....g.......... !
- 0x00005bd0 f30f1efae967ffffff0f1f8000000000 .....g.......... !
+ 0x00005be0 488b0731d248f7f64889d0c30f1f4000 H..1.H..H.....@. !
--------
  0x00005ae0 f30f1efa31ed4989d15e4889e24883e4 ....1.I..^H..H.. |
  0x00005af0 f050544c8d05660c0100488d0def0b01 .PTL..f...H..... |
  0x00005b00 00488d3d68e5ffffff150ac30100f490 .H.=h........... |
  0x00005b10 488d3d51c70100488d054ac701004839 H.=Q...H..J...H9 |
  0x00005b20 f87415488b0596c101004885c07409ff .t.H......H..t.. |
  0x00005b30 e00f1f8000000000c30f1f8000000000 ................ |
  0x00005b40 488d3d21c70100488d351ac701004829 H.=!...H.5....H) |
  0x00005b50 fe48c1fe034889f048c1e83f4801c648 .H...H..H..?H..H |
  0x00005b60 d1fe7414488b053dc401004885c07408 ..t.H..=...H..t. |
  0x00005b70 ffe0660f1f440000c30f1f8000000000 ..f..D.......... |
  0x00005b80 f30f1efa803d3dc70100007533554883 .....==....u3UH. |
  0x00005b90 3d32c40100004889e5740d488b3d66c4 =2....H..t.H.=f. |
  0x00005ba0 0100ff1520c40100e863ffffffc60514 .... ....c...... |
  0x00005bb0 c70100015dc3662e0f1f840000000000 ....].f......... |
  0x00005bc0 c366662e0f1f8400000000000f1f4000 .ff...........@. |
  0x00005bd0 f30f1efae967ffffff0f1f8000000000 .....g.......... |
EOF
RUN

NAME=cmd_cu_num
FILE=bins/elf/ls
CMDS=<<EOF
cu1 0x5ad0
echo --------
cu2 0x5ad0
echo --------
cu4 0x5ad0
echo --------
cu8 0x5ad0
echo -------- be
cu4 0x5ad0 @e:cfg.bigendian=1
EOF
EXPECT=<<EOF
0x00005ae0  0xf3 ! 0x15
0x00005ae1  0x0f ! 0x03
0x00005ae2  0x1e ! 0xc3
0x00005ae3  0xfa ! 0x01
0x00005ae4  0x31 ! 0x00
0x00005ae5  0xed ! 0x66
0x00005ae6  0x49 ! 0x2e
0x00005ae7  0x89 ! 0x0f
0x00005ae8  0xd1 ! 0x1f
0x00005ae9  0x5e ! 0x84
0x00005aea  0x48 ! 0x00
0x00005aeb  0x89 ! 0x00
0x00005aec  0xe2 ! 0x00
0x00005aed  0x48 ! 0x00
0x00005aee  0x83 ! 0x00
0x00005aef  0xe4 ! 0x90
0x00005af0  0xf0 ! 0xf3
0x00005af1  0x50 ! 0x0f
0x00005af2  0x54 ! 0x1e
0x00005af3  0x4c ! 0xfa
0x00005af4  0x8d ! 0x31
0x00005af5  0x05 ! 0xed
0x00005af6  0x66 ! 0x49
0x00005af7  0x0c ! 0x89
0x00005af8  0x01 ! 0xd1
0x00005af9  0x00 ! 0x5e
0x00005afa  0x48 = 0x48
0x00005afb  0x8d ! 0x89
0x00005afc  0x0d ! 0xe2
0x00005afd  0xef ! 0x48
0x00005afe  0x0b ! 0x83
0x00005aff  0x01 ! 0xe4
0x00005b00  0x00 ! 0xf0
0x00005b01  0x48 ! 0x50
0x00005b02  0x8d ! 0x54
0x00005b03  0x3d ! 0x4c
0x00005b04  0x68 ! 0x8d
0x00005b05  0xe5 ! 0x05
0x00005b06  0xff ! 0x66
0x00005b07  0xff ! 0x0c
0x00005b08  0xff ! 0x01
0x00005b09  0x15 ! 0x00
0x00005b0a  0x0a ! 0x48
0x00005b0b  0xc3 ! 0x8d
0x00005b0c  0x01 ! 0x0d
0x00005b0d  0x00 ! 0xef
0x00005b0e  0xf4 ! 0x0b
0x00005b0f  0x90 ! 0x01
0x00005b10  0x48 ! 0x00
0x00005b11  0x8d ! 0x48
0x00005b12  0x3d ! 0x8d
0x00005b13  0x51 ! 0x3d
0x00005b14  0xc7 ! 0x68
0x00005b15  0x01 ! 0xe5
0x00005b16  0x00 ! 0xff
0x00005b17  0x48 ! 0xff
0x00005b18  0x8d ! 0xff
0x00005b19  0x05 ! 0x15
0x00005b1a  0x4a ! 0x0a
0x00005b1b  0xc7 ! 0xc3
0x00005b1c  0x01 = 0x01
0x00005b1d  0x00 = 0x00
0x00005b1e  0x48 ! 0xf4
0x00005b1f  0x39 ! 0x90
0x00005b20  0xf8 ! 0x48
0x00005b21  0x74 ! 0x8d
0x00005b22  0x15 ! 0x3d
0x00005b23  0x48 ! 0x51
0x00005b24  0x8b ! 0xc7
0x00005b25  0x05 ! 0x01
0x00005b26  0x96 ! 0x00
0x00005b27  0xc1 ! 0x48
0x00005b28  0x01 ! 0x8d
0x00005b29  0x00 ! 0x05
0x00005b2a  0x48 ! 0x4a
0x00005b2b  0x85 ! 0xc7
0x00005b2c  0xc0 ! 0x01
0x00005b2d  0x74 ! 0x00
0x00005b2e  0x09 ! 0x48
0x00005b2f  0xff ! 0x39
0x00005b30  0xe0 ! 0xf8
0x00005b31  0x0f ! 0x74
0x00005b32  0x1f ! 0x15
0x00005b33  0x80 ! 0x48
0x00005b34  0x00 ! 0x8b
0x00005b35  0x00 ! 0x05
0x00005b36  0x00 ! 0x96
0x00005b37  0x00 ! 0xc1
0x00005b38  0xc3 ! 0x01
0x00005b39  0x0f ! 0x00
0x00005b3a  0x1f ! 0x48
0x00005b3b  0x80 ! 0x85
0x00005b3c  0x00 ! 0xc0
0x00005b3d  0x00 ! 0x74
0x00005b3e  0x00 ! 0x09
0x00005b3f  0x00 ! 0xff
0x00005b40  0x48 ! 0xe0
0x00005b41  0x8d ! 0x0f
0x00005b42  0x3d ! 0x1f
0x00005b43  0x21 ! 0x80
0x00005b44  0xc7 ! 0x00
0x00005b45  0x01 ! 0x00
0x00005b46  0x00 = 0x00
0x00005b47  0x48 ! 0x00
0x00005b48  0x8d ! 0xc3
0x00005b49  0x35 ! 0x0f
0x00005b4a  0x1a ! 0x1f
0x00005b4b  0xc7 ! 0x80
0x00005b4c  0x01 ! 0x00
0x00005b4d  0x00 = 0x00
0x00005b4e  0x48 ! 0x00
0x00005b4f  0x29 ! 0x00
0x00005b50  0xfe ! 0x48
0x00005b51  0x48 ! 0x8d
0x00005b52  0xc1 ! 0x3d
0x00005b53  0xfe ! 0x21
0x00005b54  0x03 ! 0xc7
0x00005b55  0x48 ! 0x01
0x00005b56  0x89 ! 0x00
0x00005b57  0xf0 ! 0x48
0x00005b58  0x48 ! 0x8d
0x00005b59  0xc1 ! 0x35
0x00005b5a  0xe8 ! 0x1a
0x00005b5b  0x3f ! 0xc7
0x00005b5c  0x48 ! 0x01
0x00005b5d  0x01 ! 0x00
0x00005b5e  0xc6 ! 0x48
0x00005b5f  0x48 ! 0x29
0x00005b60  0xd1 ! 0xfe
0x00005b61  0xfe ! 0x48
0x00005b62  0x74 ! 0xc1
0x00005b63  0x14 ! 0xfe
0x00005b64  0x48 ! 0x03
0x00005b65  0x8b ! 0x48
0x00005b66  0x05 ! 0x89
0x00005b67  0x3d ! 0xf0
0x00005b68  0xc4 ! 0x48
0x00005b69  0x01 ! 0xc1
0x00005b6a  0x00 ! 0xe8
0x00005b6b  0x48 ! 0x3f
0x00005b6c  0x85 ! 0x48
0x00005b6d  0xc0 ! 0x01
0x00005b6e  0x74 ! 0xc6
0x00005b6f  0x08 ! 0x48
0x00005b70  0xff ! 0xd1
0x00005b71  0xe0 ! 0xfe
0x00005b72  0x66 ! 0x74
0x00005b73  0x0f ! 0x14
0x00005b74  0x1f ! 0x48
0x00005b75  0x44 ! 0x8b
0x00005b76  0x00 ! 0x05
0x00005b77  0x00 ! 0x3d
0x00005b78  0xc3 ! 0xc4
0x00005b79  0x0f ! 0x01
0x00005b7a  0x1f ! 0x00
0x00005b7b  0x80 ! 0x48
0x00005b7c  0x00 ! 0x85
0x00005b7d  0x00 ! 0xc0
0x00005b7e  0x00 ! 0x74
0x00005b7f  0x00 ! 0x08
0x00005b80  0xf3 ! 0xff
0x00005b81  0x0f ! 0xe0
0x00005b82  0x1e ! 0x66
0x00005b83  0xfa ! 0x0f
0x00005b84  0x80 ! 0x1f
0x00005b85  0x3d ! 0x44
0x00005b86  0x3d ! 0x00
0x00005b87  0xc7 ! 0x00
0x00005b88  0x01 ! 0xc3
0x00005b89  0x00 ! 0x0f
0x00005b8a  0x00 ! 0x1f
0x00005b8b  0x75 ! 0x80
0x00005b8c  0x33 ! 0x00
0x00005b8d  0x55 ! 0x00
0x00005b8e  0x48 ! 0x00
0x00005b8f  0x83 ! 0x00
0x00005b90  0x3d ! 0xf3
0x00005b91  0x32 ! 0x0f
0x00005b92  0xc4 ! 0x1e
0x00005b93  0x01 ! 0xfa
0x00005b94  0x00 ! 0x80
0x00005b95  0x00 ! 0x3d
0x00005b96  0x48 ! 0x3d
0x00005b97  0x89 ! 0xc7
0x00005b98  0xe5 ! 0x01
0x00005b99  0x74 ! 0x00
0x00005b9a  0x0d ! 0x00
0x00005b9b  0x48 ! 0x75
0x00005b9c  0x8b ! 0x33
0x00005b9d  0x3d ! 0x55
0x00005b9e  0x66 ! 0x48
0x00005b9f  0xc4 ! 0x83
0x00005ba0  0x01 ! 0x3d
0x00005ba1  0x00 ! 0x32
0x00005ba2  0xff ! 0xc4
0x00005ba3  0x15 ! 0x01
0x00005ba4  0x20 ! 0x00
0x00005ba5  0xc4 ! 0x00
0x00005ba6  0x01 ! 0x48
0x00005ba7  0x00 ! 0x89
0x00005ba8  0xe8 ! 0xe5
0x00005ba9  0x63 ! 0x74
0x00005baa  0xff ! 0x0d
0x00005bab  0xff ! 0x48
0x00005bac  0xff ! 0x8b
0x00005bad  0xc6 ! 0x3d
0x00005bae  0x05 ! 0x66
0x00005baf  0x14 ! 0xc4
0x00005bb0  0xc7 ! 0x01
0x00005bb1  0x01 ! 0x00
0x00005bb2  0x00 ! 0xff
0x00005bb3  0x01 ! 0x15
0x00005bb4  0x5d ! 0x20
0x00005bb5  0xc3 ! 0xc4
0x00005bb6  0x66 ! 0x01
0x00005bb7  0x2e ! 0x00
0x00005bb8  0x0f ! 0xe8
0x00005bb9  0x1f ! 0x63
0x00005bba  0x84 ! 0xff
0x00005bbb  0x00 ! 0xff
0x00005bbc  0x00 ! 0xff
0x00005bbd  0x00 ! 0xc6
0x00005bbe  0x00 ! 0x05
0x00005bbf  0x00 ! 0x14
0x00005bc0  0xc3 ! 0xc7
0x00005bc1  0x66 ! 0x01
0x00005bc2  0x66 ! 0x00
0x00005bc3  0x2e ! 0x01
0x00005bc4  0x0f ! 0x5d
0x00005bc5  0x1f ! 0xc3
0x00005bc6  0x84 ! 0x66
0x00005bc7  0x00 ! 0x2e
0x00005bc8  0x00 ! 0x0f
0x00005bc9  0x00 ! 0x1f
0x00005bca  0x00 ! 0x84
0x00005bcb  0x00 = 0x00
0x00005bcc  0x0f ! 0x00
0x00005bcd  0x1f ! 0x00
0x00005bce  0x40 ! 0x00
0x00005bcf  0x00 = 0x00
0x00005bd0  0xf3 ! 0xc3
0x00005bd1  0x0f ! 0x66
0x00005bd2  0x1e ! 0x66
0x00005bd3  0xfa ! 0x2e
0x00005bd4  0xe9 ! 0x0f
0x00005bd5  0x67 ! 0x1f
0x00005bd6  0xff ! 0x84
0x00005bd7  0xff ! 0x00
0x00005bd8  0xff ! 0x00
0x00005bd9  0x0f ! 0x00
0x00005bda  0x1f ! 0x00
0x00005bdb  0x80 ! 0x00
0x00005bdc  0x00 ! 0x0f
0x00005bdd  0x00 ! 0x1f
0x00005bde  0x00 ! 0x40
0x00005bdf  0x00 = 0x00
--------
0x00005ae0  0x0ff3 ! 0x0315
0x00005ae2  0xfa1e ! 0x01c3
0x00005ae4  0xed31 ! 0x6600
0x00005ae6  0x8949 ! 0x0f2e
0x00005ae8  0x5ed1 ! 0x841f
0x00005aea  0x8948 ! 0x0000
0x00005aec  0x48e2 ! 0x0000
0x00005aee  0xe483 ! 0x9000
0x00005af0  0x50f0 ! 0x0ff3
0x00005af2  0x4c54 ! 0xfa1e
0x00005af4  0x058d ! 0xed31
0x00005af6  0x0c66 ! 0x8949
0x00005af8  0x0001 ! 0x5ed1
0x00005afa  0x8d48 ! 0x8948
0x00005afc  0xef0d ! 0x48e2
0x00005afe  0x010b ! 0xe483
0x00005b00  0x4800 ! 0x50f0
0x00005b02  0x3d8d ! 0x4c54
0x00005b04  0xe568 ! 0x058d
0x00005b06  0xffff ! 0x0c66
0x00005b08  0x15ff ! 0x0001
0x00005b0a  0xc30a ! 0x8d48
0x00005b0c  0x0001 ! 0xef0d
0x00005b0e  0x90f4 ! 0x010b
0x00005b10  0x8d48 ! 0x4800
0x00005b12  0x513d ! 0x3d8d
0x00005b14  0x01c7 ! 0xe568
0x00005b16  0x4800 ! 0xffff
0x00005b18  0x058d ! 0x15ff
0x00005b1a  0xc74a ! 0xc30a
0x00005b1c  0x0001 = 0x0001
0x00005b1e  0x3948 ! 0x90f4
0x00005b20  0x74f8 ! 0x8d48
0x00005b22  0x4815 ! 0x513d
0x00005b24  0x058b ! 0x01c7
0x00005b26  0xc196 ! 0x4800
0x00005b28  0x0001 ! 0x058d
0x00005b2a  0x8548 ! 0xc74a
0x00005b2c  0x74c0 ! 0x0001
0x00005b2e  0xff09 ! 0x3948
0x00005b30  0x0fe0 ! 0x74f8
0x00005b32  0x801f ! 0x4815
0x00005b34  0x0000 ! 0x058b
0x00005b36  0x0000 ! 0xc196
0x00005b38  0x0fc3 ! 0x0001
0x00005b3a  0x801f ! 0x8548
0x00005b3c  0x0000 ! 0x74c0
0x00005b3e  0x0000 ! 0xff09
0x00005b40  0x8d48 ! 0x0fe0
0x00005b42  0x213d ! 0x801f
0x00005b44  0x01c7 ! 0x0000
0x00005b46  0x4800 ! 0x0000
0x00005b48  0x358d ! 0x0fc3
0x00005b4a  0xc71a ! 0x801f
0x00005b4c  0x0001 ! 0x0000
0x00005b4e  0x2948 ! 0x0000
0x00005b50  0x48fe ! 0x8d48
0x00005b52  0xfec1 ! 0x213d
0x00005b54  0x4803 ! 0x01c7
0x00005b56  0xf089 ! 0x4800
0x00005b58  0xc148 ! 0x358d
0x00005b5a  0x3fe8 ! 0xc71a
0x00005b5c  0x0148 ! 0x0001
0x00005b5e  0x48c6 ! 0x2948
0x00005b60  0xfed1 ! 0x48fe
0x00005b62  0x1474 ! 0xfec1
0x00005b64  0x8b48 ! 0x4803
0x00005b66  0x3d05 ! 0xf089
0x00005b68  0x01c4 ! 0xc148
0x00005b6a  0x4800 ! 0x3fe8
0x00005b6c  0xc085 ! 0x0148
0x00005b6e  0x0874 ! 0x48c6
0x00005b70  0xe0ff ! 0xfed1
0x00005b72  0x0f66 ! 0x1474
0x00005b74  0x441f ! 0x8b48
0x00005b76  0x0000 ! 0x3d05
0x00005b78  0x0fc3 ! 0x01c4
0x00005b7a  0x801f ! 0x4800
0x00005b7c  0x0000 ! 0xc085
0x00005b7e  0x0000 ! 0x0874
0x00005b80  0x0ff3 ! 0xe0ff
0x00005b82  0xfa1e ! 0x0f66
0x00005b84  0x3d80 ! 0x441f
0x00005b86  0xc73d ! 0x0000
0x00005b88  0x0001 ! 0x0fc3
0x00005b8a  0x7500 ! 0x801f
0x00005b8c  0x5533 ! 0x0000
0x00005b8e  0x8348 ! 0x0000
0x00005b90  0x323d ! 0x0ff3
0x00005b92  0x01c4 ! 0xfa1e
0x00005b94  0x0000 ! 0x3d80
0x00005b96  0x8948 ! 0xc73d
0x00005b98  0x74e5 ! 0x0001
0x00005b9a  0x480d ! 0x7500
0x00005b9c  0x3d8b ! 0x5533
0x00005b9e  0xc466 ! 0x8348
0x00005ba0  0x0001 ! 0x323d
0x00005ba2  0x15ff ! 0x01c4
0x00005ba4  0xc420 ! 0x0000
0x00005ba6  0x0001 ! 0x8948
0x00005ba8  0x63e8 ! 0x74e5
0x00005baa  0xffff ! 0x480d
0x00005bac  0xc6ff ! 0x3d8b
0x00005bae  0x1405 ! 0xc466
0x00005bb0  0x01c7 ! 0x0001
0x00005bb2  0x0100 ! 0x15ff
0x00005bb4  0xc35d ! 0xc420
0x00005bb6  0x2e66 ! 0x0001
0x00005bb8  0x1f0f ! 0x63e8
0x00005bba  0x0084 ! 0xffff
0x00005bbc  0x0000 ! 0xc6ff
0x00005bbe  0x0000 ! 0x1405
0x00005bc0  0x66c3 ! 0x01c7
0x00005bc2  0x2e66 ! 0x0100
0x00005bc4  0x1f0f ! 0xc35d
0x00005bc6  0x0084 ! 0x2e66
0x00005bc8  0x0000 ! 0x1f0f
0x00005bca  0x0000 ! 0x0084
0x00005bcc  0x1f0f ! 0x0000
0x00005bce  0x0040 ! 0x0000
0x00005bd0  0x0ff3 ! 0x66c3
0x00005bd2  0xfa1e ! 0x2e66
0x00005bd4  0x67e9 ! 0x1f0f
0x00005bd6  0xffff ! 0x0084
0x00005bd8  0x0fff ! 0x0000
0x00005bda  0x801f ! 0x0000
0x00005bdc  0x0000 ! 0x1f0f
0x00005bde  0x0000 ! 0x0040
--------
0x00005ae0  0xfa1e0ff3 ! 0x01c30315
0x00005ae4  0x8949ed31 ! 0x0f2e6600
0x00005ae8  0x89485ed1 ! 0x0000841f
0x00005aec  0xe48348e2 ! 0x90000000
0x00005af0  0x4c5450f0 ! 0xfa1e0ff3
0x00005af4  0x0c66058d ! 0x8949ed31
0x00005af8  0x8d480001 ! 0x89485ed1
0x00005afc  0x010bef0d ! 0xe48348e2
0x00005b00  0x3d8d4800 ! 0x4c5450f0
0x00005b04  0xffffe568 ! 0x0c66058d
0x00005b08  0xc30a15ff ! 0x8d480001
0x00005b0c  0x90f40001 ! 0x010bef0d
0x00005b10  0x513d8d48 ! 0x3d8d4800
0x00005b14  0x480001c7 ! 0xffffe568
0x00005b18  0xc74a058d ! 0xc30a15ff
0x00005b1c  0x39480001 ! 0x90f40001
0x00005b20  0x481574f8 ! 0x513d8d48
0x00005b24  0xc196058b ! 0x480001c7
0x00005b28  0x85480001 ! 0xc74a058d
0x00005b2c  0xff0974c0 ! 0x39480001
0x00005b30  0x801f0fe0 ! 0x481574f8
0x00005b34  0x00000000 ! 0xc196058b
0x00005b38  0x801f0fc3 ! 0x85480001
0x00005b3c  0x00000000 ! 0xff0974c0
0x00005b40  0x213d8d48 ! 0x801f0fe0
0x00005b44  0x480001c7 ! 0x00000000
0x00005b48  0xc71a358d ! 0x801f0fc3
0x00005b4c  0x29480001 ! 0x00000000
0x00005b50  0xfec148fe ! 0x213d8d48
0x00005b54  0xf0894803 ! 0x480001c7
0x00005b58  0x3fe8c148 ! 0xc71a358d
0x00005b5c  0x48c60148 ! 0x29480001
0x00005b60  0x1474fed1 ! 0xfec148fe
0x00005b64  0x3d058b48 ! 0xf0894803
0x00005b68  0x480001c4 ! 0x3fe8c148
0x00005b6c  0x0874c085 ! 0x48c60148
0x00005b70  0x0f66e0ff ! 0x1474fed1
0x00005b74  0x0000441f ! 0x3d058b48
0x00005b78  0x801f0fc3 ! 0x480001c4
0x00005b7c  0x00000000 ! 0x0874c085
0x00005b80  0xfa1e0ff3 ! 0x0f66e0ff
0x00005b84  0xc73d3d80 ! 0x0000441f
0x00005b88  0x75000001 ! 0x801f0fc3
0x00005b8c  0x83485533 ! 0x00000000
0x00005b90  0x01c4323d ! 0xfa1e0ff3
0x00005b94  0x89480000 ! 0xc73d3d80
0x00005b98  0x480d74e5 ! 0x75000001
0x00005b9c  0xc4663d8b ! 0x83485533
0x00005ba0  0x15ff0001 ! 0x01c4323d
0x00005ba4  0x0001c420 ! 0x89480000
0x00005ba8  0xffff63e8 ! 0x480d74e5
0x00005bac  0x1405c6ff ! 0xc4663d8b
0x00005bb0  0x010001c7 ! 0x15ff0001
0x00005bb4  0x2e66c35d ! 0x0001c420
0x00005bb8  0x00841f0f ! 0xffff63e8
0x00005bbc  0x00000000 ! 0x1405c6ff
0x00005bc0  0x2e6666c3 ! 0x010001c7
0x00005bc4  0x00841f0f ! 0x2e66c35d
0x00005bc8  0x00000000 ! 0x00841f0f
0x00005bcc  0x00401f0f ! 0x00000000
0x00005bd0  0xfa1e0ff3 ! 0x2e6666c3
0x00005bd4  0xffff67e9 ! 0x00841f0f
0x00005bd8  0x801f0fff ! 0x00000000
0x00005bdc  0x00000000 ! 0x00401f0f
--------
0x00005ae0  0x8949ed31fa1e0ff3 ! 0x0f2e660001c30315
0x00005ae8  0xe48348e289485ed1 ! 0x900000000000841f
0x00005af0  0x0c66058d4c5450f0 ! 0x8949ed31fa1e0ff3
0x00005af8  0x010bef0d8d480001 ! 0xe48348e289485ed1
0x00005b00  0xffffe5683d8d4800 ! 0x0c66058d4c5450f0
0x00005b08  0x90f40001c30a15ff ! 0x010bef0d8d480001
0x00005b10  0x480001c7513d8d48 ! 0xffffe5683d8d4800
0x00005b18  0x39480001c74a058d ! 0x90f40001c30a15ff
0x00005b20  0xc196058b481574f8 ! 0x480001c7513d8d48
0x00005b28  0xff0974c085480001 ! 0x39480001c74a058d
0x00005b30  0x00000000801f0fe0 ! 0xc196058b481574f8
0x00005b38  0x00000000801f0fc3 ! 0xff0974c085480001
0x00005b40  0x480001c7213d8d48 ! 0x00000000801f0fe0
0x00005b48  0x29480001c71a358d ! 0x00000000801f0fc3
0x00005b50  0xf0894803fec148fe ! 0x480001c7213d8d48
0x00005b58  0x48c601483fe8c148 ! 0x29480001c71a358d
0x00005b60  0x3d058b481474fed1 ! 0xf0894803fec148fe
0x00005b68  0x0874c085480001c4 ! 0x48c601483fe8c148
0x00005b70  0x0000441f0f66e0ff ! 0x3d058b481474fed1
0x00005b78  0x00000000801f0fc3 ! 0x0874c085480001c4
0x00005b80  0xc73d3d80fa1e0ff3 ! 0x0000441f0f66e0ff
0x00005b88  0x8348553375000001 ! 0x00000000801f0fc3
0x00005b90  0x8948000001c4323d ! 0xc73d3d80fa1e0ff3
0x00005b98  0xc4663d8b480d74e5 ! 0x8348553375000001
0x00005ba0  0x0001c42015ff0001 ! 0x8948000001c4323d
0x00005ba8  0x1405c6ffffff63e8 ! 0xc4663d8b480d74e5
0x00005bb0  0x2e66c35d010001c7 ! 0x0001c42015ff0001
0x00005bb8  0x0000000000841f0f ! 0x1405c6ffffff63e8
0x00005bc0  0x00841f0f2e6666c3 ! 0x2e66c35d010001c7
0x00005bc8  0x00401f0f00000000 ! 0x0000000000841f0f
0x00005bd0  0xffff67e9fa1e0ff3 ! 0x00841f0f2e6666c3
0x00005bd8  0x00000000801f0fff ! 0x00401f0f00000000
-------- be
0x00005ae0  0xf30f1efa ! 0x1503c301
0x00005ae4  0x31ed4989 ! 0x00662e0f
0x00005ae8  0xd15e4889 ! 0x1f840000
0x00005aec  0xe24883e4 ! 0x00000090
0x00005af0  0xf050544c ! 0xf30f1efa
0x00005af4  0x8d05660c ! 0x31ed4989
0x00005af8  0x0100488d ! 0xd15e4889
0x00005afc  0x0def0b01 ! 0xe24883e4
0x00005b00  0x00488d3d ! 0xf050544c
0x00005b04  0x68e5ffff ! 0x8d05660c
0x00005b08  0xff150ac3 ! 0x0100488d
0x00005b0c  0x0100f490 ! 0x0def0b01
0x00005b10  0x488d3d51 ! 0x00488d3d
0x00005b14  0xc7010048 ! 0x68e5ffff
0x00005b18  0x8d054ac7 ! 0xff150ac3
0x00005b1c  0x01004839 ! 0x0100f490
0x00005b20  0xf8741548 ! 0x488d3d51
0x00005b24  0x8b0596c1 ! 0xc7010048
0x00005b28  0x01004885 ! 0x8d054ac7
0x00005b2c  0xc07409ff ! 0x01004839
0x00005b30  0xe00f1f80 ! 0xf8741548
0x00005b34  0x00000000 ! 0x8b0596c1
0x00005b38  0xc30f1f80 ! 0x01004885
0x00005b3c  0x00000000 ! 0xc07409ff
0x00005b40  0x488d3d21 ! 0xe00f1f80
0x00005b44  0xc7010048 ! 0x00000000
0x00005b48  0x8d351ac7 ! 0xc30f1f80
0x00005b4c  0x01004829 ! 0x00000000
0x00005b50  0xfe48c1fe ! 0x488d3d21
0x00005b54  0x034889f0 ! 0xc7010048
0x00005b58  0x48c1e83f ! 0x8d351ac7
0x00005b5c  0x4801c648 ! 0x01004829
0x00005b60  0xd1fe7414 ! 0xfe48c1fe
0x00005b64  0x488b053d ! 0x034889f0
0x00005b68  0xc4010048 ! 0x48c1e83f
0x00005b6c  0x85c07408 ! 0x4801c648
0x00005b70  0xffe0660f ! 0xd1fe7414
0x00005b74  0x1f440000 ! 0x488b053d
0x00005b78  0xc30f1f80 ! 0xc4010048
0x00005b7c  0x00000000 ! 0x85c07408
0x00005b80  0xf30f1efa ! 0xffe0660f
0x00005b84  0x803d3dc7 ! 0x1f440000
0x00005b88  0x01000075 ! 0xc30f1f80
0x00005b8c  0x33554883 ! 0x00000000
0x00005b90  0x3d32c401 ! 0xf30f1efa
0x00005b94  0x00004889 ! 0x803d3dc7
0x00005b98  0xe5740d48 ! 0x01000075
0x00005b9c  0x8b3d66c4 ! 0x33554883
0x00005ba0  0x0100ff15 ! 0x3d32c401
0x00005ba4  0x20c40100 ! 0x00004889
0x00005ba8  0xe863ffff ! 0xe5740d48
0x00005bac  0xffc60514 ! 0x8b3d66c4
0x00005bb0  0xc7010001 ! 0x0100ff15
0x00005bb4  0x5dc3662e ! 0x20c40100
0x00005bb8  0x0f1f8400 ! 0xe863ffff
0x00005bbc  0x00000000 ! 0xffc60514
0x00005bc0  0xc366662e ! 0xc7010001
0x00005bc4  0x0f1f8400 ! 0x5dc3662e
0x00005bc8  0x00000000 ! 0x0f1f8400
0x00005bcc  0x0f1f4000 ! 0x00000000
0x00005bd0  0xf30f1efa ! 0xc366662e
0x00005bd4  0xe967ffff ! 0x0f1f8400
0x00005bd8  0xff0f1f80 ! 0x00000000
0x00005bdc  0x00000000 ! 0x0f1f4000
EOF
RUN

NAME=cmd_cud
FILE=bins/elf/ls
CMDS=<<EOF
cud 0x5a8d
EOF
EXPECT=<<EOF
-0x00005ae0  endbr64
+0x00005a8d  add dword [rax], eax
-0x00005ae4  xor ebp, ebp
+0x00005a8f  call qword [rip + 0x1c343]
-0x00005ae6  mov r9, rdx
+0x00005a95  lea rcx, [rip + 0x11cbe]
-0x00005ae9  pop rsi
+0x00005a9c  mov edx, 0x670
-0x00005aea  mov rdx, rsp
+0x00005aa1  lea rsi, [rip + 0x12dcf]
-0x00005aed  and rsp, 0xfffffffffffffff0
+0x00005aa8  lea rdi, [rip + 0x153b9]
-0x00005af1  push rax
+0x00005aaf  call qword [rip + 0x1c323]
-0x00005af2  push rsp
+0x00005ab5  lea rcx, [rip + 0x11bfc]
-0x00005af3  lea r8, [rip + 0x10c66]
+0x00005abc  mov edx, 0x403
-0x00005afa  lea rcx, [rip + 0x10bef]
+0x00005ac1  lea rsi, [rip + 0x12daf]
-0x00005b01  lea rdi, [rip - 0x1a98]
+0x00005ac8  lea rdi, [rip + 0x15339]
-0x00005b08  call qword [rip + 0x1c30a]
+0x00005acf  call qword [rip + 0x1c303]
-0x00005b0e  hlt
+0x00005ad5  nop word cs:[rax + rax]
 0x00005b0f  nop
-0x00005b10  lea rdi, [rip + 0x1c751]
+0x00005ae0  endbr64
-0x00005b17  lea rax, [rip + 0x1c74a]
+0x00005ae4  xor ebp, ebp
-0x00005b1e  cmp rax, rdi
+0x00005ae6  mov r9, rdx
-0x00005b21  je 0x5b38
+0x00005ae9  pop rsi
-0x00005b23  mov rax, qword [rip + 0x1c196]
+0x00005aea  mov rdx, rsp
-0x00005b2a  test rax, rax
+0x00005aed  and rsp, 0xfffffffffffffff0
-0x00005b2d  je 0x5b38
+0x00005af1  push rax
-0x00005b2f  jmp rax
+0x00005af2  push rsp
-0x00005b31  nop dword [rax]
+0x00005af3  lea r8, [rip + 0x10c66]
-0x00005b38  ret
+0x00005afa  lea rcx, [rip + 0x10bef]
-0x00005b39  nop dword [rax]
+0x00005b01  lea rdi, [rip - 0x1a98]
-0x00005b40  lea rdi, [rip + 0x1c721]
+0x00005b08  call qword [rip + 0x1c30a]
-0x00005b47  lea rsi, [rip + 0x1c71a]
+0x00005b0e  hlt
-0x00005b4e  sub rsi, rdi
+0x00005b0f  nop
-0x00005b51  sar rsi, 3
+0x00005b10  lea rdi, [rip + 0x1c751]
-0x00005b55  mov rax, rsi
+0x00005b17  lea rax, [rip + 0x1c74a]
-0x00005b58  shr rax, 0x3f
+0x00005b1e  cmp rax, rdi
-0x00005b5c  add rsi, rax
+0x00005b21  je 0x5b20
-0x00005b5f  sar rsi, 1
+0x00005b23  mov rax, qword [rip + 0x1c196]
-0x00005b62  je 0x5b78
+0x00005b2a  test rax, rax
-0x00005b64  mov rax, qword [rip + 0x1c43d]
+0x00005b2d  je 0x5b1c
-0x00005b6b  test rax, rax
+0x00005b2f  jmp rax
-0x00005b6e  je 0x5b78
+0x00005b31  nop dword [rax]
-0x00005b70  jmp rax
+0x00005b38  ret
-0x00005b72  nop word [rax + rax]
+0x00005b39  nop dword [rax]
-0x00005b78  ret
+0x00005b40  lea rdi, [rip + 0x1c721]
-0x00005b79  nop dword [rax]
+0x00005b47  lea rsi, [rip + 0x1c71a]
-0x00005b80  endbr64
+0x00005b4e  sub rsi, rdi
-0x00005b84  cmp byte [rip + 0x1c73d], 0
+0x00005b51  sar rsi, 3
-0x00005b8b  jne 0x5bc0
+0x00005b55  mov rax, rsi
-0x00005b8d  push rbp
+0x00005b58  shr rax, 0x3f
-0x00005b8e  cmp qword [rip + 0x1c432], 0
+0x00005b5c  add rsi, rax
-0x00005b96  mov rbp, rsp
+0x00005b5f  sar rsi, 1
-0x00005b99  je 0x5ba8
+0x00005b62  je 0x5b5c
-0x00005b9b  mov rdi, qword [rip + 0x1c466]
+0x00005b64  mov rax, qword [rip + 0x1c43d]
-0x00005ba2  call qword [rip + 0x1c420]
+0x00005b6b  test rax, rax
-0x00005ba8  call 0x5b10
+0x00005b6e  je 0x5b5f
-0x00005bad  mov byte [rip + 0x1c714], 1
+0x00005b70  jmp rax
-0x00005bb4  pop rbp
+0x00005b72  nop word [rax + rax]
 0x00005bb5  ret
-0x00005bb6  nop word cs:[rax + rax]
+0x00005b79  nop dword [rax]
-0x00005bc0  ret
+0x00005b80  endbr64
-0x00005bc1  nop word cs:[rax + rax]
+0x00005b84  cmp byte [rip + 0x1c73d], 0
-0x00005bcc  nop dword [rax]
+0x00005b8b  jne 0x5bae
EOF
RUN

NAME=cmd_cw
FILE=bins/elf/ls
CMDS=<<EOF
cwl
echo --------
cw 8 'pd 2' @ 0x5ae0
cwl
echo --------
cwx @ 0x5ae0
cwl
EOF
EXPECT=<<EOF
--------
0x00005ae0
            ;-- entry0:
            0x00005ae0      endbr64
            0x00005ae4      xor   ebp, ebp
--------
EOF
RUN

NAME=add memory watcher at the same address multiple times and do not crash
FILE=bins/elf/ls
CMDS=<<EOF
cw 8 'pd 2' @ 0x5ae0
cw 8 'pd 2' @ 0x5ae0
cw 8 'pd 2' @ 0x5ae0
cw 8 'pd 2' @ 0x5ae0
cwl*
EOF
EXPECT=<<EOF
cw 8 'pd 2' @  0x00005ae0
EOF
RUN

NAME=cmd_cx
FILE=bins/elf/ls
CMDS=<<EOF
cx 12 34 56 78 90 ab cd ef
%v
cx f3..1e
%v
EOF
EXPECT=<<EOF
0x00005ae0 (byte=01)   f3 ' '  ->  12 ' '
0x00005ae1 (byte=02)   0f ' '  ->  34 '4'
0x00005ae2 (byte=03)   1e ' '  ->  56 'V'
0x00005ae3 (byte=04)   fa ' '  ->  78 'x'
0x00005ae4 (byte=05)   31 '1'  ->  90 ' '
0x00005ae5 (byte=06)   ed ' '  ->  ab ' '
0x00005ae6 (byte=07)   49 'I'  ->  cd ' '
0x00005ae7 (byte=08)   89 ' '  ->  ef ' '
Compare 0/8 equal bytes (0%)
0x1
Compare 3/3 equal bytes (100%)
0x0
EOF
RUN

NAME=cmd_cX
FILE=bins/elf/ls
CMDS=<<EOF
cX 0x5b00
EOF
EXPECT=<<EOF
0x00005ae0 (byte=01)   f3 ' '  ->  00 ' '
0x00005ae1 (byte=02)   0f ' '  ->  48 'H'
0x00005ae2 (byte=03)   1e ' '  ->  8d ' '
0x00005ae3 (byte=04)   fa ' '  ->  3d '='
0x00005ae4 (byte=05)   31 '1'  ->  68 'h'
0x00005ae5 (byte=06)   ed ' '  ->  e5 ' '
0x00005ae6 (byte=07)   49 'I'  ->  ff ' '
0x00005ae7 (byte=08)   89 ' '  ->  ff ' '
0x00005ae8 (byte=09)   d1 ' '  ->  ff ' '
0x00005ae9 (byte=10)   5e '^'  ->  15 ' '
0x00005aea (byte=11)   48 'H'  ->  0a ' '
0x00005aeb (byte=12)   89 ' '  ->  c3 ' '
0x00005aec (byte=13)   e2 ' '  ->  01 ' '
0x00005aed (byte=14)   48 'H'  ->  00 ' '
0x00005aee (byte=15)   83 ' '  ->  f4 ' '
0x00005aef (byte=16)   e4 ' '  ->  90 ' '
0x00005af0 (byte=17)   f0 ' '  ->  48 'H'
0x00005af1 (byte=18)   50 'P'  ->  8d ' '
0x00005af2 (byte=19)   54 'T'  ->  3d '='
0x00005af3 (byte=20)   4c 'L'  ->  51 'Q'
0x00005af4 (byte=21)   8d ' '  ->  c7 ' '
0x00005af5 (byte=22)   05 ' '  ->  01 ' '
0x00005af6 (byte=23)   66 'f'  ->  00 ' '
0x00005af7 (byte=24)   0c ' '  ->  48 'H'
0x00005af8 (byte=25)   01 ' '  ->  8d ' '
0x00005af9 (byte=26)   00 ' '  ->  05 ' '
0x00005afa (byte=27)   48 'H'  ->  4a 'J'
0x00005afb (byte=28)   8d ' '  ->  c7 ' '
0x00005afc (byte=29)   0d ' '  ->  01 ' '
0x00005afd (byte=30)   ef ' '  ->  00 ' '
0x00005afe (byte=31)   0b ' '  ->  48 'H'
0x00005aff (byte=32)   01 ' '  ->  39 '9'
0x00005b00 (byte=33)   00 ' '  ->  f8 ' '
0x00005b01 (byte=34)   48 'H'  ->  74 't'
0x00005b02 (byte=35)   8d ' '  ->  15 ' '
0x00005b03 (byte=36)   3d '='  ->  48 'H'
0x00005b04 (byte=37)   68 'h'  ->  8b ' '
0x00005b05 (byte=38)   e5 ' '  ->  05 ' '
0x00005b06 (byte=39)   ff ' '  ->  96 ' '
0x00005b07 (byte=40)   ff ' '  ->  c1 ' '
0x00005b08 (byte=41)   ff ' '  ->  01 ' '
0x00005b09 (byte=42)   15 ' '  ->  00 ' '
0x00005b0a (byte=43)   0a ' '  ->  48 'H'
0x00005b0b (byte=44)   c3 ' '  ->  85 ' '
0x00005b0c (byte=45)   01 ' '  ->  c0 ' '
0x00005b0d (byte=46)   00 ' '  ->  74 't'
0x00005b0e (byte=47)   f4 ' '  ->  09 ' '
0x00005b0f (byte=48)   90 ' '  ->  ff ' '
0x00005b10 (byte=49)   48 'H'  ->  e0 ' '
0x00005b11 (byte=50)   8d ' '  ->  0f ' '
0x00005b12 (byte=51)   3d '='  ->  1f ' '
0x00005b13 (byte=52)   51 'Q'  ->  80 ' '
0x00005b14 (byte=53)   c7 ' '  ->  00 ' '
0x00005b15 (byte=54)   01 ' '  ->  00 ' '
0x00005b17 (byte=56)   48 'H'  ->  00 ' '
0x00005b18 (byte=57)   8d ' '  ->  c3 ' '
0x00005b19 (byte=58)   05 ' '  ->  0f ' '
0x00005b1a (byte=59)   4a 'J'  ->  1f ' '
0x00005b1b (byte=60)   c7 ' '  ->  80 ' '
0x00005b1c (byte=61)   01 ' '  ->  00 ' '
0x00005b1e (byte=63)   48 'H'  ->  00 ' '
0x00005b1f (byte=64)   39 '9'  ->  00 ' '
0x00005b20 (byte=65)   f8 ' '  ->  48 'H'
0x00005b21 (byte=66)   74 't'  ->  8d ' '
0x00005b22 (byte=67)   15 ' '  ->  3d '='
0x00005b23 (byte=68)   48 'H'  ->  21 '!'
0x00005b24 (byte=69)   8b ' '  ->  c7 ' '
0x00005b25 (byte=70)   05 ' '  ->  01 ' '
0x00005b26 (byte=71)   96 ' '  ->  00 ' '
0x00005b27 (byte=72)   c1 ' '  ->  48 'H'
0x00005b28 (byte=73)   01 ' '  ->  8d ' '
0x00005b29 (byte=74)   00 ' '  ->  35 '5'
0x00005b2a (byte=75)   48 'H'  ->  1a ' '
0x00005b2b (byte=76)   85 ' '  ->  c7 ' '
0x00005b2c (byte=77)   c0 ' '  ->  01 ' '
0x00005b2d (byte=78)   74 't'  ->  00 ' '
0x00005b2e (byte=79)   09 ' '  ->  48 'H'
0x00005b2f (byte=80)   ff ' '  ->  29 ')'
0x00005b30 (byte=81)   e0 ' '  ->  fe ' '
0x00005b31 (byte=82)   0f ' '  ->  48 'H'
0x00005b32 (byte=83)   1f ' '  ->  c1 ' '
0x00005b33 (byte=84)   80 ' '  ->  fe ' '
0x00005b34 (byte=85)   00 ' '  ->  03 ' '
0x00005b35 (byte=86)   00 ' '  ->  48 'H'
0x00005b36 (byte=87)   00 ' '  ->  89 ' '
0x00005b37 (byte=88)   00 ' '  ->  f0 ' '
0x00005b38 (byte=89)   c3 ' '  ->  48 'H'
0x00005b39 (byte=90)   0f ' '  ->  c1 ' '
0x00005b3a (byte=91)   1f ' '  ->  e8 ' '
0x00005b3b (byte=92)   80 ' '  ->  3f '?'
0x00005b3c (byte=93)   00 ' '  ->  48 'H'
0x00005b3d (byte=94)   00 ' '  ->  01 ' '
0x00005b3e (byte=95)   00 ' '  ->  c6 ' '
0x00005b3f (byte=96)   00 ' '  ->  48 'H'
0x00005b40 (byte=97)   48 'H'  ->  d1 ' '
0x00005b41 (byte=98)   8d ' '  ->  fe ' '
0x00005b42 (byte=99)   3d '='  ->  74 't'
0x00005b43 (byte=100)   21 '!'  ->  14 ' '
0x00005b44 (byte=101)   c7 ' '  ->  48 'H'
0x00005b45 (byte=102)   01 ' '  ->  8b ' '
0x00005b46 (byte=103)   00 ' '  ->  05 ' '
0x00005b47 (byte=104)   48 'H'  ->  3d '='
0x00005b48 (byte=105)   8d ' '  ->  c4 ' '
0x00005b49 (byte=106)   35 '5'  ->  01 ' '
0x00005b4a (byte=107)   1a ' '  ->  00 ' '
0x00005b4b (byte=108)   c7 ' '  ->  48 'H'
0x00005b4c (byte=109)   01 ' '  ->  85 ' '
0x00005b4d (byte=110)   00 ' '  ->  c0 ' '
0x00005b4e (byte=111)   48 'H'  ->  74 't'
0x00005b4f (byte=112)   29 ')'  ->  08 ' '
0x00005b50 (byte=113)   fe ' '  ->  ff ' '
0x00005b51 (byte=114)   48 'H'  ->  e0 ' '
0x00005b52 (byte=115)   c1 ' '  ->  66 'f'
0x00005b53 (byte=116)   fe ' '  ->  0f ' '
0x00005b54 (byte=117)   03 ' '  ->  1f ' '
0x00005b55 (byte=118)   48 'H'  ->  44 'D'
0x00005b56 (byte=119)   89 ' '  ->  00 ' '
0x00005b57 (byte=120)   f0 ' '  ->  00 ' '
0x00005b58 (byte=121)   48 'H'  ->  c3 ' '
0x00005b59 (byte=122)   c1 ' '  ->  0f ' '
0x00005b5a (byte=123)   e8 ' '  ->  1f ' '
0x00005b5b (byte=124)   3f '?'  ->  80 ' '
0x00005b5c (byte=125)   48 'H'  ->  00 ' '
0x00005b5d (byte=126)   01 ' '  ->  00 ' '
0x00005b5e (byte=127)   c6 ' '  ->  00 ' '
0x00005b5f (byte=128)   48 'H'  ->  00 ' '
0x00005b60 (byte=129)   d1 ' '  ->  f3 ' '
0x00005b61 (byte=130)   fe ' '  ->  0f ' '
0x00005b62 (byte=131)   74 't'  ->  1e ' '
0x00005b63 (byte=132)   14 ' '  ->  fa ' '
0x00005b64 (byte=133)   48 'H'  ->  80 ' '
0x00005b65 (byte=134)   8b ' '  ->  3d '='
0x00005b66 (byte=135)   05 ' '  ->  3d '='
0x00005b67 (byte=136)   3d '='  ->  c7 ' '
0x00005b68 (byte=137)   c4 ' '  ->  01 ' '
0x00005b69 (byte=138)   01 ' '  ->  00 ' '
0x00005b6b (byte=140)   48 'H'  ->  75 'u'
0x00005b6c (byte=141)   85 ' '  ->  33 '3'
0x00005b6d (byte=142)   c0 ' '  ->  55 'U'
0x00005b6e (byte=143)   74 't'  ->  48 'H'
0x00005b6f (byte=144)   08 ' '  ->  83 ' '
0x00005b70 (byte=145)   ff ' '  ->  3d '='
0x00005b71 (byte=146)   e0 ' '  ->  32 '2'
0x00005b72 (byte=147)   66 'f'  ->  c4 ' '
0x00005b73 (byte=148)   0f ' '  ->  01 ' '
0x00005b74 (byte=149)   1f ' '  ->  00 ' '
0x00005b75 (byte=150)   44 'D'  ->  00 ' '
0x00005b76 (byte=151)   00 ' '  ->  48 'H'
0x00005b77 (byte=152)   00 ' '  ->  89 ' '
0x00005b78 (byte=153)   c3 ' '  ->  e5 ' '
0x00005b79 (byte=154)   0f ' '  ->  74 't'
0x00005b7a (byte=155)   1f ' '  ->  0d ' '
0x00005b7b (byte=156)   80 ' '  ->  48 'H'
0x00005b7c (byte=157)   00 ' '  ->  8b ' '
0x00005b7d (byte=158)   00 ' '  ->  3d '='
0x00005b7e (byte=159)   00 ' '  ->  66 'f'
0x00005b7f (byte=160)   00 ' '  ->  c4 ' '
0x00005b80 (byte=161)   f3 ' '  ->  01 ' '
0x00005b81 (byte=162)   0f ' '  ->  00 ' '
0x00005b82 (byte=163)   1e ' '  ->  ff ' '
0x00005b83 (byte=164)   fa ' '  ->  15 ' '
0x00005b84 (byte=165)   80 ' '  ->  20 ' '
0x00005b85 (byte=166)   3d '='  ->  c4 ' '
0x00005b86 (byte=167)   3d '='  ->  01 ' '
0x00005b87 (byte=168)   c7 ' '  ->  00 ' '
0x00005b88 (byte=169)   01 ' '  ->  e8 ' '
0x00005b89 (byte=170)   00 ' '  ->  63 'c'
0x00005b8a (byte=171)   00 ' '  ->  ff ' '
0x00005b8b (byte=172)   75 'u'  ->  ff ' '
0x00005b8c (byte=173)   33 '3'  ->  ff ' '
0x00005b8d (byte=174)   55 'U'  ->  c6 ' '
0x00005b8e (byte=175)   48 'H'  ->  05 ' '
0x00005b8f (byte=176)   83 ' '  ->  14 ' '
0x00005b90 (byte=177)   3d '='  ->  c7 ' '
0x00005b91 (byte=178)   32 '2'  ->  01 ' '
0x00005b92 (byte=179)   c4 ' '  ->  00 ' '
0x00005b94 (byte=181)   00 ' '  ->  5d ']'
0x00005b95 (byte=182)   00 ' '  ->  c3 ' '
0x00005b96 (byte=183)   48 'H'  ->  66 'f'
0x00005b97 (byte=184)   89 ' '  ->  2e '.'
0x00005b98 (byte=185)   e5 ' '  ->  0f ' '
0x00005b99 (byte=186)   74 't'  ->  1f ' '
0x00005b9a (byte=187)   0d ' '  ->  84 ' '
0x00005b9b (byte=188)   48 'H'  ->  00 ' '
0x00005b9c (byte=189)   8b ' '  ->  00 ' '
0x00005b9d (byte=190)   3d '='  ->  00 ' '
0x00005b9e (byte=191)   66 'f'  ->  00 ' '
0x00005b9f (byte=192)   c4 ' '  ->  00 ' '
0x00005ba0 (byte=193)   01 ' '  ->  c3 ' '
0x00005ba1 (byte=194)   00 ' '  ->  66 'f'
0x00005ba2 (byte=195)   ff ' '  ->  66 'f'
0x00005ba3 (byte=196)   15 ' '  ->  2e '.'
0x00005ba4 (byte=197)   20 ' '  ->  0f ' '
0x00005ba5 (byte=198)   c4 ' '  ->  1f ' '
0x00005ba6 (byte=199)   01 ' '  ->  84 ' '
0x00005ba8 (byte=201)   e8 ' '  ->  00 ' '
0x00005ba9 (byte=202)   63 'c'  ->  00 ' '
0x00005baa (byte=203)   ff ' '  ->  00 ' '
0x00005bab (byte=204)   ff ' '  ->  00 ' '
0x00005bac (byte=205)   ff ' '  ->  0f ' '
0x00005bad (byte=206)   c6 ' '  ->  1f ' '
0x00005bae (byte=207)   05 ' '  ->  40 '@'
0x00005baf (byte=208)   14 ' '  ->  00 ' '
0x00005bb0 (byte=209)   c7 ' '  ->  f3 ' '
0x00005bb1 (byte=210)   01 ' '  ->  0f ' '
0x00005bb2 (byte=211)   00 ' '  ->  1e ' '
0x00005bb3 (byte=212)   01 ' '  ->  fa ' '
0x00005bb4 (byte=213)   5d ']'  ->  e9 ' '
0x00005bb5 (byte=214)   c3 ' '  ->  67 'g'
0x00005bb6 (byte=215)   66 'f'  ->  ff ' '
0x00005bb7 (byte=216)   2e '.'  ->  ff ' '
0x00005bb8 (byte=217)   0f ' '  ->  ff ' '
0x00005bb9 (byte=218)   1f ' '  ->  0f ' '
0x00005bba (byte=219)   84 ' '  ->  1f ' '
0x00005bbb (byte=220)   00 ' '  ->  80 ' '
0x00005bc0 (byte=225)   c3 ' '  ->  48 'H'
0x00005bc1 (byte=226)   66 'f'  ->  8b ' '
0x00005bc2 (byte=227)   66 'f'  ->  07 ' '
0x00005bc3 (byte=228)   2e '.'  ->  31 '1'
0x00005bc4 (byte=229)   0f ' '  ->  d2 ' '
0x00005bc5 (byte=230)   1f ' '  ->  48 'H'
0x00005bc6 (byte=231)   84 ' '  ->  f7 ' '
0x00005bc7 (byte=232)   00 ' '  ->  f6 ' '
0x00005bc8 (byte=233)   00 ' '  ->  48 'H'
0x00005bc9 (byte=234)   00 ' '  ->  89 ' '
0x00005bca (byte=235)   00 ' '  ->  d0 ' '
0x00005bcb (byte=236)   00 ' '  ->  c3 ' '
0x00005bd0 (byte=241)   f3 ' '  ->  31 '1'
0x00005bd1 (byte=242)   0f ' '  ->  c0 ' '
0x00005bd2 (byte=243)   1e ' '  ->  48 'H'
0x00005bd3 (byte=244)   fa ' '  ->  8b ' '
0x00005bd4 (byte=245)   e9 ' '  ->  16 ' '
0x00005bd5 (byte=246)   67 'g'  ->  48 'H'
0x00005bd6 (byte=247)   ff ' '  ->  39 '9'
0x00005bd7 (byte=248)   ff ' '  ->  17 ' '
0x00005bd8 (byte=249)   ff ' '  ->  74 't'
0x00005bd9 (byte=250)   0f ' '  ->  06 ' '
0x00005bda (byte=251)   1f ' '  ->  c3 ' '
0x00005bdb (byte=252)   80 ' '  ->  0f ' '
0x00005bdc (byte=253)   00 ' '  ->  1f ' '
0x00005bdd (byte=254)   00 ' '  ->  44 'D'
Compare 15/256 equal bytes (5%)
EOF
RUN
