int
__cdecl __noreturn main(
int
argc,
const
char
**argv,
const
char
**envp)
{
unsigned
int
v3;
int
v4;
unsigned
int
v5;
unsigned
int
v6;
int
v7;
unsigned
__int64
v8;
unsigned
__int64
v9;
unsigned
int
v10;
__int64
v11;
unsigned
int
v12;
int
v13;
unsigned
int
v14;
int
v15;
unsigned
int
v16;
unsigned
int
v17;
unsigned
int
v18;
unsigned
int
v19;
unsigned
__int64
v20;
unsigned
int
v21;
int
v22;
char
v23;
char
v24;
int
v25;
unsigned
int
v26;
int
v27;
int
v28;
int
v29;
unsigned
int
v30;
unsigned
int
v31;
int
v32;
int
v33;
char
Arglist[260];
while
( 1 )
{
memset
(Arglist, 0, 0x100u);
xmmword_4043C8 = xmmword_404060;
sub_401020(
":Please input password(without spaces).\r\n[:] "
, v23);
sub_401060(
"%s"
, (
char
)Arglist);
v3 = 0;
v30 = 0;
do
{
v4 = *((
char
*)&xmmword_4043C8 + v3);
v5 = 0xDEADC0DE;
v28 = v4;
v6 = 0xDEADC0DE;
v24 = -1;
LOBYTE(v7) = 0xDE;
while
( 1 )
{
while
( 1 )
{
while
( v6 > 0xC7B5A3F1 || v6 >= 0xC7B5A3F1 && v5 > 0x9D4E6F82 )
{
if
( v5 == -559038242 && v6 == -559038242 )
{
if
( (v7 & 1) != 0 )
{
v5 = -1655804030;
v6 = -944397327;
}
else
{
v5 = -944397327;
v6 = -1655804030;
}
v11 = 345069055i64 * (unsigned
int
)(v4 + 197);
v4 = v28;
v7 = HIBYTE(HIDWORD(v11));
}
}
if
( v5 != -1655804030 || v6 != -944397327 )
break
;
v5 = -944397327;
v6 = -1655804030;
LOBYTE(v7) = 0;
}
if
( v5 == 0xA8C3D7E4 && !v6 )
break
;
if
( v5 == -944397327 && v6 == -1655804030 )
{
v24 = v4 & 0x3A | ~(_BYTE)v4 & 0xC5;
v8 = 0x9D4E6F82C7B5A3F1ui64 * (
int
)(v4 & 0xFFFFFF3A | ~(_BYTE)v4 & 0xC5);
v5 = -1463560220;
v9 = 3781878765i64 * HIDWORD(v8)
+ ((3781878765u * (unsigned
__int64
)(-944397327 * (v4 & 0xFFFFFF3A | ~(_BYTE)v4 & 0xC5))) >> 32);
v10 = (((250939340i64 * (unsigned
int
)v8 + (unsigned
__int64
)(unsigned
int
)v9) >> 32) + HIDWORD(v9)) >> 32;
HIDWORD(v9) += (250939340i64 * (unsigned
int
)v8 + (unsigned
__int64
)(unsigned
int
)v9) >> 32;
v4 = v28;
v7 = (__PAIR64__(v10, HIDWORD(v9))
+ 250939340i64 * HIDWORD(v8)
+ ((v8 - (__PAIR64__(v10, HIDWORD(v9)) + 250939340i64 * HIDWORD(v8))) >> 1)) >> 31;
v6 = 0;
}
}
*((_BYTE *)&xmmword_4043C8 + v30) = v24 - v30 * (15 - v30);
v3 = v30 + 1;
v30 = v3;
}
while
( v3 < 0x10 );
v12 = 0;
v27 = 0;
v26 = 0;
do
{
v13 = *((
char
*)&xmmword_4043C8 + v12);
v14 = -559038242;
v15 = Arglist[v12];
v16 = -559038242;
v25 = v13;
v33 = v15;
LOBYTE(v17) = -34;
v29 = -1;
while
( 1 )
{
while
( 1 )
{
while
( v16 > 0xC7B5A3F1 || v16 >= 0xC7B5A3F1 && v14 > 0x9D4E6F82 )
{
if
( v14 == -559038242 && v16 == -559038242 )
{
if
( (v17 & 1) != 0 )
{
v14 = -1655804030;
v16 = -944397327;
}
else
{
v14 = -944397327;
v16 = -1655804030;
}
v21 = v15 + v13;
v13 = v25;
v17 = v21 / 0xC725A3A;
}
}
if
( v14 != -1655804030 || v16 != -944397327 )
break
;
v14 = -944397327;
v16 = -1655804030;
LOBYTE(v17) = 0;
}
if
( v14 == -1463560220 && !v16 )
break
;
if
( v14 == -944397327 && v16 == -1655804030 )
{
v32 = v15 & ~v13;
v29 = (v32 | v13 & ~v15) == 0;
v31 = (0x9D4E6F82C7B5A3F1ui64 * ((v32 | v13 & ~v15) == 0)) >> 32;
v14 = -1463560220;
v18 = (((250939340i64 * (unsigned
int
)(-944397327 * v29)
+ ((0x4C2B8975A651791Di64 * (unsigned
__int64
)((v32 | v13 & ~v15) == 0)) >> 32)) >> 32)
+ ((3781878765i64 * v31 + ((3781878765u * (unsigned
__int64
)(unsigned
int
)(-944397327 * v29)) >> 32)) >> 32)) >> 32;
v19 = ((250939340i64 * (unsigned
int
)(-944397327 * v29)
+ ((0x4C2B8975A651791Di64 * (unsigned
__int64
)((v32 | v13 & ~v15) == 0)) >> 32)) >> 32)
+ ((3781878765i64 * v31 + ((3781878765u * (unsigned
__int64
)(unsigned
int
)(-944397327 * v29)) >> 32)) >> 32);
v15 = v33;
v20 = __PAIR64__(v18, v19)
+ 250939340i64 * v31
+ ((__PAIR64__(v31, -944397327 * v29) - (__PAIR64__(v18, v19) + 250939340i64 * v31)) >> 1);
v13 = v25;
v17 = v20 >> 31;
v16 = 0;
}
}
v22 = v27;
if
( !v29 )
v22 = -1;
v12 = v26 + 1;
v27 = v22;
v26 = v12;
}
while
( v12 < 0xF );
if
( v22 )
puts
(
"[x]:Failed.\r\n"
);
else
puts
(
"[o]:Success.\r\n"
);
}
}