-
Notifications
You must be signed in to change notification settings - Fork 26
/
Copy pathis_licensed.asm
215 lines (186 loc) · 4.98 KB
/
is_licensed.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
; =============== S U B R O U T I N E =======================================
is_licensed: ; CODE XREF: sub_EC64B68+10Ap
; sub_EC960D4+D8p ...
stm r6-r16, lr, (--sp)
mov r7, r0
lea sp, 0xFFFFFFF0(sp)
mov r6, r1
cmp r7, 'H263'
beq return_1
cmp r7, 'H264'
beq return_1
cmp r7, 'MVC0'
beq return_1
cmp r7, 'MPG4'
beq return_1
cmp r7, 'MJPA'
beq return_1
cmp r7, 'MJPB'
beq return_1
cmp r7, 'MJPG'
beq return_1
cmp r7, 'AGIF'
beq return_1
cmp r7, 'PCM'
beq return_1
cmp r7, 'WMV9'
bne not_WMV9
mov r7, 'WVC1'
not_WMV9: ; CODE XREF: is_licensed+56j
cmp r7, 'MPG2'
cmpeq r6, 0
bne not_MPG2
ld r1, 0x1DC0(gp) ; XREF 0xEE86680 dword_EE86680
addcmpbne r1, 0, 0, return_1
not_MPG2: ; CODE XREF: is_licensed+68j
cmp r7, 'WVC1'
cmpeq r6, 0
bne deny
ld r2, 0x2120(gp) ; XREF 0xEE869E0 dword_EE869E0
addcmpbeq r2, 0, 0, deny
return_1: ; CODE XREF: is_licensed+Ej
; is_licensed+16j ...
mov r0, 1
b return
; ---------------------------------------------------------------------------
deny: ; CODE XREF: is_licensed+7Cj
; is_licensed+82j
mov r5, r7
lea r8, 0x4(sp)
and r5, 0xFF000000
addcmpbeq r5, 0, 0, loc_EC96354
lea r1, 0x12E(pc) ; "%s_%c%c%c%c"
addcmpbeq r6, 0, 0, loc_EC96338
lea r2, 0x764(gp) ; XREF 0xEE85024 aEncode ; "encode"
b loc_EC9633C
; ---------------------------------------------------------------------------
loc_EC96338: ; CODE XREF: is_licensed+9Ej
lea r2, 0x76B(gp) ; XREF 0xEE8502B aDecode ; "decode"
loc_EC9633C: ; CODE XREF: is_licensed+A6j
lsr r4, r7, 0x10
lsr r5, r7, 0x8
bmask r0, r7, 0x8
lsr r3, r7, 0x18
st r0, (sp)
bmask r4, 0x8
bmask r5, 0x8
b loc_EC96376
; ---------------------------------------------------------------------------
loc_EC96354: ; CODE XREF: is_licensed+96j
lea r1, 0xF8(pc)
addcmpbeq r6, 0, 0, loc_EC96362
lea r2, 0x772(gp) ; XREF 0xEE85032 aEncode_0 ; "encode"
b loc_EC96366
; ---------------------------------------------------------------------------
loc_EC96362: ; CODE XREF: is_licensed+C8j
lea r2, 0x779(gp) ; XREF 0xEE85039 aDecode_0 ; "decode"
loc_EC96366: ; CODE XREF: is_licensed+D0j
lsr r3, r7, 0x10
lsr r4, r7, 0x8
bmask r3, 0x8
bmask r4, 0x8
bmask r5, r7, 0x8
loc_EC96376: ; CODE XREF: is_licensed+C2j
mov r0, r8
bl sub_EDCA1AA
bl sub_EC8242E
cmp r7, 0x4D504732
mov r9, r0
cmpeq r6, 0
bne loc_EC963A8
mov r0, 0x2D
mov r1, 0
bl sub_ECE7894
mov r3, r0
mov r0, r9
mov r1, r7
mov r2, 0
bl sub_EC9DB40
addcmpbne r0, 0, 0, return_2
loc_EC963A8: ; CODE XREF: is_licensed+FCj
cmp r7, 0x57564331
cmpeq r6, 0
bne loc_EC963CE
mov r0, 0x2E
mov r1, 0
bl sub_ECE7894
mov r3, r0
mov r0, r9
mov r1, r7
mov r2, 0
bl sub_EC9DB40
addcmpbne r0, 0, 0, return_2
loc_EC963CE: ; CODE XREF: is_licensed+122j
mov r0, r8
mov r1, 0
bl sub_ED60C5A
mov r8, r0
b loc_EC963E0
; ---------------------------------------------------------------------------
return_2: ; CODE XREF: is_licensed+114j
; is_licensed+13Aj ...
mov r0, 0x2
b return
; ---------------------------------------------------------------------------
loc_EC963DE: ; CODE XREF: is_licensed+180j
add r8, 1
loc_EC963E0: ; CODE XREF: is_licensed+148j
; is_licensed+17Cj
addcmpbeq r8, 0, 0, return_0
mov r0, r8
mov r1, 0
mov r2, 0
bl sub_EDCC4FA
mov r10, r0
mov r0, r9
mov r1, r7
mov r2, 0
mov r3, r10
bl sub_EC9DB40
addcmpbne r0, 0, 0, loc_EC96412
mov r0, r8
mov r1, 0x2C
bl sub_EDCBC50
mov r8, r0
addcmpbeq r8, 0, 0, loc_EC963E0
b loc_EC963DE
; ---------------------------------------------------------------------------
loc_EC96412: ; CODE XREF: is_licensed+16Cj
cmp r7, 0x4D504732
cmpeq r6, 0
bne loc_EC9642A
mov r0, 0x2D
mov r1, 0
mov r2, r10
bl sub_EDBF492
loc_EC9642A: ; CODE XREF: is_licensed+18Cj
cmp r7, 0x57564331
cmpeq r6, 0
bne return_2
mov r0, 0x2E
mov r1, 0
mov r2, r10
bl sub_EDBF492
b return_2
; ---------------------------------------------------------------------------
return_0: ; CODE XREF: is_licensed:loc_EC963E0j
mov r0, 0
return: ; CODE XREF: is_licensed+88j
; is_licensed+14Cj
lea sp, 0x10(sp)
ldm r6-r16, pc, (sp++)
; End of function is_licensed
; ---------------------------------------------------------------------------
nop
loc_EC9644C: ; DATA XREF: is_licensed:loc_EC96354r
bitclear r5, 0x12
ld r15, (r5+0x14)
ld r3, (r6+0x14)
ld r3, (r6+0x14)
bl r3
bkpt
; ---------------------------------------------------------------------------
aS_CCCC .ascii "%s_%c%c%c%c",0 ; DATA XREF: is_licensed+9Ar
; =============== S U B R O U T I N E =======================================
sub_EC96464: ; CODE XREF: sub_ED48C70+A2p
stm r6-r18, lr, (--sp)