code: async def dump_varint(writer, val):
      
      if val <= 63:
          return await dump_varint_t(writer, PortableRawSizeMark.BYTE, val)
      elif val <= 16383:
          return await dump_varint_t(writer, PortableRawSizeMark.WORD, val)
      elif val <= 1073741823:
          return await dump_varint_t(writer, PortableRawSizeMark.DWORD, val)
      else:
          if val > 4611686018427387903:
              raise ValueError('Int too big')
          return await dump_varint_t(writer, PortableRawSizeMark.INT64, val)
docs: Binary dump of the variable size integer
  
      :param writer:
      :param val:
      :return: