def METHOD_NAME(self, offset: int, size: int) -> int:
    if self.contain(self.struct.DR, offset, size):
        if self.has_input():
            return self.recv_from_user()
    buf = ctypes.create_string_buffer(size)
    ctypes.memmove(buf, ctypes.addressof(self.instance) + offset, size)
    data = int.from_bytes(buf.raw, byteorder='little')
    return data