| COPY | 
  v0 = v1; | 
  Copy v1 into v0. | 
  | LOAD | 
  
    
        * v1 | 
       
        *[spc]v1 | 
       
        *:2 v1 | 
       
        *[spc]:2 v1 | 
       
 
 
   | 
  Dereference v1 as pointer into default space. Optionally specify a space
      to load from and size of data in bytes. | 
  | STORE | 
  
    
        *v0 = v1; | 
       
        *[spc]v0 = v1; | 
       
        *:4 v0 = v1; | 
       
        *[spc]:4 v0 = v1; | 
       
 
 
   | 
  Store in v1 in default space using v0 as pointer. Optionally specify space to store in
      and size of data in bytes. | 
  | BRANCH | 
  goto v0; | 
  Branch execution to address of v0. | 
  | CBRANCH | 
  if (v0) goto v1; | 
  Branch execution to address of v1 if v0 equals 1 (true). | 
  | BRANCHIND | 
  goto [v0]; | 
  Branch execution to value in v0 viewed as an offset into the current space. | 
  | CALL | 
  call v0; | 
  Branch execution to address of v0. Hint that the branch is a subroutine call. | 
  | CALLIND | 
  call [v0]; | 
  Branch execution to value in v0 viewed as an offset into the current space.
      Hint that the branch is a subroutine call. | 
  | RETURN | 
  return [v0]; | 
  Branch execution to value in v0 viewed as an offset into the current space.
      Hint that the branch is a subroutine return. | 
  | PIECE | 
  <na> | 
  Concatenate two varnodes into a single varnode. | 
  | SUBPIECE | 
  v0:2 | 
  The least signficant n bytes of v0. | 
  | SUBPIECE | 
  v0(2) | 
  All but the least significant n bytes of v0. | 
  | POPCOUNT | 
  popcount(v0) | 
  Count 1 bits in v0. | 
  | LZCOUNT | 
  lzcount(v0) | 
  Counts the number of leading zero bits in v0. | 
  | INT_EQUAL | 
  v0 == v1 | 
  True if v0 equals v1. | 
  | INT_NOTEQUAL | 
  v0 != v1 | 
  True if v0 does not equal v1. | 
  | INT_LESS | 
  
    
   | 
  True if v0 is less than v1 as an unsigned integer. | 
  | INT_SLESS | 
  
    
   | 
  True if v0 is less than v1 as a signed integer. | 
  | INT_LESSEQUAL | 
  
    
   | 
  True if v0 is less than or equal to v1 as an unsigned integer. | 
  | INT_SLESSEQUAL | 
  
    
   | 
  True if v0 is less than or equal to v1 as a signed integer. | 
  | INT_ZEXT | 
  zext(v0) | 
  Zero extension of v0. | 
  | INT_SEXT | 
  sext(v0) | 
  Sign extension of v0. | 
  | INT_ADD | 
  v0 + v1 | 
  Addition of v0 and v1 as integers. | 
  | INT_SUB | 
  v0 - v1 | 
  Subtraction of v1 from v0 as integers. | 
  | INT_CARRY | 
  carry(v0,v1) | 
  True if adding v0 and v1 would produce an unsigned carry. | 
  | INT_SCARRY | 
  scarry(v0,v1) | 
  True if adding v0 and v1 would produce an signed carry. | 
  | INT_SBORROW | 
  sborrow(v0,v1) | 
  True if subtracting v1 from v0 would produce a signed borrow. | 
  | INT_2COMP | 
  -v0 | 
  Twos complement of v0. | 
  | INT_NEGATE | 
  ~v0 | 
  Bitwise negation of v0. | 
  | INT_XOR | 
  v0 ^ v1 | 
  Bitwise Exclusive Or of v0 with v1. | 
  | INT_AND | 
  v0 & v1 | 
  Bitwise Logical And of v0 with v1. | 
  | INT_OR | 
  v0 | v1 | 
  Bitwise Logical Or of v0 with v1. | 
  | INT_LEFT | 
  v0 << v1 | 
  Left shift of v0 by v1 bits. | 
  | INT_RIGHT | 
  v0 >> v1 | 
  Unsigned (logical) right shift of v0 by v1 bits. | 
  | INT_SRIGHT | 
  v0 s>> v1 | 
  Signed (arithmetic) right shift of v0 by v1 bits. | 
  | INT_MULT | 
  v0 * v1 | 
  Integer multiplication of v0 and v1. | 
  | INT_DIV | 
  v0 / v1 | 
  Unsigned division of v0 by v1. | 
  | INT_REM | 
  v0 % v1 | 
  Unsigned remainder of v0 modulo v1. | 
  | INT_SDIV | 
  v0 s/ v1 | 
  Signed division of v0 by v1. | 
  | INT_SREM | 
  v0 s% v1 | 
  Signed remainder of v0 modulo v1. | 
  | BOOL_NEGATE | 
  !v0 | 
  Negation of boolean value v0. | 
  | BOOL_XOR | 
  v0 ^^ v1 | 
  Exclusive-Or of booleans v0 and v1. | 
  | BOOL_AND | 
  v0 && v1 | 
  Logical-And of booleans v0 and v1. | 
  | BOOL_OR | 
  v0 || v1 | 
  Logical-Or of booleans v0 and v1. | 
  | FLOAT_EQUAL | 
  v0 f== v1 | 
  True if v0 equals v1 viewed as floating-point numbers. | 
  | FLOAT_NOTEQUAL | 
  v0 f!= v1 | 
  True if v0 does not equal v1 viewed as floating-point numbers. | 
  | FLOAT_LESS | 
  
    
   | 
  True if v0 is less than v1 viewed as floating-point numbers. | 
  | FLOAT_LESSEQUAL | 
  
    
   | 
  True if v0 is less than or equal to v1 viewed as floating-point numbers. | 
  | FLOAT_ADD | 
  v0 f+ v1 | 
  Addition of v0 and v1 as floating-point numbers. | 
  | FLOAT_SUB | 
  v0 f- v1 | 
  Subtraction of v1 from v0 as floating-point numbers. | 
  | FLOAT_MULT | 
  v0 f* v1 | 
  Multiplication of v0 and v1 as floating-point numbers. | 
  | FLOAT_DIV | 
  v0 f/ v1 | 
  Division of v0 by v1 as floating-point numbers. | 
  | FLOAT_NEG | 
  f- v0 | 
  Additive inverse of v0 as a floating-point number. | 
  | FLOAT_ABS | 
  abs(v0) | 
  Absolute value of v0 as a floating-point number. | 
  | FLOAT_SQRT | 
  sqrt(v0) | 
  Square root of v0 as a floating-point number. | 
  | FLOAT_CEIL | 
  ceil(v0) | 
  Nearest integral floating-point value greater than v0, viewed as a floating-point number. | 
  | FLOAT_FLOOR | 
  floor(v0) | 
  Nearest integral floating-point value less than v0, viewed as a floating-point number. | 
  | FLOAT_ROUND | 
  round(v0) | 
  Nearest integral floating-point to v0, viewed as a floating-point number. | 
  | FLOAT_NAN | 
  nan(v0) | 
  True if v0 is not a valid floating-point number (NaN). | 
  | INT2FLOAT | 
  int2float(v0) | 
  Floating-point representation of v0 viewed as an integer. | 
  | FLOAT2FLOAT | 
  float2float(v0) | 
  Copy of floating-point number v0 with more or less precision. | 
  | TRUNC | 
  trunc(v0) | 
  Signed integer obtained by truncating v0 viewed as a floating-point number. | 
  | CPOOLREF | 
  cpool(v0,...) | 
  Obtain constant pool value. | 
  | NEW | 
  
    
        newobject(v0) | 
       
        newobject(v0,v1) | 
       
 
 
   | 
  Allocate an object or an array of objects. | 
  | MULTIEQUAL | 
  <na> | 
  Compiler phi-node: values merging from multiple control-flow paths. | 
  | INDIRECT | 
  <na> | 
  Indirect effect from input varnode to output varnode. | 
  | CAST | 
  <na> | 
  Copy from input to output. A hint that the underlying datatype has changed. | 
  | PTRADD | 
  <na> | 
  Construct a pointer to an element from a pointer to the start of an array and an index. | 
  | PTRSUB | 
  <na> | 
  Construct a pointer to a field from a pointer to a structure and an offset. | 
  | INSERT | 
  <na> | 
  Insert a value as a bit-range into a varnode | 
  | EXTRACT | 
  <na> | 
  Extract a bit-range from a varnode |