NAME=arm - elf - main detection
FILE=bins/arm/elf/hello_world
CMDS=<<EOF
?v main
?v sym.main
EOF
EXPECT=<<EOF
0x50c
0x50c
EOF
RUN

NAME=armr - functions bits
FILE=bins/arm/elf/hello_world
CMDS=<<EOF
aaa
pi 1@@F
EOF
EXPECT=<<EOF
mov.w fp, 0
add ip, pc, 0, 12
ldr r3, [0x00000460]
ldr r0, [0x00000484]
ldr r0, [0x000004b8]
push {r3, lr}
add ip, pc, 0, 12
b sym.register_tm_clones
bx lr
push {r3, lr}
push.w {r3, r4, r5, r6, r7, r8, sb, lr}
push {r7, lr}
add ip, pc, 0, 12
push {r3, lr}
add ip, pc, 0, 12
str lr, [sp, -4]!
EOF
RUN

NAME=x86 - init_array detection
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=aa;afl~0x080482e0[3]
EXPECT=<<EOF
loc.imp.__gmon_start
EOF
RUN

NAME=x86 - init_array detection2
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=iS~init_array
EXPECT=<<EOF
18  0x0000059c    0x4 0x0804959c    0x4 -rw- .init_array
EOF
RUN

NAME=metadata
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=C
EXPECT=<<EOF
0x00000000 CCu "[29] ---- section size 599 named .strtab"
0x08048134 CCu "[01] -r-- section size 19 named .interp"
0x08048148 CCu "[02] -r-- section size 32 named .note.ABI_tag"
0x08048168 CCu "[03] -r-- section size 36 named .note.gnu.build_id"
0x0804818c CCu "[04] -r-- section size 32 named .gnu.hash"
0x080481ac CCu "[05] -r-- section size 80 named .dynsym"
0x080481fc CCu "[06] -r-- section size 74 named .dynstr"
0x08048246 CCu "[07] -r-- section size 10 named .gnu.version"
0x08048250 CCu "[08] -r-- section size 32 named .gnu.version_r"
0x08048270 CCu "[09] -r-- section size 8 named .rel.dyn"
0x08048278 CCu "[10] -r-- section size 24 named .rel.plt"
0x08048290 CCu "[11] -r-x section size 35 named .init"
0x080482c0 CCu "[12] -r-x section size 64 named .plt"
0x08048300 CCu "[13] -r-x section size 404 named .text"
0x08048494 CCu "[14] -r-x section size 20 named .fini"
0x080484a8 CCu "[15] -r-- section size 21 named .rodata"
0x080484b0 ascii[13] "Hello world!"
0x080484c0 CCu "[16] -r-- section size 44 named .eh_frame_hdr"
0x080484ec CCu "[17] -r-- section size 176 named .eh_frame"
0x0804959c data Cd 4
0x0804959c CCu "[18] -rw- section size 4 named .init_array"
0x080495a0 data Cd 4
0x080495a0 CCu "[19] -rw- section size 4 named .fini_array"
0x080495a4 CCu "[20] -rw- section size 4 named .jcr"
0x080495a8 data Cd 4
0x080495a8 CCu "[21] -rw- section size 232 named .dynamic"
0x080495ac data Cd 4
0x080495b0 data Cd 4
0x080495b4 data Cd 4
0x080495b8 data Cd 4
0x080495bc data Cd 4
0x080495c0 data Cd 4
0x080495c4 data Cd 4
0x080495c8 data Cd 4
0x080495cc data Cd 4
0x080495d0 data Cd 4
0x080495d4 data Cd 4
0x080495d8 data Cd 4
0x080495dc data Cd 4
0x080495e0 data Cd 4
0x080495e4 data Cd 4
0x080495e8 data Cd 4
0x080495ec data Cd 4
0x080495f0 data Cd 4
0x080495f4 data Cd 4
0x080495f8 data Cd 4
0x080495fc data Cd 4
0x08049600 data Cd 4
0x08049604 data Cd 4
0x08049608 data Cd 4
0x0804960c data Cd 4
0x08049610 data Cd 4
0x08049614 data Cd 4
0x08049618 data Cd 4
0x0804961c data Cd 4
0x08049620 data Cd 4
0x08049624 data Cd 4
0x08049628 data Cd 4
0x0804962c data Cd 4
0x08049630 data Cd 4
0x08049634 data Cd 4
0x08049638 data Cd 4
0x0804963c data Cd 4
0x08049640 data Cd 4
0x08049644 data Cd 4
0x08049648 data Cd 4
0x0804964c data Cd 4
0x08049650 data Cd 4
0x08049654 data Cd 4
0x08049658 data Cd 4
0x0804965c data Cd 4
0x08049660 data Cd 4
0x08049664 data Cd 4
0x08049668 data Cd 4
0x0804966c data Cd 4
0x08049670 data Cd 4
0x08049674 data Cd 4
0x08049678 data Cd 4
0x0804967c data Cd 4
0x08049680 data Cd 4
0x08049684 data Cd 4
0x08049688 data Cd 4
0x0804968c data Cd 4
0x08049690 data Cd 4
0x08049690 CCu "[22] -rw- section size 4 named .got"
0x08049694 CCu "[23] -rw- section size 24 named .got.plt"
0x080496a0 data Cd 4
0x080496a4 data Cd 4
0x080496a8 data Cd 4
0x080496ac CCu "[24] -rw- section size 8 named .data"
0x080496b4 CCu "[25] -rw- section size 4 named .bss"
EOF
RUN

