NAME=pc hello-linux-x86_64
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=pc
EXPECT=<<EOF
#define _BUFFER_SIZE 256
const uint8_t buffer[_BUFFER_SIZE] = {
  0x31, 0xed, 0x49, 0x89, 0xd1, 0x5e, 0x48, 0x89, 0xe2, 0x48,
  0x83, 0xe4, 0xf0, 0x50, 0x54, 0x49, 0xc7, 0xc0, 0xb0, 0x05,
  0x40, 0x00, 0x48, 0xc7, 0xc1, 0x20, 0x05, 0x40, 0x00, 0x48,
  0xc7, 0xc7, 0xfc, 0x04, 0x40, 0x00, 0xe8, 0xb7, 0xff, 0xff,
  0xff, 0xf4, 0x66, 0x90, 0x0f, 0x1f, 0x40, 0x00, 0xb8, 0x17,
  0x09, 0x60, 0x00, 0x55, 0x48, 0x2d, 0x10, 0x09, 0x60, 0x00,
  0x48, 0x83, 0xf8, 0x0e, 0x48, 0x89, 0xe5, 0x77, 0x02, 0x5d,
  0xc3, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x74,
  0xf4, 0x5d, 0xbf, 0x10, 0x09, 0x60, 0x00, 0xff, 0xe0, 0x0f,
  0x1f, 0x80, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x10, 0x09, 0x60,
  0x00, 0x55, 0x48, 0x2d, 0x10, 0x09, 0x60, 0x00, 0x48, 0xc1,
  0xf8, 0x03, 0x48, 0x89, 0xe5, 0x48, 0x89, 0xc2, 0x48, 0xc1,
  0xea, 0x3f, 0x48, 0x01, 0xd0, 0x48, 0x89, 0xc6, 0x48, 0xd1,
  0xfe, 0x75, 0x02, 0x5d, 0xc3, 0xba, 0x00, 0x00, 0x00, 0x00,
  0x48, 0x85, 0xd2, 0x74, 0xf4, 0x5d, 0xbf, 0x10, 0x09, 0x60,
  0x00, 0xff, 0xe2, 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00,
  0x80, 0x3d, 0x59, 0x04, 0x20, 0x00, 0x00, 0x75, 0x11, 0x55,
  0x48, 0x89, 0xe5, 0xe8, 0x7e, 0xff, 0xff, 0xff, 0x5d, 0xc6,
  0x05, 0x46, 0x04, 0x20, 0x00, 0x01, 0xf3, 0xc3, 0x0f, 0x1f,
  0x40, 0x00, 0x48, 0x83, 0x3d, 0x18, 0x02, 0x20, 0x00, 0x00,
  0x74, 0x1b, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, 0xc0,
  0x74, 0x11, 0x55, 0xbf, 0xf0, 0x06, 0x60, 0x00, 0x48, 0x89,
  0xe5, 0xff, 0xd0, 0x5d, 0xe9, 0x7b, 0xff, 0xff, 0xff, 0xe9,
  0x76, 0xff, 0xff, 0xff, 0x66, 0x90, 0x55, 0x48, 0x89, 0xe5,
  0xbf, 0xc4, 0x05, 0x40, 0x00, 0xe8, 0xd6, 0xfe, 0xff, 0xff,
  0xb8, 0x00, 0x00, 0x00, 0x00, 0x5d
};
EOF
RUN

NAME=pc* hello-linux-x86_64
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=pc*
EXPECT=<<EOF
wx+31ed4989d15e4889e24883e4f0505449c7c0b005400048c7c12005400048c7c7;
wx+fc044000e8b7fffffff466900f1f4000b81709600055482d100960004883f80e;
wx+4889e577025dc3b8000000004885c074f45dbf10096000ffe00f1f8000000000;
wx+b81009600055482d1009600048c1f8034889e54889c248c1ea3f4801d04889c6;
wx+48d1fe75025dc3ba000000004885d274f45dbf10096000ffe20f1f8000000000;
wx+803d59042000007511554889e5e87effffff5dc6054604200001f3c30f1f4000;
wx+48833d1802200000741bb8000000004885c0741155bff00660004889e5ffd05d;
wx+e97bffffffe976ffffff6690554889e5bfc4054000e8d6feffffb8000000005d;
s-256
EOF
RUN

