byte_1D9591B[
132
]
=
[
0x11
,
0x2B
,
0x65
,
0x78
,
0x17
,
0x0C
,
0x0D
,
0x17
,
0x15
,
0x35
,
0x62
,
0x65
,
0x7B
,
0x62
,
0x15
,
0x7F
,
0x11
,
0x2C
,
0x63
,
0x17
,
0x4D
,
0x57
,
0x0C
,
0x59
,
0x0B
,
0x20
,
0x65
,
0x21
,
0x20
,
0x63
,
0x0C
,
0x7F
,
0x12
,
0x75
,
0x04
,
0x0A
,
0x0C
,
0x7B
,
0x15
,
0x10
,
0x21
,
0x36
,
0x37
,
0x1B
,
0x23
,
0x65
,
0x64
,
0x0B
,
0x0F
,
0x47
,
0x2F
,
0x5A
,
0x24
,
0x11
,
0x59
,
0x41
,
0x4C
,
0x5B
,
0x21
,
0x66
,
0x5A
,
0x31
,
0x40
,
0x51
,
0x7E
,
0x0D
,
0x15
,
0x43
,
0x2D
,
0x27
,
0x58
,
0x51
,
0x0F
,
0x57
,
0x15
,
0x13
,
0x24
,
0x14
,
0x0E
,
0x2B
,
0x25
,
0x16
,
0x1F
,
0x0E
,
0x4E
,
0x0E
,
0x3F
,
0x29
,
0x42
,
0x52
,
0x10
,
0x29
,
0x0F
,
0x69
,
0x65
,
0x49
,
0x1C
,
0x20
,
0x42
,
0x54
,
0x22
,
0x3D
,
0x4A
,
0x07
,
0x37
,
0x4D
,
0x11
,
0x63
,
0x69
,
0x65
,
0x13
,
0x4A
,
0x2D
,
0x2D
,
0x4B
,
0x41
,
0x59
,
0x0E
,
0x73
,
0x24
,
0x4E
,
0x15
,
0x62
,
0x77
,
0x10
,
0x32
,
0x3C
,
0x46
,
0x50
,
0x5A
,
0x64
,
0x6E
]
unsigned __int8
*
__fastcall cocos2d::FileUtils::decryptYF(
cocos2d::FileUtils
*
this,
unsigned __int8
*
a2,
int
a3,
__int64
*
a4)
{
unsigned __int8
*
result;
/
/
x0
int
v5;
/
/
w8
int
v6;
/
/
w13
int
v7;
/
/
w10
int
v8;
/
/
w9
int
v9;
/
/
w11
signed __int64 v10;
/
/
x12
signed __int64 v11;
/
/
x14
int
v12;
/
/
w15
__int64 v13;
/
/
x5
__int64 v14;
/
/
x7
char
*
v15;
/
/
x4
char v16;
/
/
w17
char v17;
/
/
w16
unsigned __int8 v18;
/
/
w16
__int64 v19;
/
/
x14
char v20;
/
/
w15
if
( a3 <
2
)
return
0LL
;
if
(
*
a2
=
=
65
&& a2[
1
]
=
=
66
)
{
v5
=
a2[
13
] | (_byteswap_ushort(
*
((_WORD
*
)a2
+
1
)) <<
16
) | (a2[
12
] <<
8
);
v6
=
_byteswap_ushort(
*
((_WORD
*
)a2
+
5
)) | (_byteswap_ushort(
*
((_WORD
*
)a2
+
2
)) <<
16
);
v7
=
v6
%
(a2[
15
] | (a2[
14
] <<
8
))
+
v6;
if
( (v7 &
3
) !
=
0
)
v8
=
v5
%
3
;
else
v8
=
3
;
if
( v7 >
=
a3 )
v9
=
a3;
else
v9
=
v6
%
(a2[
15
] | (a2[
14
] <<
8
))
+
v6;
result
=
a2
+
16
;
if
( v9 <
1
)
goto LABEL_24;
if
( v9
=
=
1
)
{
v10
=
0LL
;
}
else
{
v10
=
0LL
;
if
(
-
17
-
v5 >
=
(unsigned
int
)(v9
-
1
) && !((unsigned __int64)(v9
-
1LL
) >>
32
) )
{
v10
=
v9 &
0xFFFFFFFFFFFFFFFELL
;
v11
=
v10;
v12
=
v5;
do
{
v13
=
(unsigned
int
)(v12
+
16
);
v14
=
(unsigned
int
)(v12
+
17
);
v15
=
&byte_1D9591B[
33
*
v8];
v16
=
v15[v12
%
33
];
v17
=
v15[(v12
+
1
)
%
33
];
v11
-
=
2LL
;
v12
+
=
2
;
v18
=
a2[v14] ^ v17;
a2[v13] ^
=
v16;
a2[v14]
=
v18;
}
while
( v11 );
if
( v10
=
=
v9 )
goto LABEL_24;
}
}
do
{
v19
=
(unsigned
int
)(v5
+
v10
+
16
);
v20
=
byte_1D9591B[
33
*
v8
+
(v5
+
(
int
)v10
+
+
)
%
33
];
a2[v19] ^
=
v20;
}
while
( v10 < v9 );
LABEL_24:
if
( a4 )
*
a4
=
(unsigned
int
)(a3
-
16
);
return
result;
}
if
( a4 )
*
a4
=
a3;
return
a2;
}