/
/
各种版权信息这里先略过,对于编译没啥用
/
/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Function Prototypes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
int64_t decrypt_string(uint32_t param_index);
/
/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Global Variables
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
char byte_96954[
68
];
/
/
0x96954
char global_string_region[
2640
];
/
/
0x95f04
int64_t hash_region
=
0x272c302a2c28000a
;
/
/
0x94328
/
/
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Functions
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
/
/
Address
range
:
0x117e8
-
0x11a34
/
/
Comment: decrypt
int64_t decrypt_string(uint32_t param_index) {
int64_t v1
=
param_index;
/
/
0x11810
char
*
v2
=
(char
*
)(v1
+
(int64_t)&hash_region);
/
/
0x11814
unsigned char v3
=
*
v2;
/
/
0x11814
int64_t result;
/
/
0x117e8
int64_t v4;
/
/
0x117e8
if
(v3
=
=
1
) {
unsigned char v5
=
*
(char
*
)(v1
+
(int64_t)&global_string_region
+
1
);
/
/
0x11830
result
=
v1
+
(int64_t)&global_string_region
+
2
;
v4
=
v5;
}
else
{
unsigned char v6
=
*
(char
*
)(v1
+
(int64_t)&hash_region
+
1
) ^ v3;
int64_t v7
=
v6;
/
/
0x11844
int64_t v8
=
v1
+
(int64_t)&hash_region
+
2
;
/
/
0x1184c
int64_t v9
=
v8;
/
/
0x11854
char v10
=
-
1
;
/
/
0x11854
if
(v6 !
=
0
) {
int64_t v11
=
v7
-
1
;
/
/
0x11868
int64_t v12
=
255
^ (int64_t)
*
(char
*
)v9;
/
/
0x1186c
int64_t v13
=
v12;
/
/
0x11870
int64_t v14
=
v11;
/
/
0x11870
v9
+
+
;
while
(v11 !
=
0
) {
/
/
0x11864
v11
=
v14
-
1
;
v12
=
v13 ^ (int64_t)
*
(char
*
)v9;
v13
=
v12;
v14
=
v11;
v9
+
+
;
}
/
/
0x1187c
v10
=
v12;
}
int64_t v15
=
v7
+
1
;
if
(
*
(char
*
)(v15
+
v8) !
=
v10) {
/
/
0x11890
__asm_svc(
0
);
}
int64_t v16
=
49
;
/
/
0x118c8
int64_t v17
=
1
;
/
/
0x118c8
if
(byte_96954[
0
]
=
=
0
) {
*
(char
*
)(v17
+
(int64_t)&byte_96954)
=
(char)v16;
int64_t v18
=
v17
+
1
;
/
/
0x118e4
v16
=
v16
+
1
&
0xffffffff
;
v17
=
v18;
int64_t v19
=
0
;
/
/
0x118ec
int64_t v20
=
65
;
/
/
0x118ec
while
(v18 !
=
10
) {
/
/
0x118dc
*
(char
*
)(v17
+
(int64_t)&byte_96954)
=
(char)v16;
v18
=
v17
+
1
;
v16
=
v16
+
1
&
0xffffffff
;
v17
=
v18;
v19
=
0
;
v20
=
65
;
}
int64_t v21
=
v19
+
1
;
/
/
0x118fc
*
(char
*
)(v19
+
(int64_t)&byte_96954
+
10
)
=
(char)v20;
v19
=
v21;
v20
=
v20
+
1
&
0xffffffff
;
while
(v21 !
=
26
) {
/
/
0x118f8
v21
=
v19
+
1
;
*
(char
*
)(v19
+
(int64_t)&byte_96954
+
10
)
=
(char)v20;
v19
=
v21;
v20
=
v20
+
1
&
0xffffffff
;
}
/
/
0x11910
byte_96954[
0
]
=
48
;
}
int64_t v22
=
v1
+
(int64_t)&global_string_region
+
2
;
/
/
0x11918
int64_t v23
=
v22;
/
/
0x1191c
int64_t v24
=
v8;
/
/
0x1191c
char v25
=
-
1
;
/
/
0x1191c
if
(v6 !
=
0
) {
uint64_t v26
=
(int64_t)v3
%
256
;
/
/
0x11944
char v27
=
*
(char
*
)((
-
36
*
0x38e38e39
*
v26
/
0x800000000
+
v26 &
0xffffffff
)
+
(int64_t)&byte_96954);
/
/
0x11958
int64_t v28
=
v7
+
0xffffffff
;
/
/
0x11960
*
(char
*
)v23
=
v27 ^
*
(char
*
)v24;
v23
+
+
;
v24
+
+
;
int64_t v29
=
v28 &
0xffffffff
;
/
/
0x1196c
int64_t v30
=
v26
+
1
;
/
/
0x1196c
int64_t v31
=
v22;
/
/
0x1196c
while
((int32_t)v28 !
=
0
) {
/
/
0x11944
v26
=
v30
%
256
;
v27
=
*
(char
*
)((
-
36
*
0x38e38e39
*
v26
/
0x800000000
+
v26 &
0xffffffff
)
+
(int64_t)&byte_96954);
v28
=
v29
+
0xffffffff
;
*
(char
*
)v23
=
v27 ^
*
(char
*
)v24;
v23
+
+
;
v24
+
+
;
v29
=
v28 &
0xffffffff
;
v30
=
v26
+
1
;
v31
=
v22;
}
int64_t v32
=
v7
+
0xffffffff
;
/
/
0x11984
int64_t v33
=
255
^ (int64_t)
*
(char
*
)v31;
/
/
0x11988
int64_t v34
=
v33;
/
/
0x1198c
v31
+
+
;
int64_t v35
=
v32 &
0xffffffff
;
/
/
0x1198c
while
((int32_t)v32 !
=
0
) {
/
/
0x11980
v32
=
v35
+
0xffffffff
;
v33
=
v34 ^ (int64_t)
*
(char
*
)v31;
v34
=
v33;
v31
+
+
;
v35
=
v32 &
0xffffffff
;
}
/
/
0x11998
v25
=
v33;
}
/
/
0x11998
*
(char
*
)(v15
+
v22)
=
v25;
int64_t v36
=
(
0x100000000
*
(int64_t)param_index
+
0x200000000
>>
32
)
+
v7;
/
/
0x119a8
*
(char
*
)(v36
+
(int64_t)&global_string_region)
=
0
;
*
(char
*
)(v1
+
(int64_t)&global_string_region)
=
1
;
*
(char
*
)(v1
+
(int64_t)&global_string_region
+
1
)
=
v6;
*
(char
*
)(v36
+
(int64_t)&hash_region)
=
0
;
*
v2
=
1
;
result
=
v22;
v4
=
v7;
}
int64_t v37
=
255
;
/
/
0x119c4
int64_t v38
=
v4;
/
/
0x119c4
int64_t v39
=
result;
/
/
0x119c4
char v40
=
-
1
;
/
/
0x119c4
if
(v4 !
=
0
) {
v38
-
-
;
v37 ^
=
(int64_t)
*
(char
*
)v39;
v39
+
+
;
while
(v38 !
=
0
) {
/
/
0x119d0
v38
-
-
;
v37 ^
=
(int64_t)
*
(char
*
)v39;
v39
+
+
;
}
/
/
0x119e0
v40
=
v37;
}
/
/
0x119e0
if
(
*
(char
*
)(result
+
1
+
v4) !
=
v40) {
/
/
0x119f4
__asm_svc(
0
);
}
/
/
0x11a14
return
result;
}