code: def disassemble_around(self, lpAddress, dwSize = 64):
          
          dwDelta  = int(float(dwSize) / 2.0)
          addr_1   = lpAddress - dwDelta
          addr_2   = lpAddress
          size_1   = dwDelta
          size_2   = dwSize - dwDelta
          data     = self.read(addr_1, dwSize)
          data_1   = data[:size_1]
          data_2   = data[size_1:]
          disasm_1 = self.disassemble_string(addr_1, data_1)
          disasm_2 = self.disassemble_string(addr_2, data_2)
          disasm   = disasm_1 + disasm_2
          self.__fixup_labels(disasm)
          return disasm
docs: Disassemble around the given address.
  
          @type  lpAddress: int
          @param lpAddress: Memory address where to read the code from.
  
          @type  dwSize: int
          @param dwSize: Delta offset.
              Code will be read from lpAddress - dwSize to lpAddress + dwSize.
  
          @rtype:  list of tuple( long, int, str, str )
          @return: List of tuples. Each tuple represents an assembly instruction
              and contains:
               - Memory address of instruction.
               - Size of instruction in bytes.
               - Disassembly line of instruction.
               - Hexadecimal dump of instruction.