def __init__(self, pad, payload, otp_type, payload_type, minus_bytes, scan_dir, output_type, key_iterations, pad_max, cleanup=False):
        self.org_payload = payload
        self.payload = open(payload, 'r').read()
        print "[*] Payload length", hex(len(self.payload))
        self.lookup_table = ''
        self.otp_type = otp_type
        self.payload_type = payload_type
        self.minus_bytes = int(minus_bytes)
        self.key_iterations = int(key_iterations)
        self.output_type = output_type
        self.scan_dir = scan_dir
        self.payload_loader = ''
        self.payload_imports = ''
        self.pad = pad
        self.cleanup = cleanup
        self.set_payload()
        self.pad_max = pad_max
        if output_type in ['python', 'both']:
            if 'dll' in self.payload_type.lower():
                print "[X] No DLL Support for python"
                sys.exit(-1)
        print "[*] Using the following as an OTP:", self.pad
        if self.pad_max.startswith("0x"):
            self.pad_max = int(self.pad_max, 16)
        if self.pad_max > 256 ** 3 - 1:
            print "[!] That's too big of a pad or you don't speak hex or int"
            self.pad_max = 256 ** 3 -1
        print "[*] Using a maximum pad size of:", hex(self.pad_max)
        self.hash_payload()
        self.find_key_encrypt()
        if self.output_type == 'python':
            if 'dll' in self.payload_type.lower():
                print "[X] No DLL Support for python"
                sys.exit(-1)
            self.gen_pyloader()
        elif self.output_type == 'go':
            self.gen_goloader()
        elif self.output_type == 'both':
            if 'dll' in self.payload_type.lower():
                print "[X] No DLL Support for python"
                sys.exit(-1)
            self.gen_pyloader()
            self.gen_goloader()
dataset/ETHPy150Open Genetic-Malware/Ebowla/encryption/otp_key.py/otp_key.__init__/original