NAME=pch hello-linux-x86_64
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=pch
EXPECT=<<EOF
#define _BUFFER_SIZE 128
const uint16_t buffer[_BUFFER_SIZE] = {
  0xed31, 0x8949, 0x5ed1, 0x8948, 0x48e2, 0xe483, 0x50f0, 0x4954,
  0xc0c7, 0x05b0, 0x0040, 0xc748, 0x20c1, 0x4005, 0x4800, 0xc7c7,
  0x04fc, 0x0040, 0xb7e8, 0xffff, 0xf4ff, 0x9066, 0x1f0f, 0x0040,
  0x17b8, 0x6009, 0x5500, 0x2d48, 0x0910, 0x0060, 0x8348, 0x0ef8,
  0x8948, 0x77e5, 0x5d02, 0xb8c3, 0x0000, 0x0000, 0x8548, 0x74c0,
  0x5df4, 0x10bf, 0x6009, 0xff00, 0x0fe0, 0x801f, 0x0000, 0x0000,
  0x10b8, 0x6009, 0x5500, 0x2d48, 0x0910, 0x0060, 0xc148, 0x03f8,
  0x8948, 0x48e5, 0xc289, 0xc148, 0x3fea, 0x0148, 0x48d0, 0xc689,
  0xd148, 0x75fe, 0x5d02, 0xbac3, 0x0000, 0x0000, 0x8548, 0x74d2,
  0x5df4, 0x10bf, 0x6009, 0xff00, 0x0fe2, 0x801f, 0x0000, 0x0000,
  0x3d80, 0x0459, 0x0020, 0x7500, 0x5511, 0x8948, 0xe8e5, 0xff7e,
  0xffff, 0xc65d, 0x4605, 0x2004, 0x0100, 0xc3f3, 0x1f0f, 0x0040,
  0x8348, 0x183d, 0x2002, 0x0000, 0x1b74, 0x00b8, 0x0000, 0x4800,
  0xc085, 0x1174, 0xbf55, 0x06f0, 0x0060, 0x8948, 0xffe5, 0x5dd0,
  0x7be9, 0xffff, 0xe9ff, 0xff76, 0xffff, 0x9066, 0x4855, 0xe589,
  0xc4bf, 0x4005, 0xe800, 0xfed6, 0xffff, 0x00b8, 0x0000, 0x5d00
};
EOF
RUN

NAME=pcw hello-linux-x86_64
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=pcw
EXPECT=<<EOF
#define _BUFFER_SIZE 64
const uint32_t buffer[_BUFFER_SIZE] = {
  0x8949ed31U, 0x89485ed1U, 0xe48348e2U, 0x495450f0U, 0x05b0c0c7U,
  0xc7480040U, 0x400520c1U, 0xc7c74800U, 0x004004fcU, 0xffffb7e8U,
  0x9066f4ffU, 0x00401f0fU, 0x600917b8U, 0x2d485500U, 0x00600910U,
  0x0ef88348U, 0x77e58948U, 0xb8c35d02U, 0x00000000U, 0x74c08548U,
  0x10bf5df4U, 0xff006009U, 0x801f0fe0U, 0x00000000U, 0x600910b8U,
  0x2d485500U, 0x00600910U, 0x03f8c148U, 0x48e58948U, 0xc148c289U,
  0x01483feaU, 0xc68948d0U, 0x75fed148U, 0xbac35d02U, 0x00000000U,
  0x74d28548U, 0x10bf5df4U, 0xff006009U, 0x801f0fe2U, 0x00000000U,
  0x04593d80U, 0x75000020U, 0x89485511U, 0xff7ee8e5U, 0xc65dffffU,
  0x20044605U, 0xc3f30100U, 0x00401f0fU, 0x183d8348U, 0x00002002U,
  0x00b81b74U, 0x48000000U, 0x1174c085U, 0x06f0bf55U, 0x89480060U,
  0x5dd0ffe5U, 0xffff7be9U, 0xff76e9ffU, 0x9066ffffU, 0xe5894855U,
  0x4005c4bfU, 0xfed6e800U, 0x00b8ffffU, 0x5d000000U
};
EOF
RUN

