code: public static int memcpy( byte[] dst, int dst_offset, byte[] src, int src_offset, int length ) {
          if ((dst != null) && (src != null)) {
              if (dst.length < (dst_offset + length)) {
                  croak("dst.length = " + dst.length + ", but " + "dst_offset = " + dst_offset + " and length = " + length + ".");
              }
  
              if (src.length < (src_offset + length)) {
                  croak("src.length = " + src.length + ", but " + "src_offset = " + src_offset + " and length = " + length + ".");
              }
  
              for( int i = 0; i < length; ++i, ++dst_offset, ++src_offset )
                  dst[dst_offset] = src[src_offset];
          }
  
          return length;
      }
docs: Copy contents of one array of <code>bytes</code> into another. If either
  array is <code>null</code>, simply return the <code>length</code>
  parameter directly.
  
  @param dst the array to write, or <code>null</code>
  @param dst_offset the start offset in <code>dst</code>
  @param src the array to read, or <code>null</code>
  @param src_offset the start offset in <code>src</code>
  @param length the number of <code>byte</code>s to copy.
  
  @return DOCUMENT ME!