# DC18 bin300 string decryptor
# http://smokedchicken.org

h = {    0: '4a977fd18d9eada7b5a8cb9009311b77'.decode('hex'), \
      0x11: '5afa2306bc15a62e345137b6157a1d7d'.decode('hex'), \
    0x045b: 'fe54cf2a45d7a08d9f90e56fc9c1ec2c'.decode('hex'), \
    0x1551: 'fac9834a0a839d24a07baed69c2d6b27'.decode('hex'), \
    0x2a75: '23005df2dd75e5f722aa5e52453247a2'.decode('hex')
    }

enc_key = '7d343be755ff63e0a5908f625c203573'.decode('hex');

offsets = [0, 0x11, 0x45b, 0x1551, 0x2a75]

res = bytearray(16)
for i in offsets:
    for j in offsets:
        op1 = bytearray(h[i])
        op2 = bytearray(enc_key)
        op3 = bytearray(h[j])
        for k in range(16):
            res[k] = op1[k] ^ op2[k]
        
        for k in range(16):
            res[k] = res[k] ^ op3[k]

        print "%04x %04x %s %s" % (i, j, str(res).encode('hex'), str(res))