NAME=pcd hello-linux-x86_64
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=pcd
EXPECT=<<EOF
#define _BUFFER_SIZE 32
const uint64_t buffer[_BUFFER_SIZE] = {
  0x89485ed18949ed31ULL, 0x495450f0e48348e2ULL, 0xc748004005b0c0c7ULL,
  0xc7c74800400520c1ULL, 0xffffb7e8004004fcULL, 0x00401f0f9066f4ffULL,
  0x2d485500600917b8ULL, 0x0ef8834800600910ULL, 0xb8c35d0277e58948ULL,
  0x74c0854800000000ULL, 0xff00600910bf5df4ULL, 0x00000000801f0fe0ULL,
  0x2d485500600910b8ULL, 0x03f8c14800600910ULL, 0xc148c28948e58948ULL,
  0xc68948d001483feaULL, 0xbac35d0275fed148ULL, 0x74d2854800000000ULL,
  0xff00600910bf5df4ULL, 0x00000000801f0fe2ULL, 0x7500002004593d80ULL,
  0xff7ee8e589485511ULL, 0x20044605c65dffffULL, 0x00401f0fc3f30100ULL,
  0x00002002183d8348ULL, 0x4800000000b81b74ULL, 0x06f0bf551174c085ULL,
  0x5dd0ffe589480060ULL, 0xff76e9ffffff7be9ULL, 0xe58948559066ffffULL,
  0xfed6e8004005c4bfULL, 0x5d00000000b8ffffULL
};
EOF
RUN

NAME=pca hello-linux-x86_64
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=pca
EXPECT=<<EOF
shellcode:
.byte 0x31, 0xed, 0x49, 0x89, 0xd1, 0x5e, 0x48, 0x89
.byte 0xe2, 0x48, 0x83, 0xe4, 0xf0, 0x50, 0x54, 0x49
.byte 0xc7, 0xc0, 0xb0, 0x05, 0x40, 0x00, 0x48, 0xc7
.byte 0xc1, 0x20, 0x05, 0x40, 0x00, 0x48, 0xc7, 0xc7
.byte 0xfc, 0x04, 0x40, 0x00, 0xe8, 0xb7, 0xff, 0xff
.byte 0xff, 0xf4, 0x66, 0x90, 0x0f, 0x1f, 0x40, 0x00
.byte 0xb8, 0x17, 0x09, 0x60, 0x00, 0x55, 0x48, 0x2d
.byte 0x10, 0x09, 0x60, 0x00, 0x48, 0x83, 0xf8, 0x0e
.byte 0x48, 0x89, 0xe5, 0x77, 0x02, 0x5d, 0xc3, 0xb8
.byte 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, 0xc0, 0x74
.byte 0xf4, 0x5d, 0xbf, 0x10, 0x09, 0x60, 0x00, 0xff
.byte 0xe0, 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00
.byte 0xb8, 0x10, 0x09, 0x60, 0x00, 0x55, 0x48, 0x2d
.byte 0x10, 0x09, 0x60, 0x00, 0x48, 0xc1, 0xf8, 0x03
.byte 0x48, 0x89, 0xe5, 0x48, 0x89, 0xc2, 0x48, 0xc1
.byte 0xea, 0x3f, 0x48, 0x01, 0xd0, 0x48, 0x89, 0xc6
.byte 0x48, 0xd1, 0xfe, 0x75, 0x02, 0x5d, 0xc3, 0xba
.byte 0x00, 0x00, 0x00, 0x00, 0x48, 0x85, 0xd2, 0x74
.byte 0xf4, 0x5d, 0xbf, 0x10, 0x09, 0x60, 0x00, 0xff
.byte 0xe2, 0x0f, 0x1f, 0x80, 0x00, 0x00, 0x00, 0x00
.byte 0x80, 0x3d, 0x59, 0x04, 0x20, 0x00, 0x00, 0x75
.byte 0x11, 0x55, 0x48, 0x89, 0xe5, 0xe8, 0x7e, 0xff
.byte 0xff, 0xff, 0x5d, 0xc6, 0x05, 0x46, 0x04, 0x20
.byte 0x00, 0x01, 0xf3, 0xc3, 0x0f, 0x1f, 0x40, 0x00
.byte 0x48, 0x83, 0x3d, 0x18, 0x02, 0x20, 0x00, 0x00
.byte 0x74, 0x1b, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x48
.byte 0x85, 0xc0, 0x74, 0x11, 0x55, 0xbf, 0xf0, 0x06
.byte 0x60, 0x00, 0x48, 0x89, 0xe5, 0xff, 0xd0, 0x5d
.byte 0xe9, 0x7b, 0xff, 0xff, 0xff, 0xe9, 0x76, 0xff
.byte 0xff, 0xff, 0x66, 0x90, 0x55, 0x48, 0x89, 0xe5
.byte 0xbf, 0xc4, 0x05, 0x40, 0x00, 0xe8, 0xd6, 0xfe
.byte 0xff, 0xff, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x5d
.equ shellcode_len, 256
EOF
RUN

