#include "packer.h"
static char *r_destructors[] = {
":",
"[",
"]",
"[[",
"]]",
"[[[",
"]]]",
"/?p@?p",
"/?s@?s",
"/?X@?X",
"/$s$s",
"/$s$s/0s0o",
"/$s$s/0s0o/2s2a",
"/$s$s/0s0o/2s2a/3s3e",
"/$s$s/0s0o/2s2a/3s3e/5s5s",
"/$s$s/0s0o/2s2a/3s3e/5s5s/1s1i",
"/$s$s/0s0o/2s2a/3s3e/5s5s/1s1l",
"/$s$s/0s0o/2s2a/3s3e/5s5s/1s1i/4s4a",
"/$s$s/0s0o/2s2a/3s3e/5s5s/1s1i/4s4h",
"/$s$s/0s0o/2s2a/3s3e/5s5s/1s1l/4s4a",
"/$s$s/0s0o/2s2a/3s3e/5s5s/1s1l/4s4h",
"/$s$s/0s0o/2s2a/3s3e/5s5s/4s4a",
"/$s$s/0s0o/2s2a/3s3e/5s5s/4s4h",
"/$s$s/0s0o/2s2a/3s3e/5s5s/4s4a",
"/$s$s/0s0o/2s2a/3s3e/5s5s/4s4h",
"/$s$s/0s0o/2s2a/3s3e/1s1i",
"/$s$s/0s0o/2s2a/3s3e/1s1l",
"/$s$s/0s0o/2s2a/3s3e/1s1i/4s4a",
"/$s$s/0s0o/2s2a/3s3e/1s1i/4s4h",
"/$s$s/0s0o/2s2a/3s3e/1s1l/4s4a",
"/$s$s/0s0o/2s2a/3s3e/1s1l/4s4h",
"/$s$s/0s0o/2s2a/3s3e/4s4a",
"/$s$s/0s0o/2s2a/3s3e/4s4h",
"/$s$s/0s0o/2s2a/3s3e/4s4a",
"/$s$s/0s0o/2s2a/3s3e/4s4h",
"/$s$s/0s0o/2s2a/5s5s",
"/$s$s/0s0o/2s2a/5s5s/1s1i",
"/$s$s/0s0o/2s2a/5s5s/1s1l",
"/$s$s/0s0o/2s2a/5s5s/1s1i/4s4a",
"/$s$s/0s0o/2s2a/5s5s/1s1i/4s4h",
"/$s$s/0s0o/2s2a/5s5s/1s1l/4s4a",
"/$s$s/0s0o/2s2a/5s5s/1s1l/4s4h",
"/$s$s/0s0o/2s2a/5s5s/4s4a",
"/$s$s/0s0o/2s2a/5s5s/4s4h",
"/$s$s/0s0o/2s2a/5s5s/4s4a",
"/$s$s/0s0o/2s2a/5s5s/4s4h",
"/$s$s/0s0o/2s2a/1s1i",
"/$s$s/0s0o/2s2a/1s1l",
"/$s$s/0s0o/2s2a/1s1i/4s4a",
"/$s$s/0s0o/2s2a/1s1i/4s4h",
"/$s$s/0s0o/2s2a/1s1l/4s4a",
"/$s$s/0s0o/2s2a/1s1l/4s4h",
"/$s$s/0s0o/2s2a/4s4a",
"/$s$s/0s0o/2s2a/4s4h",
"/$s$s/0s0o/2s2a/4s4a",
"/$s$s/0s0o/2s2a/4s4h",
"/$s$s/0s0o/3s3e",
"/$s$s/0s0o/3s3e/5s5s",
"/$s$s/0s0o/3s3e/5s5s/1s1i",
"/$s$s/0s0o/3s3e/5s5s/1s1l",
"/$s$s/0s0o/3s3e/5s5s/1s1i/4s4a",
"/$s$s/0s0o/3s3e/5s5s/1s1i/4s4h",
"/$s$s/0s0o/3s3e/5s5s/1s1l/4s4a",
"/$s$s/0s0o/3s3e/5s5s/1s1l/4s4h",
"/$s$s/0s0o/3s3e/5s5s/4s4a",
"/$s$s/0s0o/3s3e/5s5s/4s4h",
"/$s$s/0s0o/3s3e/5s5s/4s4a",
"/$s$s/0s0o/3s3e/5s5s/4s4h",
"/$s$s/0s0o/3s3e/1s1i",
"/$s$s/0s0o/3s3e/1s1l",
"/$s$s/0s0o/3s3e/1s1i/4s4a",
"/$s$s/0s0o/3s3e/1s1i/4s4h",
"/$s$s/0s0o/3s3e/1s1l/4s4a",
"/$s$s/0s0o/3s3e/1s1l/4s4h",
"/$s$s/0s0o/3s3e/4s4a",
"/$s$s/0s0o/3s3e/4s4h",
"/$s$s/0s0o/3s3e/4s4a",
"/$s$s/0s0o/3s3e/4s4h",
"/$s$s/0s0o/5s5s",
"/$s$s/0s0o/5s5s/1s1i",
"/$s$s/0s0o/5s5s/1s1l",
"/$s$s/0s0o/5s5s/1s1i/4s4a",
"/$s$s/0s0o/5s5s/1s1i/4s4h",
"/$s$s/0s0o/5s5s/1s1l/4s4a",
"/$s$s/0s0o/5s5s/1s1l/4s4h",
"/$s$s/0s0o/5s5s/4s4a",
"/$s$s/0s0o/5s5s/4s4h",
"/$s$s/0s0o/5s5s/4s4a",
"/$s$s/0s0o/5s5s/4s4h",
"/$s$s/0s0o/1s1i",
"/$s$s/0s0o/1s1l",
"/$s$s/0s0o/1s1i/4s4a",
"/$s$s/0s0o/1s1i/4s4h",
"/$s$s/0s0o/1s1l/4s4a",
"/$s$s/0s0o/1s1l/4s4h",
"/$s$s/0s0o/4s4a",
"/$s$s/0s0o/4s4h",
"/$s$s/0s0o/4s4a",
"/$s$s/0s0o/4s4h",
"/$s$s/2s2a",
"/$s$s/2s2a/3s3e",
"/$s$s/2s2a/3s3e/5s5s",
"/$s$s/2s2a/3s3e/5s5s/1s1i",
"/$s$s/2s2a/3s3e/5s5s/1s1l",
"/$s$s/2s2a/3s3e/5s5s/1s1i/4s4a",
"/$s$s/2s2a/3s3e/5s5s/1s1i/4s4h",
"/$s$s/2s2a/3s3e/5s5s/1s1l/4s4a",
"/$s$s/2s2a/3s3e/5s5s/1s1l/4s4h",
"/$s$s/2s2a/3s3e/5s5s/4s4a",
"/$s$s/2s2a/3s3e/5s5s/4s4h",
"/$s$s/2s2a/3s3e/5s5s/4s4a",
"/$s$s/2s2a/3s3e/5s5s/4s4h",
"/$s$s/2s2a/3s3e/1s1i",
"/$s$s/2s2a/3s3e/1s1l",
"/$s$s/2s2a/3s3e/1s1i/4s4a",
"/$s$s/2s2a/3s3e/1s1i/4s4h",
"/$s$s/2s2a/3s3e/1s1l/4s4a",
"/$s$s/2s2a/3s3e/1s1l/4s4h",
"/$s$s/2s2a/3s3e/4s4a",
"/$s$s/2s2a/3s3e/4s4h",
"/$s$s/2s2a/3s3e/4s4a",
"/$s$s/2s2a/3s3e/4s4h",
"/$s$s/2s2a/5s5s",
"/$s$s/2s2a/5s5s/1s1i",
"/$s$s/2s2a/5s5s/1s1l",
"/$s$s/2s2a/5s5s/1s1i/4s4a",
"/$s$s/2s2a/5s5s/1s1i/4s4h",
"/$s$s/2s2a/5s5s/1s1l/4s4a",
"/$s$s/2s2a/5s5s/1s1l/4s4h",
"/$s$s/2s2a/5s5s/4s4a",
"/$s$s/2s2a/5s5s/4s4h",
"/$s$s/2s2a/5s5s/4s4a",
"/$s$s/2s2a/5s5s/4s4h",
"/$s$s/2s2a/1s1i",
"/$s$s/2s2a/1s1l",
"/$s$s/2s2a/1s1i/4s4a",
"/$s$s/2s2a/1s1i/4s4h",
"/$s$s/2s2a/1s1l/4s4a",
"/$s$s/2s2a/1s1l/4s4h",
"/$s$s/2s2a/4s4a",
"/$s$s/2s2a/4s4h",
"/$s$s/2s2a/4s4a",
"/$s$s/2s2a/4s4h",
"/$s$s/3s3e",
"/$s$s/3s3e/5s5s",
"/$s$s/3s3e/5s5s/1s1i",
"/$s$s/3s3e/5s5s/1s1l",
"/$s$s/3s3e/5s5s/1s1i/4s4a",
"/$s$s/3s3e/5s5s/1s1i/4s4h",
"/$s$s/3s3e/5s5s/1s1l/4s4a",
"/$s$s/3s3e/5s5s/1s1l/4s4h",
"/$s$s/3s3e/5s5s/4s4a",
"/$s$s/3s3e/5s5s/4s4h",
"/$s$s/3s3e/5s5s/4s4a",
"/$s$s/3s3e/5s5s/4s4h",
"/$s$s/3s3e/1s1i",
"/$s$s/3s3e/1s1l",
"/$s$s/3s3e/1s1i/4s4a",
"/$s$s/3s3e/1s1i/4s4h",
"/$s$s/3s3e/1s1l/4s4a",
"/$s$s/3s3e/1s1l/4s4h",
"/$s$s/3s3e/4s4a",
"/$s$s/3s3e/4s4h",
"/$s$s/3s3e/4s4a",
"/$s$s/3s3e/4s4h",
"/$s$s/5s5s",
"/$s$s/5s5s/1s1i",
"/$s$s/5s5s/1s1l",
"/$s$s/5s5s/1s1i/4s4a",
"/$s$s/5s5s/1s1i/4s4h",
"/$s$s/5s5s/1s1l/4s4a",
"/$s$s/5s5s/1s1l/4s4h",
"/$s$s/5s5s/4s4a",
"/$s$s/5s5s/4s4h",
"/$s$s/5s5s/4s4a",
"/$s$s/5s5s/4s4h",
"/$s$s/1s1i",
"/$s$s/1s1l",
"/$s$s/1s1i/4s4a",
"/$s$s/1s1i/4s4h",
"/$s$s/1s1l/4s4a",
"/$s$s/1s1l/4s4h",
"/$s$s/4s4a",
"/$s$s/4s4h",
"/$s$s/4s4a",
"/$s$s/4s4h",
"/0s0o",
"/0s0o/2s2a",
"/0s0o/2s2a/3s3e",
"/0s0o/2s2a/3s3e/5s5s",
"/0s0o/2s2a/3s3e/5s5s/1s1i",
"/0s0o/2s2a/3s3e/5s5s/1s1l",
"/0s0o/2s2a/3s3e/5s5s/1s1i/4s4a",
"/0s0o/2s2a/3s3e/5s5s/1s1i/4s4h",
"/0s0o/2s2a/3s3e/5s5s/1s1l/4s4a",
"/0s0o/2s2a/3s3e/5s5s/1s1l/4s4h",
"/0s0o/2s2a/3s3e/5s5s/4s4a",
"/0s0o/2s2a/3s3e/5s5s/4s4h",
"/0s0o/2s2a/3s3e/5s5s/4s4a",
"/0s0o/2s2a/3s3e/5s5s/4s4h",
"/0s0o/2s2a/3s3e/1s1i",
"/0s0o/2s2a/3s3e/1s1l",
"/0s0o/2s2a/3s3e/1s1i/4s4a",
"/0s0o/2s2a/3s3e/1s1i/4s4h",
"/0s0o/2s2a/3s3e/1s1l/4s4a",
"/0s0o/2s2a/3s3e/1s1l/4s4h",
"/0s0o/2s2a/3s3e/4s4a",
"/0s0o/2s2a/3s3e/4s4h",
"/0s0o/2s2a/3s3e/4s4a",
"/0s0o/2s2a/3s3e/4s4h",
"/0s0o/2s2a/5s5s",
"/0s0o/2s2a/5s5s/1s1i",
"/0s0o/2s2a/5s5s/1s1l",
"/0s0o/2s2a/5s5s/1s1i/4s4a",
"/0s0o/2s2a/5s5s/1s1i/4s4h",
"/0s0o/2s2a/5s5s/1s1l/4s4a",
"/0s0o/2s2a/5s5s/1s1l/4s4h",
"/0s0o/2s2a/5s5s/4s4a",
"/0s0o/2s2a/5s5s/4s4h",
"/0s0o/2s2a/5s5s/4s4a",
"/0s0o/2s2a/5s5s/4s4h",
"/0s0o/2s2a/1s1i",
"/0s0o/2s2a/1s1l",
"/0s0o/2s2a/1s1i/4s4a",
"/0s0o/2s2a/1s1i/4s4h",
"/0s0o/2s2a/1s1l/4s4a",
"/0s0o/2s2a/1s1l/4s4h",
"/0s0o/2s2a/4s4a",
"/0s0o/2s2a/4s4h",
"/0s0o/2s2a/4s4a",
"/0s0o/2s2a/4s4h",
"/0s0o/3s3e",
"/0s0o/3s3e/5s5s",
"/0s0o/3s3e/5s5s/1s1i",
"/0s0o/3s3e/5s5s/1s1l",
"/0s0o/3s3e/5s5s/1s1i/4s4a",
"/0s0o/3s3e/5s5s/1s1i/4s4h",
"/0s0o/3s3e/5s5s/1s1l/4s4a",
"/0s0o/3s3e/5s5s/1s1l/4s4h",
"/0s0o/3s3e/5s5s/4s4a",
"/0s0o/3s3e/5s5s/4s4h",
"/0s0o/3s3e/5s5s/4s4a",
"/0s0o/3s3e/5s5s/4s4h",
"/0s0o/3s3e/1s1i",
"/0s0o/3s3e/1s1l",
"/0s0o/3s3e/1s1i/4s4a",
"/0s0o/3s3e/1s1i/4s4h",
"/0s0o/3s3e/1s1l/4s4a",
"/0s0o/3s3e/1s1l/4s4h",
"/0s0o/3s3e/4s4a",
"/0s0o/3s3e/4s4h",
"/0s0o/3s3e/4s4a",
"/0s0o/3s3e/4s4h",
"/0s0o/5s5s",
"/0s0o/5s5s/1s1i",
"/0s0o/5s5s/1s1l",
"/0s0o/5s5s/1s1i/4s4a",
"/0s0o/5s5s/1s1i/4s4h",
"/0s0o/5s5s/1s1l/4s4a",
"/0s0o/5s5s/1s1l/4s4h",
"/0s0o/5s5s/4s4a",
"/0s0o/5s5s/4s4h",
"/0s0o/5s5s/4s4a",
"/0s0o/5s5s/4s4h",
"/0s0o/1s1i",
"/0s0o/1s1l",
"/0s0o/1s1i/4s4a",
"/0s0o/1s1i/4s4h",
"/0s0o/1s1l/4s4a",
"/0s0o/1s1l/4s4h",
"/0s0o/4s4a",
"/0s0o/4s4h",
"/0s0o/4s4a",
"/0s0o/4s4h",
"/2s2a",
"/2s2a/3s3e",
"/2s2a/3s3e/5s5s",
"/2s2a/3s3e/5s5s/1s1i",
"/2s2a/3s3e/5s5s/1s1l",
"/2s2a/3s3e/5s5s/1s1i/4s4a",
"/2s2a/3s3e/5s5s/1s1i/4s4h",
"/2s2a/3s3e/5s5s/1s1l/4s4a",
"/2s2a/3s3e/5s5s/1s1l/4s4h",
"/2s2a/3s3e/5s5s/4s4a",
"/2s2a/3s3e/5s5s/4s4h",
"/2s2a/3s3e/5s5s/4s4a",
"/2s2a/3s3e/5s5s/4s4h",
"/2s2a/3s3e/1s1i",
"/2s2a/3s3e/1s1l",
"/2s2a/3s3e/1s1i/4s4a",
"/2s2a/3s3e/1s1i/4s4h",
"/2s2a/3s3e/1s1l/4s4a",
"/2s2a/3s3e/1s1l/4s4h",
"/2s2a/3s3e/4s4a",
"/2s2a/3s3e/4s4h",
"/2s2a/3s3e/4s4a",
"/2s2a/3s3e/4s4h",
"/2s2a/5s5s",
"/2s2a/5s5s/1s1i",
"/2s2a/5s5s/1s1l",
"/2s2a/5s5s/1s1i/4s4a",
"/2s2a/5s5s/1s1i/4s4h",
"/2s2a/5s5s/1s1l/4s4a",
"/2s2a/5s5s/1s1l/4s4h",
"/2s2a/5s5s/4s4a",
"/2s2a/5s5s/4s4h",
"/2s2a/5s5s/4s4a",
"/2s2a/5s5s/4s4h",
"/2s2a/1s1i",
"/2s2a/1s1l",
"/2s2a/1s1i/4s4a",
"/2s2a/1s1i/4s4h",
"/2s2a/1s1l/4s4a",
"/2s2a/1s1l/4s4h",
"/2s2a/4s4a",
"/2s2a/4s4h",
"/2s2a/4s4a",
"/2s2a/4s4h",
"/3s3e",
"/3s3e/5s5s",
"/3s3e/5s5s/1s1i",
"/3s3e/5s5s/1s1l",
"/3s3e/5s5s/1s1i/4s4a",
"/3s3e/5s5s/1s1i/4s4h",
"/3s3e/5s5s/1s1l/4s4a",
"/3s3e/5s5s/1s1l/4s4h",
"/3s3e/5s5s/4s4a",
"/3s3e/5s5s/4s4h",
"/3s3e/5s5s/4s4a",
"/3s3e/5s5s/4s4h",
"/3s3e/1s1i",
"/3s3e/1s1l",
"/3s3e/1s1i/4s4a",
"/3s3e/1s1i/4s4h",
"/3s3e/1s1l/4s4a",
"/3s3e/1s1l/4s4h",
"/3s3e/4s4a",
"/3s3e/4s4h",
"/3s3e/4s4a",
"/3s3e/4s4h",
"/5s5s",
"/5s5s/1s1i",
"/5s5s/1s1l",
"/5s5s/1s1i/4s4a",
"/5s5s/1s1i/4s4h",
"/5s5s/1s1l/4s4a",
"/5s5s/1s1l/4s4h",
"/5s5s/4s4a",
"/5s5s/4s4h",
"/5s5s/4s4a",
"/5s5s/4s4h",
"/1s1i",
"/1s1l",
"/1s1i/4s4a",
"/1s1i/4s4h",
"/1s1l/4s4a",
"/1s1l/4s4h",
"/4s4a",
"/4s4h",
"/4s4a",
"/4s4h",
(char *)0
};
int
FascistLook(PWDICT *pwp, const char *instring)
{
int i;
char *password;
uint32_t notfound;
char rpassword[PATH_MAX];
notfound = PW_WORDS(pwp);
(void) strlcpy(rpassword, instring, TRUNCSTRINGSIZE);
password = rpassword;
(void) strcpy(password, Lowercase(password));
(void) Trim(password);
for (i = 0; r_destructors[i]; i++) {
char *a;
if (!(a = Mangle(password, r_destructors[i]))) {
continue;
}
if (FindPW(pwp, a) != notfound) {
return (DICTIONARY_WORD);
}
}
(void) strlcpy(password, Reverse(password), PATH_MAX);
for (i = 0; r_destructors[i]; i++) {
char *a;
if (!(a = Mangle(password, r_destructors[i]))) {
continue;
}
if (FindPW(pwp, a) != notfound) {
return (REVERSE_DICTIONARY_WORD);
}
}
return (0);
}
int
DictCheck(const char *password, char *path)
{
PWDICT *pwp;
int r;
if ((pwp = PWOpen(path, "rF")) == NULL)
return (DATABASE_OPEN_FAIL);
r = FascistLook(pwp, password);
(void) PWClose(pwp);
return (r);
}