'checks shellcode selection'

def check_shells(self):

    avail_shells = []
    ignores = ['returnshellcode', 'pack_ip_addresses', 'eat_code_caves', 'ones_compliment', 'ones_compliment', 'resume_executionreturnshellcode', 'clean_caves_stub']
    if (self.flItms['Magic'] == int('10B', 16)):
        self.flItms['bintype'] = winI32_shellcode
    if (self.flItms['Magic'] == int('20B', 16)):
        self.flItms['bintype'] = winI64_shellcode
    if (not self.SHELL):
        print 'You    must    choose    a    backdoor    to    add:    (use    -s)'
        for item in dir(self.flItms['bintype']):
            if ('__' in item):
                continue
            elif (item in ignores):
                continue
            else:
                print '            {0}'.format(item)
        return False
    if (self.SHELL not in dir(self.flItms['bintype'])):
        print ('The    following    %ss    are    available:    (use    -s)' % str(self.flItms['bintype']).split('.')[1])
        for item in dir(self.flItms['bintype']):
            if ('__' in item):
                continue
            elif (item in ignores):
                continue
            else:
                print '            {0}'.format(item)
                avail_shells.append(item)
        self.flItms['avail_shells'] = avail_shells
        return False
    getattr(self.flItms['bintype']('127.0.0.1', 8080, self.SUPPLIED_SHELLCODE), self.SHELL)(self.flItms, self.flItms['CavesPicked'])