NAME=pcs hello-linux-x86_64
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=pcs
EXPECT=<<EOF
"\x31\xed\x49\x89\xd1\x5e\x48\x89\xe2\x48\x83\xe4\xf0\x50\x54\x49\xc7\xc0\xb0\x05\x40\x00\x48\xc7\xc1\x20\x05\x40\x00\x48\xc7\xc7\xfc\x04\x40\x00\xe8\xb7\xff\xff\xff\xf4\x66\x90\x0f\x1f\x40\x00\xb8\x17\x09\x60\x00\x55\x48\x2d\x10\x09\x60\x00\x48\x83\xf8\x0e\x48\x89\xe5\x77\x02\x5d\xc3\xb8\x00\x00\x00\x00\x48\x85\xc0\x74\xf4\x5d\xbf\x10\x09\x60\x00\xff\xe0\x0f\x1f\x80\x00\x00\x00\x00\xb8\x10\x09\x60\x00\x55\x48\x2d\x10\x09\x60\x00\x48\xc1\xf8\x03\x48\x89\xe5\x48\x89\xc2\x48\xc1\xea\x3f\x48\x01\xd0\x48\x89\xc6\x48\xd1\xfe\x75\x02\x5d\xc3\xba\x00\x00\x00\x00\x48\x85\xd2\x74\xf4\x5d\xbf\x10\x09\x60\x00\xff\xe2\x0f\x1f\x80\x00\x00\x00\x00\x80\x3d\x59\x04\x20\x00\x00\x75\x11\x55\x48\x89\xe5\xe8\x7e\xff\xff\xff\x5d\xc6\x05\x46\x04\x20\x00\x01\xf3\xc3\x0f\x1f\x40\x00\x48\x83\x3d\x18\x02\x20\x00\x00\x74\x1b\xb8\x00\x00\x00\x00\x48\x85\xc0\x74\x11\x55\xbf\xf0\x06\x60\x00\x48\x89\xe5\xff\xd0\x5d\xe9\x7b\xff\xff\xff\xe9\x76\xff\xff\xff\x66\x90\x55\x48\x89\xe5\xbf\xc4\x05\x40\x00\xe8\xd6\xfe\xff\xff\xb8\x00\x00\x00\x00\x5d"
EOF
RUN

NAME=pcS hello-linux-x86_64
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=pcS
EXPECT=<<EOF
printf "\061\355\111\211\321\136\110\211\342\110\203\344\360\120\124\111" > bin
printf "\307\300\260\005\100\000\110\307\301\040\005\100\000\110\307\307" >> bin
printf "\374\004\100\000\350\267\377\377\377\364\146\220\017\037\100\000" >> bin
printf "\270\027\011\140\000\125\110\055\020\011\140\000\110\203\370\016" >> bin
printf "\110\211\345\167\002\135\303\270\000\000\000\000\110\205\300\164" >> bin
printf "\364\135\277\020\011\140\000\377\340\017\037\200\000\000\000\000" >> bin
printf "\270\020\011\140\000\125\110\055\020\011\140\000\110\301\370\003" >> bin
printf "\110\211\345\110\211\302\110\301\352\077\110\001\320\110\211\306" >> bin
printf "\110\321\376\165\002\135\303\272\000\000\000\000\110\205\322\164" >> bin
printf "\364\135\277\020\011\140\000\377\342\017\037\200\000\000\000\000" >> bin
printf "\200\075\131\004\040\000\000\165\021\125\110\211\345\350\176\377" >> bin
printf "\377\377\135\306\005\106\004\040\000\001\363\303\017\037\100\000" >> bin
printf "\110\203\075\030\002\040\000\000\164\033\270\000\000\000\000\110" >> bin
printf "\205\300\164\021\125\277\360\006\140\000\110\211\345\377\320\135" >> bin
printf "\351\173\377\377\377\351\166\377\377\377\146\220\125\110\211\345" >> bin
printf "\277\304\005\100\000\350\326\376\377\377\270\000\000\000\000\135" >> bin
EOF
RUN

