# SPDX-FileCopyrightText: 2021 RizinOrg <info@rizin.re>
# SPDX-License-Identifier: LGPL-3.0-only
---
name: cmd_print
commands:
  - name: p2
    summary: Print 8x8 2bpp tiles.
    cname: cmd_print_2bpp_tiles
    args:
      - name: n
        type: RZ_CMD_ARG_TYPE_RZNUM
        optional: true
  - name: p8
    summary: Print 8bit hexpair list of bytes.
    subcommands:
      - name: p8
        summary: Print 8bit hexpair list of bytes.
        cname: cmd_print_8bit_hexpair
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: n
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p8f
        summary: Print 8bit hexpair list of bytes in function (linear).
        cname: cmd_print_8bit_hexpair_function
        args: []
  - name: pb
    summary: Print bitstream of <n> bits, skipping the first <skip> bits.
    cname: print_bitstream
    modes:
      - RZ_OUTPUT_MODE_STANDARD
    args:
      - name: n
        type: RZ_CMD_ARG_TYPE_RZNUM
      - name: skip
        type: RZ_CMD_ARG_TYPE_RZNUM
        default_value: 0
  - name: pB
    summary: Print bitstream of <n> bytes
    cname: print_byte_bitstream
    modes:
      - RZ_OUTPUT_MODE_STANDARD
    args:
      - name: n
        type: RZ_CMD_ARG_TYPE_RZNUM
  - name: pa
    summary: Print (dis)assembly of given hexpairs/assembly
    subcommands:
      - name: pa
        summary: Print hexpairs of the given assembly expression
        cname: hex_of_assembly
        modes:
          - RZ_OUTPUT_MODE_STANDARD
        args:
          - name: assembly
            type: RZ_CMD_ARG_TYPE_STRING
            optional: false
      - name: pae
        summary: Print ESIL expression of the given assembly expression
        cname: esil_of_assembly
        modes:
          - RZ_OUTPUT_MODE_STANDARD
        args:
          - name: assembly
            type: RZ_CMD_ARG_TYPE_STRING
            optional: false
      - name: pad
        summary: Print assembly expression from hexpairs (alias for pix)
        cname: assembly_of_hex
        modes:
          - RZ_OUTPUT_MODE_STANDARD
        args:
          - name: hexpair
            type: RZ_CMD_ARG_TYPE_STRING
            optional: false
      - name: pade
        summary: Print ESIL expression from hexpairs
        cname: esil_of_hex
        modes:
          - RZ_OUTPUT_MODE_STANDARD
        args:
          - name: hexpair
            type: RZ_CMD_ARG_TYPE_STRING
            optional: false
  - name: pc
    summary: Print bytes as code byte arrays.
    cname: cmd_print_byte_array
    details:
      - name: Useful modifiers
        entries:
          - text: "pch @e:cfg.bigendian=<true|false>"
            comment: "Change endianness for pch, pcw and pcd commands"
          - text: "pc @! <n>"
            comment: "Change the N of bytes (i.e. block size)."
      - name: Example of usages
        entries:
          - text: "pch @! 64 @e:cfg.bigendian=true"
            comment: "Generate a C 32 bits array in big endian format, using 64 bytes"
          - text: "pcp 1024"
            comment: "Generate a Python byte array of size 1024"
          - text: "pcj 10"
            comment: "Generate a JSON bytes array of size 10"
    subcommands:
      - name: pc
        summary: Generate a C/C++ byte array.
        cname: cmd_print_byte_array_c_cpp_bytes
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pch
        summary: Generate a C/C++ 16 bits array.
        cname: cmd_print_byte_array_c_cpp_half_word
        args: []
      - name: pcw
        summary: Generate a C/C++ 32 bits array.
        cname: cmd_print_byte_array_c_cpp_word
        args: []
      - name: pcd
        summary: Generate a C/C++ 64 bits array.
        cname: cmd_print_byte_array_c_cpp_double_word
        args: []
      - name: pca
        summary: Generate a byte array in GAS assembly.
        cname: cmd_print_byte_array_asm
        args:
          - name:  len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pcA
        summary: Generate a byte array in GAS assembly with instructions in comments.
        cname: cmd_print_byte_array_with_inst
        args:
          - name:  len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pcb
        summary: Generate a bash script with the byte array.
        cname: cmd_print_byte_array_bash
        args:
          - name:  len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pcg
        summary: Generate a Golang byte array.
        cname: cmd_print_byte_array_golang
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pcJ
        summary: Generate a Java byte array.
        cname: cmd_print_byte_array_java
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pcj
        summary: Generate a JSON byte array.
        cname: cmd_print_byte_array_json
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pck
        summary: Generate a Kotlin byte array.
        cname: cmd_print_byte_array_kotlin
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pcn
        summary: Generate a NodeJS buffer.
        cname: cmd_print_byte_array_nodejs
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pco
        summary: Generate a Objective-C/C++ byte array.
        cname: cmd_print_byte_array_objc
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pcp
        summary: Generate a Python byte array.
        cname: cmd_print_byte_array_python
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pcr
        summary: Generate a Rust byte array.
        cname: cmd_print_byte_array_rust
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pcs
        summary: Generate a Swift byte array.
        cname: cmd_print_byte_array_swift
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pcy
        summary: Generate a Yara match pattern.
        cname: cmd_print_byte_array_yara
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pc*
        summary: Generate a rizin commands for writing the byte array.
        cname: cmd_print_byte_array_rizin
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
  - name: pD
    summary: Disassemble N bytes (can be negative)
    cname: cmd_disassembly_n_bytes
    type: RZ_CMD_DESC_TYPE_ARGV_STATE
    modes:
      - RZ_OUTPUT_MODE_STANDARD
      - RZ_OUTPUT_MODE_QUIET
      - RZ_OUTPUT_MODE_TABLE
      - RZ_OUTPUT_MODE_JSON
    args:
      - name: n_bytes
        type: RZ_CMD_ARG_TYPE_RZNUM
        optional: true
  - name: pC
    summary: Print disassembly in columns
    subcommands:
      - name: pCd
        summary: Print <len> lines of instructions disassembly in columns
        cname: print_columns_disassembly
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pCD
        summary: Print <len> lines of the debug registers and stack in columns
        cname: print_columns_debug
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pCa
        summary: Print <len> lines of annotated hexdump in columns
        cname: print_columns_hex_annotated
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pCA
        summary: Print <len> lines of op analysis color map in columns
        cname: print_columns_hex_op_colored
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pCx
        summary: Print <len> lines of hexdump in columns
        cname: print_columns_hex
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pCw
        summary: Print <len> lines of 4-byte integer hexdump in columns
        cname: print_columns_hex_words
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
  - name: pd
    summary: Print Disassembly
    cname: cmd_print_disassembly
    subcommands:
      - name: pd
        summary: Disassemble N instructions (can be negative)
        cname: cmd_disassembly_n_instructions
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_QUIET # replaces pdi
          - RZ_OUTPUT_MODE_TABLE
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: n_instrs
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pda
        summary: Disassemble all possible opcodes (byte per byte)
        cname: cmd_disassembly_all_opcodes
        subcommands:
          - name: pda
            summary: Disassemble all possible opcodes (byte per byte)
            cname: cmd_disassembly_all_possible_opcodes
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_QUIET
              - RZ_OUTPUT_MODE_JSON
            args:
              - name: n_bytes
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
          - name: pda=
            summary: Disassemble all possible opcodes (treeview)
            cname: cmd_disassembly_all_possible_opcodes_treeview
            args:
              - name: n_bytes
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
      - name: pdb
        summary: Disassemble basic block
        cname: cmd_disasm_basic_block
        subcommands:
          - name: pdb
            summary: Disassemble basic block
            cname: cmd_disassembly_basic_block
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
            args: []
          - name: pdbJ
            summary: Disassemble basic block as json containing the printed text
            cname: cmd_disassembly_basic_block_as_text_json
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_STANDARD
            args: []
      - name: pdC
        summary: Prints the comments found in N instructions
        cname: cmd_comments_in_n_instructions
        args:
          - name: n_instrs
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pde
        summary: Disassemble N instructions following execution flow from current PC
        cname: cmd_disassembly_n_instructions_with_flow
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
          - RZ_OUTPUT_MODE_QUIET
          - RZ_OUTPUT_MODE_QUIETEST
        args:
          - name: n_instrs
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pdf
        summary: Disassemble a function
        cname: cmd_disasm_func
        subcommands:
          - name: pdf
            summary: Disassemble a function
            cname: cmd_disassembly_function
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
            args: []
          - name: pdfs
            summary: Disassemble a function and outputs the summary of it.
            cname: cmd_disassembly_function_summary
            args: []
      - name: pdJ
        summary: Disassemble N instructions as json containing the printed text
        cname: cmd_disassembly_n_instrs_as_text_json
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
        args:
          - name: n_instrs
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pdk
        summary: Disassemble all methods of a class
        cname: cmd_disassembly_all_methods_class
        args: []
      - name: pdl
        summary: Disassemble N instructions and prints its sizes
        cname: cmd_sizes_of_n_instructions
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: n_instrs
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pdp
        summary: Disassemble instructions and follows pointers to read ropchains
        cname: cmd_disassemble_ropchain
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_QUIET
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: limit
            type: RZ_CMD_ARG_TYPE_NUM
            optional: true
      - name: pdr
        summary: Disassemble recursively across the function graph
        cname: cmd_disassemble_recursive
        subcommands:
          - name: pdr
            summary: Disassemble recursively across the function graph
            cname: cmd_disassemble_recursively
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
            args: []
          - name: pdr.
            summary: Disassemble recursively across the function graph (from current basic block)
            cname: cmd_disassemble_recursively_from_current_block
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
            args: []
      - name: pdR
        summary: Disassemble recursively the block size bytes without analyzing functions
        cname: cmd_disassemble_recursively_no_function
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_QUIET
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: pds
        summary: Summarize N bytes or current block or a function (strings, calls, jumps, refs)
        cname: cmd_disassemble_summarize
        subcommands:
          - name: pds
            summary: Summarize N bytes
            cname: cmd_disassemble_summarize_n_bytes
            args:
              - name: n_bytes
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
          - name: pdsf
            summary: Summarize the current function
            cname: cmd_disassemble_summarize_function
            args: []
          - name: pdsb
            summary: Summarize current block
            cname: cmd_disassemble_summarize_block
            args: []
  - name: pf
    summary: Print formatted data
    subcommands:
      - name: pf
        summary: Show data using given format string
        cname: cmd_print_format
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
          - RZ_OUTPUT_MODE_QUIET
        args:
          - name: format
            type: RZ_CMD_ARG_TYPE_STRING
      - name: pf-
        summary: Remove named format
        cname: cmd_print_format_delete
        args:
          - name: formatname
            type: RZ_CMD_ARG_TYPE_PF_FORMAT_NAME
      - name: pf-*
        summary: Remove all named formats
        cname: cmd_print_format_delete_all
        args: []
      - name: pfa
        summary: Apply format string at given address and define flags for each field
        cname: cmd_print_format_apply
        args:
          - name: format
            type: RZ_CMD_ARG_TYPE_PF_FORMAT_NAME
      - name: pfc
        summary: Show data using given format string with C syntax
        cname: cmd_print_format_c
        args:
          - name: format
            type: RZ_CMD_ARG_TYPE_PF_FORMAT_NAME
      - name: pfd
        summary: Show data using given format string as DOT
        cname: cmd_print_format_dot
        args:
          - name: format
            type: RZ_CMD_ARG_TYPE_PF_FORMAT_NAME
      - name: pf.
        summary: Show data using given named format
        cname: cmd_print_format_named_dot
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
          - RZ_OUTPUT_MODE_QUIET
        args:
          - name: formatname
            type: RZ_CMD_ARG_TYPE_PF_FORMAT_PATH
            optional: true
      - name: pfn
        summary: List named formats/Print named format string/Define a new named format
        cname: cmd_print_format_named
        args:
          - name: formatname
            type: RZ_CMD_ARG_TYPE_PF_FORMAT_NAME
            optional: true
          - name: formatstring
            type: RZ_CMD_ARG_TYPE_STRING
            optional: true
      - name: pfo
        summary: Load a Format Definition File (FDF)
        cname: cmd_print_format_file
        args:
          - name: file
            type: RZ_CMD_ARG_TYPE_PF_FDF_FILE
            optional: true
      - name: pfs
        summary: Print the size of format in bytes
        cname: cmd_print_format_size
        args:
          - name: format
            type: RZ_CMD_ARG_TYPE_PF_FORMAT_NAME
      - name: pfv
        summary: Print the value for named format
        cname: cmd_print_format_value
        args:
          - name: format
            type: RZ_CMD_ARG_TYPE_PF_FORMAT_NAME
      - name: pfw
        summary: Write data using given format string
        cname: cmd_print_format_write
        args:
          - name: format
            type: RZ_CMD_ARG_TYPE_PF_FORMAT_PATH
          - name: value
            type: RZ_CMD_ARG_TYPE_STRING
            optional: true
    details:
      - name: Sized integers (lowercase=LE UPPER=BE)
        entries:
          - text: "x1 / x2 / x4 / x8"
            comment: "hex unsigned, N bytes"
          - text: "d1 / d2 / d4 / d8"
            comment: "decimal signed, N bytes"
          - text: "u1 / u2 / u4 / u8"
            comment: "decimal unsigned, N bytes"
          - text: "o1 / o2 / o4 / o8"
            comment: "octal, N bytes"
          - text: "b1 / b2 / b4 / b8"
            comment: "binary, N bytes"
          - text: "n1 / n2 / n4 / n8"
            comment: >
              hex unsigned, N bytes; endian comes from the active pf
              parsing context (set by pf -e, by a parent V/B's e=...,
              or by the embedding caller), not from the spec's case;
              useful when the byte order isn't fixed in the format
              itself (file headers with an endian marker, embedded
              protocols, serialised records)
          - text: "f2 / f4 / f8"
            comment: "IEEE 754 float, 2/4/8 bytes (half/single/double)"
      - name: Special scalars
        entries:
          - text: "c"
            comment: "single byte rendered as character"
          - text: "p / p2 / p4 / p8"
            comment: "pointer: bare p uses ctx.bits (2/4/8 bytes); p2/p4/p8 force the width"
          - text: "Q"
            comment: "uint128_t (16 bytes, byte-sequential)"
          - text: "r"
            comment: "raw hex byte dump (count via [N])"
          - text: "U / L"
            comment: "ULEB128 / SLEB128 (variable length)"
      - name: Strings (encoding-aware)
        entries:
          - text: "z"
            comment: "inline NUL-terminated string"
          - text: "z(utf16le)"
            comment: "encoding override (utf8, utf16le, utf16be, utf32le, utf32be, ibm037, ebcdic_us, ...)"
          - text: "z[N]"
            comment: "length-prefixed string, N-byte prefix (1/2/4/8), length is in characters"
          - text: "z(utf16le)[2b]"
            comment: "length prefix in BYTES (MS BSTR style); suffix 'b' switches the unit"
          - text: "s"
            comment: "pointer to NUL-terminated string (dereferences via read_at)"
      - name: Timestamps (parameterised)
        entries:
          - text: "t(unix32) / T(unix32)"
            comment: "wire format inside the parens; case selects LE/BE"
          - text: "supported formats"
            comment: "unix32, unix64, unixms, unixus, unixns, filetime (alias ntfs), dos, hfs, oletime, webkit, cocoa"
      - name: Typed composites
        entries:
          - text: "E (enum_type)"
            comment: "4-byte enum, name resolved via typedb"
          - text: "B (bitfield_type)"
            comment: "4-byte bitfield, name resolved via typedb"
          - text: "B4(R=1,W=2,X=4)"
            comment: "inline bitfield with named flags (size = 1/2/4/8 byte BN)"
          - text: "? (struct_type)"
            comment: "nested struct, name resolved via typedb"
          - text: "0..."
            comment: "leading '0' marks the format as a union (all fields share offset 0)"
      - name: DSL extensions
        entries:
          - text: "@N"
            comment: "align cursor up to next N-byte boundary (no value, no name)"
          - text: ":N"
            comment: "read N bits (1..64) from packed bitstream; MSB-first by default"
          - text: ":N< / :N>"
            comment: "explicit bit order: < = LSB-first, > = MSB-first"
          - text: "G"
            comment: "16-byte GUID/UUID, mixed-endian (MS) layout by default"
          - text: "G(le) / G(be)"
            comment: >
              GUID layout: G(le) is LE on D1/D2/D3 (D4 stays raw,
              effectively the MS layout); G(be) is RFC 4122 BE
          - text: "V(t=u1,l=u2,d=table)"
            comment: >
              TLV record; t=tag, l=length, e=le/be, h=v/l/a (len
              covers value / len+value / tag+len+value), d=dispatch
              table
          - text: "v(N) / v(N,lsb) / v(N,msb)"
            comment: >
              bitvector: N individual bits (1..4096) exposed as
              separate 0/1 scalars; consumes ceil(N/8) bytes; bytes
              are always shown low-address to high; within each byte
              the default (msb) prints bit 7 first through bit 0,
              while lsb flips that to bit 0 first through bit 7
          - text: "[@field_name]T"
            comment: "array whose length comes from an earlier scalar field"
      - name: Skip / repeat / pointers
        entries:
          - text: "."
            comment: "skip 1 byte; [N]. skips N bytes"
          - text: "3..."
            comment: "leading integer repeats the whole format N times"
          - text: "{N}..."
            comment: "alternate repeat syntax"
          - text: "*T"
            comment: "field is a pointer to T (dereferenced via read_at)"
          - text: "[N]T"
            comment: "fixed-size array of N elements of T"
      - name: Examples
        entries:
          - text: "pf 'x4 d2 u8 z magic ver size name'"
            comment: "header with hex u32, signed s16, unsigned u64, NUL-terminated string"
          - text: "pf 'B4(R=1,W=2,X=4,KERN=0x100) perms'"
            comment: "inline bitfield with named flags"
          - text: "pf 'u1 [@count] x4 count items'"
            comment: "u8 count, then that many u32 hex values"
          - text: "pf 'z(utf16le)[2b] bstr'"
            comment: "BSTR-style: 2-byte length prefix counting bytes, UTF-16 LE body"
          - text: "pf ':1 :7 x4 flag rest tail'"
            comment: "bit-level: 1 bit then 7 bits, then 4 bytes"
          - text: "pf 'G(be) uuid'"
            comment: "RFC 4122 big-endian UUID"
          - text: "pf 'V(t=u1,l=u2,d=usb_desc) record'"
            comment: "TLV dispatched via the 'usb_desc' tag-to-format table"
          - text: "pf 't(filetime) created'"
            comment: "8-byte Windows FILETIME timestamp"
          - text: "pf '3 0x4d4 a b'"
            comment: "repeat 3 times, union with fields x4 and d4"
          - text: "pf '? (mytype) field'"
            comment: "nested struct of typedb format 'mytype'"
      - name: Notes
        entries:
          - text: "bit order"
            comment: ":N defaults to MSB-first (matches DWARF and most network protocols); use <N for LSB-first"
          - text: "endian via case"
            comment: "lowercase specifier = little-endian, UPPERCASE = big-endian"
          - text: "context endian"
            comment: "n1/n2/n4/n8 take the active pf parsing context's current endian setting, not the spec's case"
          - text: "skip vs alignment"
            comment: "'.' / '[N].' skip an exact number of bytes; '@N' pads to the next N-byte boundary"
          - text: "deprecation"
            comment: >
              bare-letter codes (b, C, d, f, F, i, o, q, t, T, w, x,
              X, Z) still parse with a one-time warning; use the
              sized or parenthesised forms in new code
          - text: "pf 'X2D4u8 bigWord beef qword'"
            comment: "BE u16, BE s32, LE u64 -- one of every endianness/sign combination"
          - text: "pfn foo 'rr (eax)reg1 (eip)reg2'"
            comment: "Create object foo referencing two registers"
          - text: "pf 't(unix32)t(unix32) troll plop'"
            comment: "Print two unix-epoch (32-bit) timestamps with labels 'troll' and 'plop'"
  - name: pF
    summary: Deserializes ASN.1, PKCS, X509, ProtoBuf, AXML, etc.. formats
    subcommands:
      - name: pFa
        summary: Deserializes the ASN.1 DER structure from the current block
        subcommands:
        - name: pFa
          summary: Deserializes the ASN.1 DER structure from the current block as a hexdump.
          cname: cmd_print_asn1
          modes:
            - RZ_OUTPUT_MODE_STANDARD
          args: []
        - name: pFas
          summary: Deserializes the ASN.1 DER structure from the current block as a structured data format.
          cname: cmd_print_asn1_structure
          type: RZ_CMD_DESC_TYPE_ARGV_STATE
          modes:
            - RZ_OUTPUT_MODE_STANDARD
            - RZ_OUTPUT_MODE_JSON
            - RZ_OUTPUT_MODE_QUIET
          args: []
      - name: pFb
        summary: Deserializes raw protobuf from current block as a hexdump.
        cname: cmd_print_protobuf
        subcommands:
          - name: pFb
            summary: Deserializes raw protobuf from current block as a hexdump.
            cname: cmd_print_protobuf_standard
            args: []
          - name: pFbv
            summary: Deserializes raw protobuf from current block  as a hexdump(verbose).
            cname: cmd_print_protobuf_verbose
            args: []
      - name: pFp
        summary: Deserializes PKCS7 from current block as a structured data format.
        cname: cmd_print_pkcs7
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: pFx
        summary: Deserializes X.509 from current block as a structured data format.
        cname: cmd_print_x509
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: pF8
        summary: Deserializes PKCS#8 private keys from current block as a structured data format.
        cname: cmd_print_pkcs8_pkey
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: pFA
        summary: Deserializes Android Binary XML from current block as XML format.
        cname: cmd_print_axml
        args: []
  - name: ph
    summary: Print hash/message digest or entropy
    cname: cmd_print_default
    subcommands:
      - name: ph
        summary: Prints a hash/message digest or entropy (use @! to change the block size)
        cname: cmd_print_hash_cfg
        args:
          - name: algo
            type: RZ_CMD_ARG_TYPE_STRING
      - name: phl
        summary: Lists all the supported algorithms
        cname: cmd_print_hash_cfg_algo_list
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_TABLE
          - RZ_OUTPUT_MODE_JSON
          - RZ_OUTPUT_MODE_QUIET
        args: []
  - name: pi
    summary: Print instructions
    subcommands:
      - name: pi
        summary: Disassemble and print <N> instructions
        cname: print_instr
        args:
          - name: N
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pia
        summary: Print all possible opcodes (byte by byte)
        cname: print_instr_opcodes
        args:
          - name: N
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pib
        summary: Print all instructions in a basic block
        cname: print_instr_block
        args: []
      - name: pie
        summary: Print offset and ESIL expression
        cname: print_instr_esil
        args:
          - name: N
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pif
        summary: Print all instructions at the current function
        cname: print_instr_function
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: pifc
        summary: Print only call instructions at the current function
        cname: print_calls_function
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: pir
        summary: Print instructions using recursive disassembly algorithm
        cname: print_instr_recursive
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: pir.
        summary: Print instructions using recursive disassembly algorithm from the current position
        cname: print_instr_recursive_at
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: piu
        summary: Print all instructions until first ret/jmp
        cname: print_instr_until
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_QUIET
        args:
          - name: limit
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pix
        summary: Print assembly expression from hexpairs (alias for pad)
        cname: assembly_of_hex_alias
        modes:
          - RZ_OUTPUT_MODE_STANDARD
        args:
          - name: hexpair
            type: RZ_CMD_ARG_TYPE_STRING
            optional: false
  - name: pI
    summary: Print instructions
    subcommands:
      - name: pI
        summary: Disassemble and print <N> bytes
        cname: print_instructions
        args:
          - name: N
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pIf
        summary: Print all instructions at the current function
        cname: print_instructions_function
        args: []
  - name: pj
    summary: Parse, format and print JSON at current offset.
    cname: print_current_block_json
    args: []
  - name: pl
    summary: Print RzIL
    cname: cmd_print_rzil
    subcommands:
      - name: plf
        summary: Print RzIL of the function
        cname: print_function_rzil
        args: []
      - name: plF
        summary: Print unicode RzIL of the function at current seek.
        description: >-
          Prints the RzIL of the function at current seek using unicode special characters.
          This command requires 'scr.utf8=true', use 'plf' for plain ASCII output.
        cname: print_function_rzil_enriched
        args: []
        details:
          - name: General
            entries:
              - text: "Set"
                arg_str: " x ← y"
                comment: "Set (assign) y to x."
              - text: "Let"
                arg_str: " (x = exp body)"
                comment: "Let binding (expression-scoped)."
              - text: "ITE"
                arg_str: " (cond ↠ x y)"
                comment: "If-Then-Else (ITE)."
              - text: "Jump"
                arg_str: " ↷ dst"
                comment: "Jump to dst."
              - text: "Goto"
                arg_str: " @ l"
                comment: "Goto label l."
              - text: "Branch"
                arg_str: " (cond ⅄ true_eff false_eff)"
                comment: "Branch (Conditional)."
              - text: "Repeat"
                arg_str: " (cond ⟳ eff)"
                comment: "Repeat eff until cond is true."
              - text: "Empty"
                arg_str: " {}"
                comment: "Empty RzIL op."
              - text: "NOP"
                arg_str: " ɴᴏᴘ"
                comment: "No operation."
              - text: "Blk"
                arg_str: " (l: deff ceff)"
                comment: "A sequence of deff (data effect) and ceff (control effect) with label l."
              - text: "Unk"
                arg_str: " ?"
                comment: "Unknown operation, usually represents an error."
          - name: Bitvector
            entries:
              - text: "Bitv"
                arg_str: " xₙ"
                comment: "Bitvector literal x with length n."
              - text: "Cast"
                arg_str: " (x ≈ₙ b)"
                comment: "Cast x to length n with fill bit b."
              - text: "Msb"
                arg_str: " ↑x"
                comment: "Most significant bit of x."
              - text: "Lsb"
                arg_str: " ↓x"
                comment: "Least significant bit of x."
              - text: "Append"
                arg_str: " (hi ⊚ lo)"
                comment: "Concatenate (append) hi with lo."
              - text: "Is_zero"
                arg_str: " x ≡ 0"
                comment: "Check if x is zero."
              - text: "Lognot"
                arg_str: " ~x"
                comment: "Logical NOT of x."
              - text: "Neg"
                arg_str: " −x"
                comment: "Arithmetic negation of x."
              - text: "Add"
                arg_str: " (x + y)"
                comment: "Arithmetic addition of x and y."
              - text: "Sub"
                arg_str: " (x - y)"
                comment: "Arithmetic subtraction of x and y."
              - text: "Mul"
                arg_str: " (x * y)"
                comment: "Arithmetic multiplication of x and y."
              - text: "Div"
                arg_str: " (x / y)"
                comment: "Arithmetic division of x and y."
              - text: "Sdiv"
                arg_str: " (x /⁺ y)"
                comment: "Signed division of x and y."
              - text: "Mod"
                arg_str: " (x % y)"
                comment: "Unsigned modulo of x and y."
              - text: "Smod"
                arg_str: " (x %⁺ y)"
                comment: "Signed modulo of x and y."
              - text: "Logand"
                arg_str: " (x & y)"
                comment: "Bitwise AND between x and y."
              - text: "Logor"
                arg_str: " (x | y)"
                comment: "Bitwise OR between x and y."
              - text: "Logxor"
                arg_str: " (x ⊕ y)"
                comment: "Bitwise XOR between x and y."
              - text: "Lshift"
                arg_str: " (x ≪ y b)"
                comment: "Left shift x by y bits with fill bit b."
              - text: "Rshift"
                arg_str: " (x ≫ y b)"
                comment: "Right shift x by y bits with fill bit b."
              - text: "Eq"
                arg_str: " (x ≡ y)"
                comment: "x equals y."
              - text: "Sle"
                arg_str: " (x ≦ y)"
                comment: "x is less than or equal to y (Unsigned)."
              - text: "Ule"
                arg_str: " (x ≦⁺ y)"
                comment: "x is less than or equal to y (Signed)."
          - name: Boolean
            entries:
              - text: "False"
                arg_str: " ⊥"
                comment: "Boolean literal false."
              - text: "True"
                arg_str: " ⊤"
                comment: "Boolean literal true."
              - text: "Boolnot"
                arg_str: " ¬x"
                comment: "Boolean NOT of x."
              - text: "Boolor"
                arg_str: " (x ∨ y)"
                comment: "Boolean OR between x and y."
              - text: "Booland"
                arg_str: " (x ∧ y)"
                comment: "Boolean AND between x and y."
              - text: "Boolxor"
                arg_str: " (x ⊻ y)"
                comment: "Boolean XOR between x and y."
          - name: Floating Point
            entries:
              - text: "Float"
                arg_str: " n.fᵈₙ"
                comment: "Bitvector literal n interpreted as a float of size n \
                          with optional superscript d showing a decimal representation."
              - text: "Fbits"
                arg_str: " ꜰʙ x"
                comment: "Bitvector representation of float x."
              - text: "Fneg"
                arg_str: " −x"
                comment: "Floating-point negation of x."
              - text: "Fadd"
                arg_str: " (r x + y)"
                comment: "Floating-point addition of x and y with rounding mode r."
              - text: "Fsub"
                arg_str: " (r x - y)"
                comment: "Floating-point subtraction of x and y with rounding mode r."
              - text: "Fmul"
                arg_str: " (r x * y)"
                comment: "Floating-point multiplication of x and y with rounding mode r."
              - text: "Fdiv"
                arg_str: " (r x / y)"
                comment: "Floating-point division x and y with rounding mode r."
              - text: "Fmod"
                arg_str: " (r x % y)"
                comment: "Floating-point modulo of x and y with rounding mode r."
              - text: "Fmad"
                arg_str: " (r x * y + z)"
                comment: "Floating-point multiply-add of x, y and z with rounding mode r."
              - text: "Fabs"
                arg_str: " |x|"
                comment: "Absolute value of x."
              - text: "Fsucc"
                arg_str: " ⌊x"
                comment: "Floating-point successor of x."
              - text: "Fpred"
                arg_str: " ⌋x"
                comment: "Floating-point predecessor of x."
              - text: "Fexcept"
                arg_str: " e ᴇ x"
                comment: "Floating-point exception e on x."
              - text: "Fcast int"
                arg_str: " (x ꜰ≈ɪᵈₙ r)"
                comment: "Cast x to unsigned integer of size n with rounding mode r and optional subscript d."
              - text: "Fcast sint"
                arg_str: " (x ꜰ≈ɪ⁺ᵈₙ r)"
                comment: "Cast x to signed integer of size n with rounding mode r and optional subscript d."
              - text: "Fcast float"
                arg_str: " (x ꜰ≈ꜰᵈₙ r)"
                comment: "Cast x to unsigned float of size n with rounding mode r and optional subscript d."
              - text: "Fcast sfloat"
                arg_str: " (x ꜰ≈ꜰ⁺ᵈₙ r)"
                comment: "Cast x to signed float of size n with rounding mode r and optional subscript d."
              - text: "Fconvert"
                arg_str: " (x ≅ᵈₙ r)"
                comment: "Convert rounding mode of x to r and its size to n."
              - text: "Fround"
                arg_str: " (r ⭂ x)"
                comment: "Round x to integral value using rounding mode r and optional subscript d."
              - text: "Fsqrt"
                arg_str: " (r ²√ x)"
                comment: "Square root of x using rounding mode r."
              - text: "Frsqrt"
                arg_str: " (r ¹/√ x)"
                comment: "Inverse square root of x using rounding mode r."
              - text: "Frootn"
                arg_str: " (r n ⁿ√ x)"
                comment: "x to the power 1/n using rounding mode r, where n is integer."
              - text: "Fpow"
                arg_str: " (r x ˰ y)"
                comment: "x to the power y using rounding mode r."
              - text: "Fpown"
                arg_str: " (r x ˰ⁿ n)"
                comment: "x to the power n using rounding mode r, where n is integer."
              - text: "Forder"
                arg_str: " (x ≷ y)"
                comment: "Float ordering comparison between x and y."
              - text: "Frequal"
                arg_str: " (r1 ≡ r2)"
                comment: "Float rounding mode equality check between r1 and r2."
              - text: "Is_fzero"
                arg_str: " x ≡ 0"
                comment: "Check if x is zero."
              - text: "Is_nan"
                arg_str: " x ≡ ɴаɴ"
                comment: "Check if x is Not-a-Number."
              - text: "Is_inf"
                arg_str: " x ≡ ∞"
                comment: "Check if x is infine."
              - text: "Is_finite"
                arg_str: " x ≢ ∞"
                comment: "Check if x is finite."
              - text: "Is_fpos"
                arg_str: " x > 0"
                comment: "Check if x is positive."
              - text: "Is_fneg"
                arg_str: " x < 0"
                comment: "Check if x is negative."
              - text: "Fcompound"
                arg_str: " (r x ∪ n)"
                comment: "Float compound operator between x and n using rounding mode r, where n is integer."
              - text: "Fhypot"
                arg_str: " (r x ∠ y)"
                comment: "Float hypotenuse."
          - name: Memory
            entries:
              - text: "Load"
                arg_str: " (ʟᴅₘ n a)"
                comment: "Load n bits from address a of memory index m."
              - text: "Store"
                arg_str: " (ꜱᴛₘ v a)"
                comment: "Store v to address a of memory index m."
  - name: pp
    summary: Print patterns
    subcommands:
      - name: pp0
        summary: Print buffer filled with zeroes
        cname: print_pattern0
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pp1
        summary: Print incremental byte pattern (honor lower bits of current address and block size)
        cname: print_pattern1
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pp2
        summary: Print incremental word pattern
        cname: print_pattern2
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pp4
        summary: Print incremental dword pattern
        cname: print_pattern4
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pp8
        summary: Print incremental qword pattern
        cname: print_pattern8
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: ppa
        summary: Print Latin alphabet pattern
        cname: print_pattern_latin_alphabet
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: ppd
        summary: Print De Brujin pattern
        cname: print_pattern_debrujin
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: "ppd/"
        summary: Return the offset where <value> appears in the default De Bruijn pattern
        description: Honors cfg.bigendian to interpret <value> before searching through the ppd pattern
        cname: print_pattern_debrujin_find
        args:
          - name: value
            type: RZ_CMD_ARG_TYPE_RZNUM
      - name: ppf
        summary: Print buffer filled with 0xFF
        cname: print_pattern_oxff
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: ppn
        summary: Print numeric pin pattern
        cname: print_pattern_num
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
  - name: pt
    summary: Print timestamps
    cname: cmd_print_timestamp
    subcommands:
      - name: pt
        summary: Print UNIX epoch time (32 bit `cfg.bigendian`, since January 1, 1970)
        cname: cmd_print_timestamp_unix
        args: []
      - name: pt.
        summary: Print the current time
        args: []
        cname: cmd_print_timestamp_current
      - name: ptd
        summary: Print MS-DOS time (32 bit `cfg.bigendian`, since January 1, 1980)
        cname: cmd_print_timestamp_dos
        args: []
      - name: pth
        summary: Print Mac HFS time (32 bit `cfg.bigendian`, since January 1, 1904)
        cname: cmd_print_timestamp_hfs
        args: []
      - name: ptn
        summary: Print NTFS time (64 bit `cfg.bigendian`, since January 1, 1601)
        cname: cmd_print_timestamp_ntfs
        args: []
  - name: pk
    summary: Print cryptographic key in randomart
    cname: print_key_randomart
    args:
      - name: len
        type: RZ_CMD_ARG_TYPE_RZNUM
        optional: true
  - name: pK
    summary: Print cryptographic key in randomart mosaic
    cname: print_key_mosaic
    args:
      - name: len
        type: RZ_CMD_ARG_TYPE_RZNUM
        optional: true
  - name: pm
    summary: Search magics and print the long description of them.
    cname: cmd_print_magic
    args:
      - name: file/directory
        type: RZ_CMD_ARG_TYPE_STRING
        optional: true
    modes:
      - RZ_OUTPUT_MODE_STANDARD
      - RZ_OUTPUT_MODE_JSON
  - name: po
    summary: Print operation applied on the data
    subcommands:
      - name: po2
        summary: 2-byte endian swap
        cname: print_operation_2swap
        args: []
      - name: po4
        summary: 4-byte endian swap
        cname: print_operation_4swap
        args: []
      - name: po8
        summary: 8-byte endian swap
        cname: print_operation_8swap
        args: []
      - name: poa
        summary: Apply addition
        cname: print_operation_add
        args:
          - name: value
            type: RZ_CMD_ARG_TYPE_RZNUM
      - name: poA
        summary: Apply AND operation
        cname: print_operation_and
        args:
          - name: value
            type: RZ_CMD_ARG_TYPE_RZNUM
      - name: pod
        summary: Apply division operation
        cname: print_operation_div
        args:
          - name: value
            type: RZ_CMD_ARG_TYPE_RZNUM
      - name: pol
        summary: Apply shift left operation
        cname: print_operation_shl
        args:
          - name: value
            type: RZ_CMD_ARG_TYPE_RZNUM
      - name: pom
        summary: Apply multiplication operation
        cname: print_operation_mul
        args:
          - name: value
            type: RZ_CMD_ARG_TYPE_RZNUM
      - name: poo
        summary: Apply OR operation
        cname: print_operation_or
        args:
          - name: value
            type: RZ_CMD_ARG_TYPE_RZNUM
      - name: por
        summary: Apply shift right operation
        cname: print_operation_shr
        args:
          - name: value
            type: RZ_CMD_ARG_TYPE_RZNUM
      - name: pos
        summary: Apply subtraction operation
        cname: print_operation_sub
        args:
          - name: value
            type: RZ_CMD_ARG_TYPE_RZNUM
      - name: pox
        summary: Apply XOR operation
        cname: print_operation_xor
        args:
          - name: value
            type: RZ_CMD_ARG_TYPE_RZNUM
  - name: pr
    summary: Print raw bytes in different representations
    subcommands:
      - name: pr
        summary: Print raw bytes
        cname: cmd_print_raw
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: prc
        summary: Print bytes as colors in palette
        cname: cmd_print_raw_colors
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: prg
        summary: Print uncompressed data
        subcommands:
          - name: prg
            summary: gunzip block and print
            cname: cmd_print_raw_gunzip
            args: []
          - name: prgv
            summary: Show consumed bytes and output size
            cname: cmd_print_raw_gunzip_verbose
            args: []
      - name: prx
        summary: Printable chars with real offset
        cname: cmd_print_raw_printable
        args: []
      - name: prz
        summary: Print raw zero-terminated string
        cname: cmd_print_raw_string
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
  - name: ps
    summary: Print string at the current offset.
    subcommands:
      - name: ps
        summary: Print the string at the current offset in the block.
        cname: print_string
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: encoding
            type: RZ_CMD_ARG_TYPE_CHOICES
            default_value: "settings"
            choices:
              - "settings"
              - "guess"
              - "ascii"
              - "utf8"
              - "utf16le"
              - "utf32le"
              - "utf16be"
              - "utf32be"
              - "ibm037"
              - "ibm290"
              - "ebcdices"
              - "ebcdicuk"
              - "ebcdicus"
          - name: delimiter
            type: RZ_CMD_ARG_TYPE_CHOICES
            default_value: "null"
            choices: ["null", "block", "unprintable"]
        details:
          - name: Value details
            entries:
              - text: "String length"
                comment: "The string length depends on the block size. You need to change \
                  it via 'b <size-in-bytes>' if your string is too short."
              - text: "encoding=settings"
                comment: "Use encoding from 'str.encoding' option."
              - text: "delimeter=null"
                comment: "Prints until first NUL code point. Non-printable characters are escaped."
              - text: "delimeter=unprintable"
                comment: "Prints until the first non-printable code point. This includes '\\n', '\\t' etc."
              - text: "delimeter=block"
                comment: "Print whole block as string (don't stop at non-printable or NUL character)."
      - name: ps+
        summary: Print libc++ std::string (same-endian, ascii, zero-terminated)
        cname: print_string_as_libcpp_string
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: psb
        summary: Print all the strings in current block
        cname: print_strings_current_block
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_QUIET
        args: []
      - name: psc
        summary: Generate a C/C++ string
        cname: print_string_c_cpp
        modes:
          - RZ_OUTPUT_MODE_STANDARD
        args: []
      - name: psi
        summary: Print the first string in the current block
        cname: print_first_string_current_block
        modes:
          - RZ_OUTPUT_MODE_STANDARD
        args: []
      - name: psp
        summary: Print the pascal string at the current offset
        cname: print_pascal_string
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: bits
            type: RZ_CMD_ARG_TYPE_CHOICES
            default_value: "8"
            choices: ["8", "16", "32", "64"]
      - name: pss
        summary: Print string at the current offset in screen (wrap width)
        cname: print_string_wrap_width
        modes:
          - RZ_OUTPUT_MODE_STANDARD
        args: []
      - name: psu
        summary: Print buffer as a utf8 string (alias for 'ps utf8 null').
        cname: print_utf8
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: psm
        summary: Print buffer as a utf16be string (alias for 'ps utf16be null').
        cname: print_utf16be
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: psM
        summary: Print buffer as a utf32be string (alias for 'ps utf32be null').
        cname: print_utf32be
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: psn
        summary: Print string with escaped new lines
        cname: print_string_escaped_newlines
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: psw
        summary: Print buffer as a utf16le string (alias for 'ps utf16le null').
        cname: print_utf16le
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: psW
        summary: Print buffer as a utf32le string (alias for 'ps utf32le null').
        cname: print_utf32le
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
  - name: pv
    summary: Print bytes based on current bitness and endianness
    subcommands:
      - name: pv
        summary: print bytes
        cname: print_value
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: repeat
            type: RZ_CMD_ARG_TYPE_NUM
            optional: true
      - name: pv1
        summary: print 1 byte
        cname: print_value1
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: repeat
            type: RZ_CMD_ARG_TYPE_NUM
            optional: true
      - name: pv2
        summary: print 2 bytes
        cname: print_value2
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: repeat
            type: RZ_CMD_ARG_TYPE_NUM
            optional: true
      - name: pv4
        summary: print 4 bytes
        cname: print_value4
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: repeat
            type: RZ_CMD_ARG_TYPE_NUM
            optional: true
      - name: pv8
        summary: print 8 bytes
        cname: print_value8
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: repeat
            type: RZ_CMD_ARG_TYPE_NUM
            optional: true
  - name: px
    summary: Show hexdump
    subcommands:
      - name: px
        summary: show hexdump
        cname: print_hexdump
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxF
        summary: Print formatted bytes.
        cname: print_hexdump_format
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: number
            type: RZ_CMD_ARG_TYPE_RZNUM
            default_value: 1
          - name: format
            type: RZ_CMD_ARG_TYPE_CHOICES
            default_value: x
            choices:
              - "o" # Octal
              - "d" # Decimal
              - "x" # Hex
              - "f" # Float
              - "i" # Instruction
              - "s" # String
          - name: width
            type: RZ_CMD_ARG_TYPE_CHOICES
            default_value: a
            choices:
              - "b" # Byte = 1 bytes
              - "h" # Half word = 2 bytes
              - "w" # Word = 4 bytes
              - "d" # Double = 8 bytes
              - "a" # Architecture width
        details:
          - name: "number"
            entries:
              - text: ""
                comment: "Number of elements to print."
          - name: "format"
            entries:
              - text: "o"
                comment: "Octal"
              - text: "d"
                comment: "Decimal"
              - text: "x"
                comment: "Hex"
              - text: "f"
                comment: "Float - Alias for: 'pf ffff...' (<number> times 'f'. <width> is ignored)."
              - text: "i"
                comment: "Instruction - Alias for: 'pdq <number> !@ <number * width>'."
              - text: "s"
                comment: "String - Alias for: 'psb !@ <number * width>'."
          - name: "width"
            entries:
              - text: "b"
                comment: "Byte        = 1 bytes"
              - text: "h"
                comment: "Half word   = 2 bytes"
              - text: "w"
                comment: "Word        = 4 bytes"
              - text: "d"
                comment: "Double word = 8 bytes"
              - text: "a"
                comment: "Architecture width as bytes."
      - name: pxa
        summary: show annotated hexdump
        cname: print_hexdump_annotated
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxA
        summary: show op analysis color map
        cname: print_op_analysis_color_map
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_LONG
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxb
        summary: dump bits in hexdump form
        cname: print_hexdump_bits
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxc
        summary: show hexdump with comments
        cname: print_hexdump_comments
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxd
        summary: show signed integer dump
        subcommands:
          - name: pxd
            summary: show 1-byte integer dump
            cname: print_hexdump_signed_integer
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
            args:
              - name: len
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
          - name: pxdh
            summary: show 2-bytes integer dump
            cname: print_hexdump_signed_integer2
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
            args:
              - name: len
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
          - name: pxdw
            summary: show 4-bytes integer dump
            cname: print_hexdump_signed_integer4
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
            args:
              - name: len
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
          - name: pxdq
            summary: show 8-bytes integer dump
            cname: print_hexdump_signed_integer8
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
            args:
              - name: len
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
      - name: pxe
        summary: emoji hexdump! :)
        cname: print_hexdump_emoji
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxf
        summary: show hexdump of current function
        cname: print_hexdump_function
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxi
        summary: HexII compact binary representation
        cname: print_hexdump_hexii
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxr
        summary: show hexword references
        subcommands:
          - name: pxr
            summary: show hexword references
            cname: print_hexword_references
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_QUIET
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
              - RZ_OUTPUT_MODE_TABLE
            args:
              - name: len
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
          - name: pxr1
            summary: show hexword references
            cname: print_hexword_references_1
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_QUIET
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
              - RZ_OUTPUT_MODE_TABLE
            args:
              - name: len
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
          - name: pxr2
            summary: show hexword references with hexdump
            cname: print_hexword_references_2
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_QUIET
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
              - RZ_OUTPUT_MODE_TABLE
            args:
              - name: len
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
          - name: pxr4
            summary: show hexword references with hexdump
            cname: print_hexword_references_4
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_QUIET
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
              - RZ_OUTPUT_MODE_TABLE
            args:
              - name: len
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
          - name: pxr8
            summary: show hexword references with hexdump
            cname: print_hexword_references_8
            type: RZ_CMD_DESC_TYPE_ARGV_STATE
            modes:
              - RZ_OUTPUT_MODE_QUIET
              - RZ_OUTPUT_MODE_STANDARD
              - RZ_OUTPUT_MODE_JSON
              - RZ_OUTPUT_MODE_TABLE
            args:
              - name: len
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
      - name: pxs
        summary: show hexadecimal in sparse mode
        cname: print_hexdump_sparse
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxt
        summary: show delta pointer table in rizin commands
        cname: print_delta_pointer_table
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args: []
      - name: pxx
        summary: show <N> bytes of hex-less hexdump
        cname: print_hexdump_hexless_bytes
        args: []
      - name: pxX
        summary: show <N> words of hex-less hexdump
        cname: print_hexdump_hexless_words
        args:
          - name: N
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: px0
        summary: 8bit hexpair list of bytes until zero byte
        cname: print_hexdump_hexpair_bytes
        args:
          - name: N
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxh
        summary: show 2-bytes hexadecimal integers dump
        cname: print_hexdump_hex2
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxH
        summary: show 2-bytes hexadecimal integers dump, one per line
        cname: print_hexdump_hex2l
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxw
        summary: show 4-bytes hexadecimal integers dump
        cname: print_hexdump_hex4
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxW
        summary: show 4-bytes hexadecimal integers dump, one per line
        cname: print_hexdump_hex4l
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxq
        summary: show 8-bytes hexadecimal integers dump
        cname: print_hexdump_hex8
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxQ
        summary: show 8-bytes hexadecimal integers dump, one per line
        cname: print_hexdump_hex8l
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxo
        summary: show 1-byte octal integers dump
        cname: print_hexdump_oct
        args:
          - name: len
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pxl
        summary: display <N> lines of hexdump
        cname: print_hexdump_n_lines
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: N
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
  - name: p6
    summary: Base64 decoding/encoding
    subcommands:
      - name: p6e
        summary: Base64 encoding
        cname: cmd_base64_encode
        modes:
          - RZ_OUTPUT_MODE_STANDARD
        args: []
      - name: p6d
        summary: Base64 decoding
        cname: cmd_base64_decode
        modes:
          - RZ_OUTPUT_MODE_STANDARD
        args: []
  - name: pu
    summary: URL-encoded strings
    subcommands:
      - name: pu
        summary: Print <N> bytes as URL-encoded UTF-8 string
        cname: print_url_encode
        args:
          - name: N
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: puw
        summary: Print <N> bytes as URL-encoded UTF-16 string
        cname: print_url_encode_wide
        args:
          - name: N
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: pu0
        summary: Print <N> bytes as URL-encoded string and stop at zero
        cname: print_url_encode_zero
        args:
          - name: N
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
  - name: p-
    summary: Blocks information representation as a horisontal bar and summary
    subcommands:
      - name: p-
        summary: Show horisontal bar of metadata in file boundaries
        cname: print_minus
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_JSON
        args:
          - name: width
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p-e
        summary: Show horisontal bar of entropy per block in file boundaries
        cname: print_minus_entropy
        args:
          - name: width
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p-h
        summary: Show statistics table about blocks in the file
        cname: print_minus_table
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        default_mode: RZ_OUTPUT_MODE_TABLE
        modes:
          - RZ_OUTPUT_MODE_TABLE
        args:
          - name: depth
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
  - name: p=
    summary: Blocks information representation as a histogram
    subcommands:
      - name: p=
        summary: Show a vertical histogram of bytes in current block
        cname: print_equal
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=d
        summary: Show a summary of min/max/number of unique bytes in the current block
        cname: print_equal_d
        args: []
      - name: p=2
        summary: Show progress bars of int16 values
        cname: print_equal_two
        args:
          - name: step
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=0
        summary: Show a vertical histogram of 0x00 bytes per each block
        cname: print_equal_0x00
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=F
        summary: Show a vertical histogram of 0xFF bytes per each block
        cname: print_equal_0xff
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=a
        summary: Show a vertical histogram of basic blocks per each block
        cname: print_equal_bbs
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=A
        summary: Show a vertical histogram of statistical maps per each block
        cname: print_equal_stats
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=c
        summary: Show a vertical histogram of calls per each block
        cname: print_equal_call
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=e
        summary: Show a vertical histogram of entropy per each block
        cname: print_equal_entropy
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=C
        summary: Show a vertical histogram of chi-square (vs uniform) per each block
        cname: print_equal_chisquare
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=I
        summary: Show a vertical histogram of index of coincidence per each block
        cname: print_equal_ioc
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=M
        summary: Show a vertical histogram of min-entropy per each block
        cname: print_equal_minentropy
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=S
        summary: Show a vertical histogram of serial correlation per each block
        cname: print_equal_serialcorr
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=r
        summary: Print rising and falling entropy.
        cname: print_rising_and_falling_entropy
        type: RZ_CMD_DESC_TYPE_ARGV_STATE
        modes:
          - RZ_OUTPUT_MODE_JSON
          - RZ_OUTPUT_MODE_QUIET
          - RZ_OUTPUT_MODE_STANDARD
          - RZ_OUTPUT_MODE_LONG
          - RZ_OUTPUT_MODE_TABLE
        details:
          - name: Default values
            entries:
              - text: ""
                comment: "Default rising threshold is 0.95 and falling threshold is 0.85"
        args:
          - name: rising_threshold
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: falling_threshold
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=i
        summary: Show a vertical histogram of invalid instructions per each block
        cname: print_equal_invalid
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=j
        summary: Show a vertical histogram of jumps and conditional jumps per each block
        cname: print_equal_jump
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=m
        summary: Show a vertical histogram of number of flags and marks per each block
        cname: print_equal_m
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=p
        summary: Show a vertical histogram of printable bytes per each block
        cname: print_equal_printable
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=s
        summary: Show a vertical histogram of syscalls and privileged instructions per each block
        cname: print_equal_priv
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p=z
        summary: Show a vertical histogram of number of chars in strings per each block
        cname: print_equal_z
        args:
          - name: blocks
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: totalsize
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
          - name: skip
            type: RZ_CMD_ARG_TYPE_RZNUM
            optional: true
      - name: p==
        summary: Blocks information representation as a horizontal histogram
        subcommands:
          - name: p==
            summary: Show a horizontal histogram of bytes in current block
            cname: print_equal_equal
            args:
              - name: blocks
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
              - name: totalsize
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
              - name: skip
                type: RZ_CMD_ARG_TYPE_RZNUM
                optional: true
          - name: p==v
            summary: Show a visual horizontal histogram of bytes in current block
            cname: print_equal_equal_visual
            args: []
          - name: p==0
            summary: Show a horizontal histogram of 0x00 bytes per each block
            subcommands:
              - name: p==0
                summary: Show a horizontal histogram of 0x00 bytes per each block
                cname: print_equal_equal_0x00
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==0v
                summary: Show a interactive horizontal histogram of 0x00 bytes per each block
                cname: print_equal_equal_0x00_visual
                args: []
          - name: p==F
            summary: Show a horizontal histogram of 0xFF bytes per each block
            subcommands:
              - name: p==F
                summary: Show a horizontal histogram of 0xFF bytes per each block
                cname: print_equal_equal_0xff
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==Fv
                summary: Show a interactive horizontal histogram of 0xFF bytes per each block
                cname: print_equal_equal_0xff_visual
                args: []
          - name: p==a
            summary: Show a horizontal histogram of basic blocks per each block
            subcommands:
              - name: p==a
                summary: Show a horizontal histogram of basic blocks per each block
                cname: print_equal_equal_bbs
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==av
                summary: Show a interactive horizontal histogram of basic blocks per each block
                cname: print_equal_equal_bbs_visual
                args: []
          - name: p==A
            summary: Show a horizontal histogram of statistical maps per each block
            subcommands:
              - name: p==A
                summary: Show a horizontal histogram of statistical maps per each block
                cname: print_equal_equal_stats
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==Av
                summary: Show a interactive horizontal histogram of statistical maps per each block
                cname: print_equal_equal_stats_visual
                args: []
          - name: p==c
            summary: Show a horizontal histogram of calls per each block
            subcommands:
              - name: p==c
                summary: Show a horizontal histogram of calls per each block
                cname: print_equal_equal_call
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==cv
                summary: Show a interactive horizontal histogram of calls per each block
                cname: print_equal_equal_call_visual
                args: []
          - name: p==e
            summary: Show a horizontal histogram of entropy per each block
            subcommands:
              - name: p==e
                summary: Show a horizontal histogram of entropy per each block
                cname: print_equal_equal_entropy
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==ev
                summary: Show a interactive horizontal histogram of entropy per each block
                cname: print_equal_equal_entropy_visual
                args: []
          - name: p==C
            summary: Show a horizontal histogram of chi-square (vs uniform) per each block
            subcommands:
              - name: p==C
                summary: Show a horizontal histogram of chi-square (vs uniform) per each block
                cname: print_equal_equal_chisquare
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==Cv
                summary: Show a interactive horizontal histogram of chi-square (vs uniform) per each block
                cname: print_equal_equal_chisquare_visual
                args: []
          - name: p==I
            summary: Show a horizontal histogram of index of coincidence per each block
            subcommands:
              - name: p==I
                summary: Show a horizontal histogram of index of coincidence per each block
                cname: print_equal_equal_ioc
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==Iv
                summary: Show a interactive horizontal histogram of index of coincidence per each block
                cname: print_equal_equal_ioc_visual
                args: []
          - name: p==M
            summary: Show a horizontal histogram of min-entropy per each block
            subcommands:
              - name: p==M
                summary: Show a horizontal histogram of min-entropy per each block
                cname: print_equal_equal_minentropy
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==Mv
                summary: Show a interactive horizontal histogram of min-entropy per each block
                cname: print_equal_equal_minentropy_visual
                args: []
          - name: p==S
            summary: Show a horizontal histogram of serial correlation per each block
            subcommands:
              - name: p==S
                summary: Show a horizontal histogram of serial correlation per each block
                cname: print_equal_equal_serialcorr
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==Sv
                summary: Show a interactive horizontal histogram of serial correlation per each block
                cname: print_equal_equal_serialcorr_visual
                args: []
          - name: p==i
            summary: Show a horizontal histogram of invalid instructions per each block
            subcommands:
              - name: p==i
                summary: Show a horizontal histogram of invalid instructions per each block
                cname: print_equal_equal_invalid
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==iv
                summary: Show a interactive horizontal histogram of invalid instructions per each block
                cname: print_equal_equal_invalid_visual
                args: []
          - name: p==j
            summary: Show a horizontal histogram of jumps and conditional jumps per each block
            subcommands:
              - name: p==j
                summary: Show a horizontal histogram of jumps and conditional jumps per each block
                cname: print_equal_equal_jump
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==jv
                summary: Show a interactive horizontal histogram of jumps and conditional jumps per each block
                cname: print_equal_equal_jump_visual
                args: []
          - name: p==m
            summary: Show a horizontal histogram of number of flags and marks per each block
            subcommands:
              - name: p==m
                summary: Show a horizontal histogram of number of flags and marks per each block
                cname: print_equal_equal_m
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==mv
                summary: Show a interactive horizontal histogram of number of flags and marks per each block
                cname: print_equal_equal_m_visual
                args: []
          - name: p==p
            summary: Show a horizontal histogram of printable bytes per each block
            subcommands:
              - name: p==p
                summary: Show a horizontal histogram of printable bytes per each block
                cname: print_equal_equal_printable
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==pv
                summary: Show a interactive horizontal histogram of printable bytes per each block
                cname: print_equal_equal_printable_visual
                args: []
          - name: p==s
            summary: Show a horizontal histogram of syscalls and privileged instructions per each block
            subcommands:
              - name: p==s
                summary: Show a horizontal histogram of syscalls and privileged instructions per each block
                cname: print_equal_equal_priv
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==sv
                summary: Show a interactive horizontal histogram of syscalls and privileged instructions per each block
                cname: print_equal_equal_priv_visual
                args: []
          - name: p==z
            summary: Show a horizontal histogram of number of chars in strings per each block
            subcommands:
              - name: p==z
                summary: Show a horizontal histogram of number of chars in strings per each block
                cname: print_equal_equal_z
                args:
                  - name: blocks
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: totalsize
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
                  - name: skip
                    type: RZ_CMD_ARG_TYPE_RZNUM
                    optional: true
              - name: p==zv
                summary: Show a interactive horizontal histogram of number of chars in strings per each block
                cname: print_equal_equal_z_visual
                args: []