NAME=base64 metadata commands
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=C*
EXPECT=<<EOF
CCu base64:WzI5XSAtLS0tIHNlY3Rpb24gc2l6ZSA1OTkgbmFtZWQgLnN0cnRhYg== @ 0x00000000
CCu base64:WzAxXSAtci0tIHNlY3Rpb24gc2l6ZSAxOSBuYW1lZCAuaW50ZXJw @ 0x08048134
CCu base64:WzAyXSAtci0tIHNlY3Rpb24gc2l6ZSAzMiBuYW1lZCAubm90ZS5BQklfdGFn @ 0x08048148
CCu base64:WzAzXSAtci0tIHNlY3Rpb24gc2l6ZSAzNiBuYW1lZCAubm90ZS5nbnUuYnVpbGRfaWQ= @ 0x08048168
CCu base64:WzA0XSAtci0tIHNlY3Rpb24gc2l6ZSAzMiBuYW1lZCAuZ251Lmhhc2g= @ 0x0804818c
CCu base64:WzA1XSAtci0tIHNlY3Rpb24gc2l6ZSA4MCBuYW1lZCAuZHluc3lt @ 0x080481ac
CCu base64:WzA2XSAtci0tIHNlY3Rpb24gc2l6ZSA3NCBuYW1lZCAuZHluc3Ry @ 0x080481fc
CCu base64:WzA3XSAtci0tIHNlY3Rpb24gc2l6ZSAxMCBuYW1lZCAuZ251LnZlcnNpb24= @ 0x08048246
CCu base64:WzA4XSAtci0tIHNlY3Rpb24gc2l6ZSAzMiBuYW1lZCAuZ251LnZlcnNpb25fcg== @ 0x08048250
CCu base64:WzA5XSAtci0tIHNlY3Rpb24gc2l6ZSA4IG5hbWVkIC5yZWwuZHlu @ 0x08048270
CCu base64:WzEwXSAtci0tIHNlY3Rpb24gc2l6ZSAyNCBuYW1lZCAucmVsLnBsdA== @ 0x08048278
CCu base64:WzExXSAtci14IHNlY3Rpb24gc2l6ZSAzNSBuYW1lZCAuaW5pdA== @ 0x08048290
CCu base64:WzEyXSAtci14IHNlY3Rpb24gc2l6ZSA2NCBuYW1lZCAucGx0 @ 0x080482c0
CCu base64:WzEzXSAtci14IHNlY3Rpb24gc2l6ZSA0MDQgbmFtZWQgLnRleHQ= @ 0x08048300
CCu base64:WzE0XSAtci14IHNlY3Rpb24gc2l6ZSAyMCBuYW1lZCAuZmluaQ== @ 0x08048494
CCu base64:WzE1XSAtci0tIHNlY3Rpb24gc2l6ZSAyMSBuYW1lZCAucm9kYXRh @ 0x080484a8
Cs 13 @ 0x080484b0 # Hello world!
CCu base64:WzE2XSAtci0tIHNlY3Rpb24gc2l6ZSA0NCBuYW1lZCAuZWhfZnJhbWVfaGRy @ 0x080484c0
CCu base64:WzE3XSAtci0tIHNlY3Rpb24gc2l6ZSAxNzYgbmFtZWQgLmVoX2ZyYW1l @ 0x080484ec
Cd 4 @ 0x0804959c
CCu base64:WzE4XSAtcnctIHNlY3Rpb24gc2l6ZSA0IG5hbWVkIC5pbml0X2FycmF5 @ 0x0804959c
Cd 4 @ 0x080495a0
CCu base64:WzE5XSAtcnctIHNlY3Rpb24gc2l6ZSA0IG5hbWVkIC5maW5pX2FycmF5 @ 0x080495a0
CCu base64:WzIwXSAtcnctIHNlY3Rpb24gc2l6ZSA0IG5hbWVkIC5qY3I= @ 0x080495a4
Cd 4 @ 0x080495a8
CCu base64:WzIxXSAtcnctIHNlY3Rpb24gc2l6ZSAyMzIgbmFtZWQgLmR5bmFtaWM= @ 0x080495a8
Cd 4 @ 0x080495ac
Cd 4 @ 0x080495b0
Cd 4 @ 0x080495b4
Cd 4 @ 0x080495b8
Cd 4 @ 0x080495bc
Cd 4 @ 0x080495c0
Cd 4 @ 0x080495c4
Cd 4 @ 0x080495c8
Cd 4 @ 0x080495cc
Cd 4 @ 0x080495d0
Cd 4 @ 0x080495d4
Cd 4 @ 0x080495d8
Cd 4 @ 0x080495dc
Cd 4 @ 0x080495e0
Cd 4 @ 0x080495e4
Cd 4 @ 0x080495e8
Cd 4 @ 0x080495ec
Cd 4 @ 0x080495f0
Cd 4 @ 0x080495f4
Cd 4 @ 0x080495f8
Cd 4 @ 0x080495fc
Cd 4 @ 0x08049600
Cd 4 @ 0x08049604
Cd 4 @ 0x08049608
Cd 4 @ 0x0804960c
Cd 4 @ 0x08049610
Cd 4 @ 0x08049614
Cd 4 @ 0x08049618
Cd 4 @ 0x0804961c
Cd 4 @ 0x08049620
Cd 4 @ 0x08049624
Cd 4 @ 0x08049628
Cd 4 @ 0x0804962c
Cd 4 @ 0x08049630
Cd 4 @ 0x08049634
Cd 4 @ 0x08049638
Cd 4 @ 0x0804963c
Cd 4 @ 0x08049640
Cd 4 @ 0x08049644
Cd 4 @ 0x08049648
Cd 4 @ 0x0804964c
Cd 4 @ 0x08049650
Cd 4 @ 0x08049654
Cd 4 @ 0x08049658
Cd 4 @ 0x0804965c
Cd 4 @ 0x08049660
Cd 4 @ 0x08049664
Cd 4 @ 0x08049668
Cd 4 @ 0x0804966c
Cd 4 @ 0x08049670
Cd 4 @ 0x08049674
Cd 4 @ 0x08049678
Cd 4 @ 0x0804967c
Cd 4 @ 0x08049680
Cd 4 @ 0x08049684
Cd 4 @ 0x08049688
Cd 4 @ 0x0804968c
Cd 4 @ 0x08049690
CCu base64:WzIyXSAtcnctIHNlY3Rpb24gc2l6ZSA0IG5hbWVkIC5nb3Q= @ 0x08049690
CCu base64:WzIzXSAtcnctIHNlY3Rpb24gc2l6ZSAyNCBuYW1lZCAuZ290LnBsdA== @ 0x08049694
Cd 4 @ 0x080496a0
Cd 4 @ 0x080496a4
Cd 4 @ 0x080496a8
CCu base64:WzI0XSAtcnctIHNlY3Rpb24gc2l6ZSA4IG5hbWVkIC5kYXRh @ 0x080496ac
CCu base64:WzI1XSAtcnctIHNlY3Rpb24gc2l6ZSA0IG5hbWVkIC5ic3M= @ 0x080496b4
EOF
RUN

