'Get a long number for a byte being repeated for many times. This is part of the effort of optimizing
performance of angr\'s memory operations.
:param int byt: the byte to repeat
:param int rep: times to repeat the byte
:return: a long integer representing the repeating bytes
;rtype: int'

@staticmethod
def _repeat_bytes(byt, rep):

    if (rep == 1):
        return byt
    remainder = (rep % 2)
    quotient = (rep / 2)
    r_ = memset._repeat_bytes(byt, quotient)
    if (remainder == 1):
        r = (r_ << ((quotient + 1) * 8))
        r |= ((r_ << 8) + byt)
    else:
        r = (r_ << (quotient * 8))
        r |= r_
    return r
