docs: def get_common_register(start, end):
      """Get the register most commonly used in accessing structs.
  
      Access to is considered for every opcode that accesses memory
      in an offset from a register::
  
          mov eax, [ebx + 5]
  
      For every access, the struct-referencing registers, in this case
      `ebx`, are counted. The most used one is returned.
  
      Args:
          start: The adderss to start at
          end: The address to finish at
      """
      registers = defaultdict(int)
      for line in lines(start, end):
          insn = line.insn
  
          for operand in insn.operands:
  
              if not operand.type.has_phrase:
                  continue
  
              if not operand.base:
                  continue
  
              register_name = operand.base
              registers[register_name] += 1
  
      return max(registers.iteritems(), key=operator.itemgetter(1))[0]