NAME=flags spaces
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=fs
EXPECT=<<EOF
    0 * classes
    3 * imports
    3 * relocs
   30 * sections
    9 * segments
    1 * strings
   34 * symbols
   26 * symbols.sections
EOF
RUN

NAME=flags spaces after analysis
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=<<EOF
aa;fs *;fs
afl~?
EOF
EXPECT=<<EOF
    0 * classes
    0 * functions
    3 * imports
    3 * relocs
   30 * sections
    9 * segments
    1 * strings
   34 * symbols
   26 * symbols.sections
14
EOF
RUN

NAME=flags spaces after analysis again
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=s entry0+4; af;fs *;fs
EXPECT=<<EOF
    0 * classes
    1 * functions
    3 * imports
    3 * relocs
   30 * sections
    9 * segments
    1 * strings
   34 * symbols
   26 * symbols.sections
EOF
RUN

NAME=pb 4
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=pb 4
EXPECT=<<EOF
0011
EOF
RUN

NAME=pxW 10
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=pxW 10
EXPECT=<<EOF
0x08048300 0x895eed31
0x08048304 0xf0e483e1
EOF
RUN

NAME=p-
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=<<EOF
0x8048000
e search.in=io.map
p-
e search.in=io.maps
p-
EOF
EXPECT=<<EOF
0x08048000 [^._______ss_s__s_sss_ssssss_ss_ss__sz_s____] 0x0804859c
0x08048000 [^_sssssszss_____________________________sss] 0x080496b8
EOF
RUN

NAME=pu 10
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=pu 10
EXPECT=<<EOF
%31%ed%5e%89%e1%83%e4%f0%50%54
EOF
RUN

NAME=pdn 10
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=<<EOF
e asm.bytes=true
e scr.color=0
pDi 10
EOF
EXPECT=<<EOF
0x08048300   sym._start:
0x08048300                 31ed  xor ebp, ebp
0x08048302                   5e  pop esi
0x08048303                 89e1  mov ecx, esp
0x08048305               83e4f0  and esp, 0xfffffff0
0x08048308                   50  push eax
0x08048309                   54  push esp
EOF
RUN

NAME=pi 12
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=pi 12
EXPECT=<<EOF
xor ebp, ebp
pop esi
mov ecx, esp
and esp, 0xfffffff0
push eax
push esp
push edx
push sym.__libc_csu_fini
push sym.__libc_csu_init
push ecx
push esi
push main
EOF
RUN

NAME=pc C
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=pc
EXPECT=<<EOF
#define _BUFFER_SIZE 256
const uint8_t buffer[_BUFFER_SIZE] = {
  0x31, 0xed, 0x5e, 0x89, 0xe1, 0x83, 0xe4, 0xf0, 0x50, 0x54,
  0x52, 0x68, 0x90, 0x84, 0x04, 0x08, 0x68, 0x20, 0x84, 0x04,
  0x08, 0x51, 0x56, 0x68, 0x00, 0x84, 0x04, 0x08, 0xe8, 0xcf,
  0xff, 0xff, 0xff, 0xf4, 0x66, 0x90, 0x66, 0x90, 0x66, 0x90,
  0x66, 0x90, 0x66, 0x90, 0x66, 0x90, 0x66, 0x90, 0x8b, 0x1c,
  0x24, 0xc3, 0x66, 0x90, 0x66, 0x90, 0x66, 0x90, 0x66, 0x90,
  0x66, 0x90, 0x66, 0x90, 0xb8, 0xb7, 0x96, 0x04, 0x08, 0x2d,
  0xb4, 0x96, 0x04, 0x08, 0x83, 0xf8, 0x06, 0x77, 0x01, 0xc3,
  0xb8, 0x00, 0x00, 0x00, 0x00, 0x85, 0xc0, 0x74, 0xf6, 0x55,
  0x89, 0xe5, 0x83, 0xec, 0x18, 0xc7, 0x04, 0x24, 0xb4, 0x96,
  0x04, 0x08, 0xff, 0xd0, 0xc9, 0xc3, 0x8d, 0xb6, 0x00, 0x00,
  0x00, 0x00, 0xb8, 0xb4, 0x96, 0x04, 0x08, 0x2d, 0xb4, 0x96,
  0x04, 0x08, 0xc1, 0xf8, 0x02, 0x89, 0xc2, 0xc1, 0xea, 0x1f,
  0x01, 0xd0, 0xd1, 0xf8, 0x75, 0x01, 0xc3, 0xba, 0x00, 0x00,
  0x00, 0x00, 0x85, 0xd2, 0x74, 0xf6, 0x55, 0x89, 0xe5, 0x83,
  0xec, 0x18, 0x89, 0x44, 0x24, 0x04, 0xc7, 0x04, 0x24, 0xb4,
  0x96, 0x04, 0x08, 0xff, 0xd2, 0xc9, 0xc3, 0x89, 0xf6, 0x8d,
  0xbc, 0x27, 0x00, 0x00, 0x00, 0x00, 0x80, 0x3d, 0xb4, 0x96,
  0x04, 0x08, 0x00, 0x75, 0x13, 0x55, 0x89, 0xe5, 0x83, 0xec,
  0x08, 0xe8, 0x7c, 0xff, 0xff, 0xff, 0xc6, 0x05, 0xb4, 0x96,
  0x04, 0x08, 0x01, 0xc9, 0xf3, 0xc3, 0x66, 0x90, 0xa1, 0xa4,
  0x95, 0x04, 0x08, 0x85, 0xc0, 0x74, 0x1f, 0xb8, 0x00, 0x00,
  0x00, 0x00, 0x85, 0xc0, 0x74, 0x16, 0x55, 0x89, 0xe5, 0x83,
  0xec, 0x18, 0xc7, 0x04, 0x24, 0xa4, 0x95, 0x04, 0x08, 0xff,
  0xd0, 0xc9, 0xe9, 0x79, 0xff, 0xff, 0xff, 0x90, 0xe9, 0x73,
  0xff, 0xff, 0xff, 0x66, 0x90, 0x90
};
EOF
RUN

