let me see the encode code
```#!/usr/bin/env python#-*- coding:utf-8 -*-
import randomfrom flag import flag
def encrypt(msg, perm):	W = len(perm)	while len(msg) % (2*W):		msg += "."	msg = msg[1:] + msg[:1]	msg = msg[0::2] + msg[1::2]	msg = msg[1:] + msg[:1]	res = ""	for j in xrange(0, len(msg), W):		for k in xrange(W):			res += msg[j:j+W][perm[k]]	msg = res	return msg
def encord(msg, perm, l):	for _ in xrange(l):		msg = encrypt(msg, perm)	return msg
W, l = 7, random.randint(0, 1337)perm = range(W)random.shuffle(perm)
enc = encord(flag, perm, l)f = open('flag.enc', 'w')f.write(enc)f.close()```
W is fixed as 7l is random numberperm is shuffled by random.shuffle()
```	while len(msg) % (2*W):		msg += "."```
means padding until len(msg) is divided by 14
```	msg = msg[1:] + msg[:1]```means move a letter to end of string like below
'abc' -> 'bca'
```	msg = msg[0::2] + msg[1::2]```means make string as even letter + odd letter like below.
"abcd" -> "acbd"
```	for j in xrange(0, len(msg), W):		for k in xrange(W):			res += msg[j:j+W][perm[k]]```means make result using shuffled perm
so, I coded like this.```#Coded by sqrtrevimport itertools
W = 7perm = range(7)perm = itertools.permutations(perm) def decrypt(msg, perm):    W = len(perm)    origin = ''    res = msg    tmp_flag = ''    for j in xrange(0, len(msg), W):        for k in xrange(W):            origin += res[j:j+W][perm[k]]    origin = origin[-1] + origin[:-1]    for i in range(0,35):        tmp_flag += origin[i]+origin[i+35]    origin = tmp_flag    origin = origin[-1] + origin[:-1]    return origin
for x in perm:    f = open("./flag.enc").read()    for i in xrange(0,1338):        f = decrypt(f, x)        if 'ASIS{' in f:            print x, f, i            break```the result is
(1, 0, 4, 6, 3, 2, 5) ASIS{1n54n3ly_Simpl3_And_d3lic1Ous_5n4ckS_eVEn_l4zY_Pe0pL3_Can_Mak3}.. 760