int
__fastcall sub_492EECD4(
int
a1,
int
a2,
int
a3,
int
a4)
{
int
v4;
int
v5;
int
result;
int
v7;
int
Name;
int
v9;
char
*v10;
int
v11;
int
Password;
signed
int
v13;
int
v14;
char
v15;
int
v16;
int
v17;
int
(__fastcall *v18)(_DWORD, _DWORD, _DWORD, _DWORD);
int
v19;
int
v20;
int
jName;
int
jPassword;
int
v23;
unsigned
int
v24;
char
v25;
char
NamePad[12];
char
charTable[64];
int
v28;
v23 = a2;
jPassword = a4;
v4 = a1;
jName = a3;
v28 = _stack_chk_guard;
memcpy_0(charTable,
"0123456789QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm"
, 63);
v5 = 0;
v24 = 0x213F2E2Cu;
v25 = 0;
result = (*(
int
(__fastcall **)(
int
,
int
))(*(_DWORD *)v4 + 672))(v4, jPassword);
if
( result == 12 )
{
result = (*(
int
(__fastcall **)(
int
,
int
))(*(_DWORD *)v4 + 672))(v4, jName) - 8;
if
( (unsigned
int
)result <= 0xC )
{
v7 = (*(
int
(__fastcall **)(
int
,
int
))(*(_DWORD *)v4 + 672))(v4, jName);
Name = (*(
int
(__fastcall **)(
int
,
int
, _DWORD))(*(_DWORD *)v4 + 676))(v4, jName, 0);
v9 = 0;
if
( v7 <= 12 )
{
while
( v9 < v7 )
{
NamePad[v9] = *(_BYTE *)(Name + v9);
++v9;
}
v10 = (
char
*)&v24 - v7;
while
( v7 != 12 )
{
NamePad[v7] = v10[v7];
++v7;
}
}
else
{
do
{
NamePad[v5] = *(_BYTE *)(Name + v5);
++v5;
}
while
( v5 != 12 );
}
v11 = 0;
Password = (*(
int
(__fastcall **)(
int
,
int
, _DWORD))(*(_DWORD *)v4 + 676))(v4, jPassword, 0);
v13 = 11;
while
( 1 )
{
v11 += (unsigned
__int8
)NamePad[v13];
v14=62;
result = ((
int
(__fastcall *)(
int
,
signed
int
))sub_492EEF2C)(v11, v14);
if
( (unsigned
__int8
)charTable[v14] != *(_BYTE *)(Password + v13) )
break
;
v15 = (unsigned
int
)v13-- >= 1;
if
( !v15 )
{
result = (*(
int
(__fastcall **)(
int
, _DWORD))(*(_DWORD *)v4 + 24))(v4,
"android/widget/Toast"
);
v16 = result;
if
( result )
{
result = (*(
int
(__fastcall **)(
int
,
int
, _DWORD, _DWORD))(*(_DWORD *)v4 + 452))(
v4,
result,
"makeText"
,
"(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;"
);
v17 = result;
if
( result )
{
v18 = *(
int
(__fastcall **)(_DWORD, _DWORD, _DWORD, _DWORD))(*(_DWORD *)v4 + 456);
(*(
void
(__fastcall **)(
int
, _DWORD))(*(_DWORD *)v4 + 668))(v4,
"Congratulation! You crack it!"
);
result = v18(v4, v16, v17, v23);
v19 = result;
if
( result )
{
v20 = (*(
int
(__fastcall **)(
int
,
int
, _DWORD, _UNKNOWN *))(*(_DWORD *)v4 + 132))(
v4,
v16,
"show"
,
&unk_492F053C);
result = (*(
int
(__fastcall **)(
int
,
int
,
int
))(*(_DWORD *)v4 + 244))(v4, v19, v20);
}
}
}
break
;
}
}
}
}
if
( v28 != _stack_chk_guard )
result = ((
int
(__fastcall *)(
int
))unk_492EEC68)(result);
return
result;
}