NAME=aes help changing seek
FILE=-
CMDS=<<EOF
wx 55
e asm.arch=x86
e asm.bits=32
aes
sr PC
s
EOF
EXPECT=<<EOF
0x1
EOF
RUN

NAME=cmd.esil.intr unset
FILE=-
CMDS=<<EOF
wx b8010000000f34b801000000cd80ebfe
10aes
EOF
EXPECT=<<EOF
EOF
RUN

NAME=aes without initialize
FILE=-
CMDS=<<EOF
e asm.arch=x86
e asm.bits=32
wx bb10000000 # mov ebx, 10
aes
ar~ebx
EOF
EXPECT=<<EOF
ebx = 0x00000010
EOF
RUN

NAME=aes with pin
FILE=-
CMDS=<<EOF
wx bb10000000bb10000000bb10000000 
aeim
e asm.arch=x86
e asm.bits=32
e cmd.esil.pin=?e
aepc $$
aep test @ 5
aep
aes
EOF
EXPECT_ERR=<<EOF
EOF
RUN

NAME=aes with pin after aeim
FILE=-
CMDS=<<EOF
wx bb10000000bb10000000bb10000000 
e asm.arch=x86
e asm.bits=32
e cmd.esil.pin=?e
aeim
aepc $$
aep test @ 5
aep
aes
aes
EOF
EXPECT=<<EOF
"aep ret0=dr R0=0;aexa ret"
aep test @ 0x5
"aep memcpy=wf `dr?A1` `dr?A2` @ `dr?A0`;aexa ret"
"aep strlen=dr R0=`pszl@r:A0`;aexa ret"
"aep puts=psz@r:A0; aexa ret"
test
Usage: te[...]  Type enum commands
| te                 list all loaded enums
| te <enum>          print all values of enum for given name
| te <enum> <value>  show name for given enum number
| te-<enum>          delete enum type definition
| tej                list all loaded enums in json
| tej <enum>         show enum in json
| teb <enum> <name>  show matching enum bitfield for given name
| tec                list all loaded enums in C output format with newlines
| tec <name>         list given loaded enums in C output format with newlines
| ted                list all loaded enums in C output format without newlines
EOF
EXPECT_ERR=
RUN

NAME=emulate imports
FILE=bins/mach0/hello-puts
CMDS=<<EOF
s main
aepc $$
aeim
aaep
aep
aecs
EOF
EXPECT=<<EOF
"aep ret0=dr R0=0;aexa ret"
"aep memcpy=wf `dr?A1` `dr?A2` @ `dr?A0`;aexa ret"
"aep strlen=dr R0=`pszl@r:A0`;aexa ret"
"aep puts=psz@r:A0; aexa ret"
aep puts @ 0x1050
Hello World
EOF
RUN