NAME=pcJ hello-linux-x86_64
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=pcJ
EXPECT=<<EOF
var buffer = new Buffer("Me1JidFeSIniSIPk8FBUScfAsAVAAEjHwSAFQABIx8f8BEAA6Lf////0ZpAPH0AAuBcJYABVSC0QCWAASIP4DkiJ5XcCXcO4AAAAAEiFwHT0Xb8QCWAA/+APH4AAAAAAuBAJYABVSC0QCWAASMH4A0iJ5UiJwkjB6j9IAdBIicZI0f51Al3DugAAAABIhdJ09F2/EAlgAP/iDx+AAAAAAIA9WQQgAAB1EVVIieXofv///13GBUYEIAAB88MPH0AASIM9GAIgAAB0G7gAAAAASIXAdBFVv/AGYABIieX/0F3pe////+l2////ZpBVSInlv8QFQADo1v7//7gAAAAAXQ==", 'base64');
EOF
RUN

NAME=pcj hello-linux-x86_64
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=pcj
EXPECT=<<EOF
[49,237,73,137,209,94,72,137,226,72,131,228,240,80,84,73,199,192,176,5,64,0,72,199,193,32,5,64,0,72,199,199,252,4,64,0,232,183,255,255,255,244,102,144,15,31,64,0,184,23,9,96,0,85,72,45,16,9,96,0,72,131,248,14,72,137,229,119,2,93,195,184,0,0,0,0,72,133,192,116,244,93,191,16,9,96,0,255,224,15,31,128,0,0,0,0,184,16,9,96,0,85,72,45,16,9,96,0,72,193,248,3,72,137,229,72,137,194,72,193,234,63,72,1,208,72,137,198,72,209,254,117,2,93,195,186,0,0,0,0,72,133,210,116,244,93,191,16,9,96,0,255,226,15,31,128,0,0,0,0,128,61,89,4,32,0,0,117,17,85,72,137,229,232,126,255,255,255,93,198,5,70,4,32,0,1,243,195,15,31,64,0,72,131,61,24,2,32,0,0,116,27,184,0,0,0,0,72,133,192,116,17,85,191,240,6,96,0,72,137,229,255,208,93,233,123,255,255,255,233,118,255,255,255,102,144,85,72,137,229,191,196,5,64,0,232,214,254,255,255,184,0,0,0,0,93]
EOF
RUN

NAME=pcp hello-linux-x86_64
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=pcp
EXPECT=<<EOF
import struct
buf = struct.pack ("256B", *[
0x31,0xed,0x49,0x89,0xd1,0x5e,0x48,0x89,0xe2,0x48,0x83,
0xe4,0xf0,0x50,0x54,0x49,0xc7,0xc0,0xb0,0x05,0x40,0x00,
0x48,0xc7,0xc1,0x20,0x05,0x40,0x00,0x48,0xc7,0xc7,0xfc,
0x04,0x40,0x00,0xe8,0xb7,0xff,0xff,0xff,0xf4,0x66,0x90,
0x0f,0x1f,0x40,0x00,0xb8,0x17,0x09,0x60,0x00,0x55,0x48,
0x2d,0x10,0x09,0x60,0x00,0x48,0x83,0xf8,0x0e,0x48,0x89,
0xe5,0x77,0x02,0x5d,0xc3,0xb8,0x00,0x00,0x00,0x00,0x48,
0x85,0xc0,0x74,0xf4,0x5d,0xbf,0x10,0x09,0x60,0x00,0xff,
0xe0,0x0f,0x1f,0x80,0x00,0x00,0x00,0x00,0xb8,0x10,0x09,
0x60,0x00,0x55,0x48,0x2d,0x10,0x09,0x60,0x00,0x48,0xc1,
0xf8,0x03,0x48,0x89,0xe5,0x48,0x89,0xc2,0x48,0xc1,0xea,
0x3f,0x48,0x01,0xd0,0x48,0x89,0xc6,0x48,0xd1,0xfe,0x75,
0x02,0x5d,0xc3,0xba,0x00,0x00,0x00,0x00,0x48,0x85,0xd2,
0x74,0xf4,0x5d,0xbf,0x10,0x09,0x60,0x00,0xff,0xe2,0x0f,
0x1f,0x80,0x00,0x00,0x00,0x00,0x80,0x3d,0x59,0x04,0x20,
0x00,0x00,0x75,0x11,0x55,0x48,0x89,0xe5,0xe8,0x7e,0xff,
0xff,0xff,0x5d,0xc6,0x05,0x46,0x04,0x20,0x00,0x01,0xf3,
0xc3,0x0f,0x1f,0x40,0x00,0x48,0x83,0x3d,0x18,0x02,0x20,
0x00,0x00,0x74,0x1b,0xb8,0x00,0x00,0x00,0x00,0x48,0x85,
0xc0,0x74,0x11,0x55,0xbf,0xf0,0x06,0x60,0x00,0x48,0x89,
0xe5,0xff,0xd0,0x5d,0xe9,0x7b,0xff,0xff,0xff,0xe9,0x76,
0xff,0xff,0xff,0x66,0x90,0x55,0x48,0x89,0xe5,0xbf,0xc4,
0x05,0x40,0x00,0xe8,0xd6,0xfe,0xff,0xff,0xb8,0x00,0x00,
0x00,0x00,0x5d])
EOF
RUN