NAME=flags (total)
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=f~?
EXPECT=<<EOF
106
EOF
RUN

NAME=flags
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=f
EXPECT=<<EOF
0x00000000 0 section.
0x00000000 17 section..comment
0x00000000 262 section..shstrtab
0x00000000 1104 section..symtab
0x00000000 599 section..strtab
0x00000000 0 segment.GNU_STACK
0x00000000 0 sym..comment
0x08048000 1436 segment.LOAD0
0x08048000 52 segment.ehdr
0x08048034 256 segment.PHDR
0x08048134 19 section..interp
0x08048134 19 segment.INTERP
0x08048134 0 sym..interp
0x08048148 32 section..note.ABI_tag
0x08048148 68 segment.NOTE
0x08048148 0 sym..note.ABI_tag
0x08048168 36 section..note.gnu.build_id
0x08048168 0 sym..note.gnu.build_id
0x0804818c 32 section..gnu.hash
0x0804818c 0 sym..gnu.hash
0x080481ac 80 section..dynsym
0x080481ac 0 sym..dynsym
0x080481fc 74 section..dynstr
0x080481fc 0 sym..dynstr
0x08048246 10 section..gnu.version
0x08048246 0 sym..gnu.version
0x08048250 32 section..gnu.version_r
0x08048250 0 sym..gnu.version_r
0x08048270 8 section..rel.dyn
0x08048270 0 sym..rel.dyn
0x08048278 24 section..rel.plt
0x08048278 0 sym..rel.plt
0x08048290 35 section..init
0x08048290 0 sym..init
0x08048290 0 sym._init
0x080482c0 64 section..plt
0x080482c0 0 sym..plt
0x080482d0 16 sym.imp.puts
0x080482e0 16 loc.imp.__gmon_start
0x080482f0 16 sym.imp.__libc_start_main
0x08048300 1 entry0
0x08048300 404 section..text
0x08048300 0 sym..text
0x08048300 0 sym._start
0x08048330 4 sym.__x86.get_pc_thunk.bx
0x08048340 0 sym.deregister_tm_clones
0x08048370 0 sym.register_tm_clones
0x080483b0 1 entry.fini0
0x080483b0 0 sym.__do_global_dtors_aux
0x080483d0 1 entry.init0
0x080483d0 0 sym.frame_dummy
0x08048400 256 main
0x08048400 28 sym.main
0x08048420 97 sym.__libc_csu_init
0x08048490 2 sym.__libc_csu_fini
0x08048494 20 section..fini
0x08048494 0 sym..fini
0x08048494 0 sym._fini
0x080484a8 21 section..rodata
0x080484a8 0 sym..rodata
0x080484a8 4 obj._fp_hw
0x080484ac 4 obj._IO_stdin_used
0x080484b0 13 str.Hello_world
0x080484c0 44 section..eh_frame_hdr
0x080484c0 44 segment.GNU_EH_FRAME
0x080484c0 0 sym..eh_frame_hdr
0x080484ec 176 section..eh_frame
0x080484ec 0 sym..eh_frame
0x08048598 0 obj.__FRAME_END
0x0804959c 4 section..init_array
0x0804959c 284 segment.LOAD1
0x0804959c 0 sym..init_array
0x0804959c 0 obj.__frame_dummy_init_array_entry
0x0804959c 0 loc.__init_array_start
0x080495a0 4 section..fini_array
0x080495a0 0 sym..fini_array
0x080495a0 0 obj.__do_global_dtors_aux_fini_array_entry
0x080495a0 0 loc.__init_array_end
0x080495a4 4 section..jcr
0x080495a4 0 sym..jcr
0x080495a4 0 obj.__JCR_LIST
0x080495a4 0 obj.__JCR_END
0x080495a8 232 section..dynamic
0x080495a8 232 segment.DYNAMIC
0x080495a8 0 sym..dynamic
0x080495a8 0 obj._DYNAMIC
0x08049690 4 section..got
0x08049690 0 sym..got
0x08049694 24 section..got.plt
0x08049694 0 sym..got.plt
0x08049694 0 obj._GLOBAL_OFFSET_TABLE
0x080496a0 4 reloc.puts
0x080496a4 4 reloc.__gmon_start
0x080496a8 4 reloc.__libc_start_main
0x080496ac 8 section..data
0x080496ac 0 sym..data
0x080496ac 0 loc.data_start
0x080496ac 0 loc.__data_start
0x080496b0 0 obj.__dso_handle
0x080496b4 4 section..bss
0x080496b4 0 sym..bss
0x080496b4 1 obj.completed.5979
0x080496b4 0 loc._edata
0x080496b4 0 loc.__bss_start
0x080496b4 0 obj.__TMC_END
0x080496b8 0 loc._end
EOF
RUN

