require 'base64'

def str(bytes)
 bytes.pack('C*')
end

def xor_buffer_with_bytes(buffer, bytes)
 result = Array.new(buffer.size)
 result.each_index do |i|
   byte = bytes[i % bytes.length]
   result[i] = buffer[i] ^ byte
 end
 result
end

ciphertext = Base64.decode64('ptITlnk7EGRodZ/dRp9dF1VqaEOPjC2SMQdUYGgmn81GhzEqVHsEX6brBqRwMBEySgo=').bytes
crib = ARGV[0].bytes
key_size = 10
max_offset = ciphertext.length - crib.length
(0..max_offset).each do |i|
 key = Array.new(key_size, 0)
 crib.length.times { |j| key[(i+j)%key_size] = ciphertext[i+j] ^ crib[j] }
 p str(xor_buffer_with_bytes(ciphertext, key))
end