NAME=pc -10
FILE=malloc://1024
CMDS=wx 90909090909090909090 ; s 10 ; pc - 10
EXPECT=<<EOF
#define _BUFFER_SIZE 10
const uint8_t buffer[_BUFFER_SIZE] = {
  0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90
};
EOF
RUN

NAME=pci1
FILE=-
CMDS=<<EOF
e asm.arch=x86
e asm.bits=32
wa nop
pci 1
EOF
EXPECT=<<EOF
#define _BUFFER_SIZE 1
const uint8_t buffer[_BUFFER_SIZE] = {
 0x90,                                 /* nop */
};
EOF
RUN

NAME=pci
FILE=bins/elf/analysis/hello-linux-x86_64
CMDS=<<EOF
pci 29
pci -10
EOF
EXPECT=<<EOF
#define _BUFFER_SIZE 29
const uint8_t buffer[_BUFFER_SIZE] = {
 0x31, 0xed,                           /* xor ebp, ebp */
 0x49, 0x89, 0xd1,                     /* mov r9, rdx */
 0x5e,                                 /* pop rsi */
 0x48, 0x89, 0xe2,                     /* mov rdx, rsp */
 0x48, 0x83, 0xe4, 0xf0,               /* and rsp, 0xfffffffffffffff0 */
 0x50,                                 /* push rax */
 0x54,                                 /* push rsp */
 0x49, 0xc7, 0xc0, 0xb0, 0x05, 0x40, 0x00,  /* mov r8, sym.__libc_csu_fini */
 0x48, 0xc7, 0xc1, 0x20, 0x05, 0x40, 0x00,  /* mov rcx, sym.__libc_csu_init */
};
#define _BUFFER_SIZE 10
const uint8_t buffer[_BUFFER_SIZE] = {
 0x68, 0x02, 0x00, 0x00, 0x00,         /* push 2 */
 0xe9, 0xc0, 0xff, 0xff, 0xff,         /* jmp section..plt */
};
EOF
RUN

NAME=pci invalid
CMDS=pci 32
FILE=bins/elf/analysis/hello-linux-x86_64
EXPECT=<<EOF
#define _BUFFER_SIZE 32
const uint8_t buffer[_BUFFER_SIZE] = {
 0x31, 0xed,                           /* xor ebp, ebp */
 0x49, 0x89, 0xd1,                     /* mov r9, rdx */
 0x5e,                                 /* pop rsi */
 0x48, 0x89, 0xe2,                     /* mov rdx, rsp */
 0x48, 0x83, 0xe4, 0xf0,               /* and rsp, 0xfffffffffffffff0 */
 0x50,                                 /* push rax */
 0x54,                                 /* push rsp */
 0x49, 0xc7, 0xc0, 0xb0, 0x05, 0x40, 0x00,  /* mov r8, sym.__libc_csu_fini */
 0x48, 0xc7, 0xc1, 0x20, 0x05, 0x40, 0x00,  /* mov rcx, sym.__libc_csu_init */
 0x48, 0xc7, 0xc7,                     /* invalid */
};
EOF
RUN