NAME=x86 - pdj 4
FILE=bins/elf/analysis/x86-helloworld-gcc
CMDS=<<EOF
pdj 4~{}
?e
EOF
EXPECT=<<EOF
[
  {
    "offset": 134513408,
    "esil": "ebp,ebp,^=,$z,zf,:=,$p,pf,:=,31,$s,sf,:=,0,cf,:=,0,of,:=",
    "refptr": false,
    "fcn_addr": 0,
    "fcn_last": 0,
    "size": 2,
    "opcode": "xor ebp, ebp",
    "disasm": "xor ebp, ebp",
    "bytes": "31ed",
    "family": "cpu",
    "type": "xor",
    "reloc": false,
    "type_num": 28,
    "type2_num": 0,
    "flags": [
      "entry0",
      "section..text",
      "sym..text",
      "sym._start"
    ],
    "comment": "WzEzXSAtci14IHNlY3Rpb24gc2l6ZSA0MDQgbmFtZWQgLnRleHQ="
  },
  {
    "offset": 134513410,
    "esil": "esp,[4],esi,=,4,esp,+=",
    "refptr": false,
    "fcn_addr": 0,
    "fcn_last": 0,
    "size": 1,
    "opcode": "pop esi",
    "disasm": "pop esi",
    "bytes": "5e",
    "family": "cpu",
    "type": "pop",
    "reloc": false,
    "type_num": 14,
    "type2_num": 0
  },
  {
    "offset": 134513411,
    "esil": "esp,ecx,=",
    "refptr": false,
    "fcn_addr": 0,
    "fcn_last": 0,
    "size": 2,
    "opcode": "mov ecx, esp",
    "disasm": "mov ecx, esp",
    "bytes": "89e1",
    "family": "cpu",
    "type": "mov",
    "reloc": false,
    "type_num": 9,
    "type2_num": 0
  },
  {
    "offset": 134513413,
    "val": 4294967280,
    "esil": "4294967280,esp,&=,$z,zf,:=,$p,pf,:=,31,$s,sf,:=,0,cf,:=,0,of,:=",
    "refptr": false,
    "fcn_addr": 0,
    "fcn_last": 0,
    "size": 3,
    "opcode": "and esp, 0xfffffff0",
    "disasm": "and esp, 0xfffffff0",
    "bytes": "83e4f0",
    "family": "cpu",
    "type": "and",
    "reloc": false,
    "type_num": 27,
    "type2_num": 0
  }
]


EOF
RUN
