This source file includes following definitions.
- change_video_tables
- movie_record_task
- sub_FFB92F58_my
- sub_FFB01550_my
1 #include "conf.h"
2
3 int *video_quality = &conf.video_quality;
4 int *video_mode = &conf.video_mode;
5
6 long def_table1[9]={0x2000,0x38D,0x788,0x5800,0x9C5,0x14B8,0x10000,0x1C6A,0x3C45};
7 long def_table2[9]={0x1CCD,-0x2E1,-0x579,0x4F33,-0x7EB,-0xF0C,0xE666,-0x170A,-0x2BC6};
8
9 long table1[9], table2[9];
10
11 void change_video_tables(int a, int b){
12 int i;
13 for (i=0;i<9;i++) {table1[i]=(def_table1[i]*a)/b; table2[i]=(def_table2[i]*a)/b;}
14 }
15
16 long CompressionRateTable[]={0x60, 0x5D, 0x5A, 0x57, 0x54, 0x51, 0x4D, 0x48, 0x42, 0x3B, 0x32, 0x29, 0x22, 0x1D, 0x17, 0x14, 0x10, 0xE, 0xB, 9, 7, 6, 5, 4, 3, 2, 1};
17
18
19 void __attribute__((naked,noinline)) movie_record_task(){
20 asm volatile(
21 "loc_FFB92820:\n"
22 " STMFD SP!, {R4,R5,LR}\n"
23 " SUB SP, SP, #4\n"
24 " MOV R5, SP\n"
25 " MOV R4, #0\n"
26 "loc_FFB92830:\n"
27 " LDR R3, =0xA8508\n"
28 " MOV R2, #0\n"
29 " LDR R0, [R3]\n"
30 " MOV R1, R5\n"
31 " BL sub_FFB223A8\n"
32 " LDR R3, =0xA8628\n"
33 " LDR R2, [R3]\n"
34 " CMP R2, #0\n"
35 " BNE loc_FFB928DC\n"
36 " LDR R1, [SP]\n"
37 " LDR R3, [R1]\n"
38 " SUB R3, R3, #2\n"
39 " MOV R0, R1\n"
40 " CMP R3, #9\n"
41 " LDRLS PC, [PC,R3,LSL#2]\n"
42 " B loc_FFB928E0\n"
43 " .long loc_FFB928A0\n"
44 " .long loc_FFB928B8\n"
45 " .long loc_FFB928C0\n"
46 " .long loc_FFB928C8\n"
47 " .long loc_FFB928A8\n"
48 " .long loc_FFB928D0\n"
49 " .long loc_FFB928B0\n"
50 " .long loc_FFB928E0\n"
51 " .long loc_FFB928D8\n"
52 " .long loc_FFB92898\n"
53 "loc_FFB92898:\n"
54 " BL sub_FFB92948\n"
55 " B loc_FFB928DC\n"
56 "loc_FFB928A0:\n"
57 "BL unlock_optical_zoom\n"
58 " BL sub_FFB92B50\n"
59 " B loc_FFB928DC\n"
60 "loc_FFB928A8:\n"
61
62 " BL sub_FFB92F58_my\n"
63 " B loc_FFB928DC\n"
64 "loc_FFB928B0:\n"
65 " BL sub_FFB937E4\n"
66 " B loc_FFB928DC\n"
67 "loc_FFB928B8:\n"
68 " BL sub_FFB9329C\n"
69 " B loc_FFB928DC\n"
70 "loc_FFB928C0:\n"
71 " BL sub_FFB93980\n"
72 " B loc_FFB928DC\n"
73 "loc_FFB928C8:\n"
74 " BL sub_FFB93BB4\n"
75 " B loc_FFB928DC\n"
76 "loc_FFB928D0:\n"
77 " BL sub_FFB9386C\n"
78 " B loc_FFB928DC\n"
79 "loc_FFB928D8:\n"
80 " BL sub_FFB932EC\n"
81 "\n"
82 "loc_FFB928DC:\n"
83 " LDR R1, [SP]\n"
84 "loc_FFB928E0:\n"
85 " LDR R3, =0xA850C\n"
86 " STR R4, [R1]\n"
87 " LDR R0, [R3]\n"
88 " MOV R2, R4\n"
89 " BL sub_FFB227C0\n"
90 " B loc_FFB92830\n"
91 );
92 }
93
94
95 void __attribute__((naked,noinline)) sub_FFB92F58_my(){
96 asm volatile(
97
98 " STMFD SP!, {R4-R11,LR}\n"
99 " LDR R7, =0xA8640\n"
100 " SUB SP, SP, #0x3C\n"
101 " LDR R3, [R7]\n"
102 " MOV R5, #0\n"
103 " CMP R3, #3\n"
104 " MOV R4, R0\n"
105 " STR R5, [SP,#0x34]\n"
106 " STR R5, [SP,#0x2C]\n"
107 " MOV R6, #1\n"
108 " MOVEQ R3, #4\n"
109 " STREQ R3, [R7]\n"
110 " LDR R3, =0xA86EC\n"
111 " MOV LR, PC\n"
112 " LDR PC, [R3]\n"
113 " LDR R2, [R7]\n"
114 " CMP R2, #4\n"
115 " BNE loc_FFB931B4\n"
116 " LDR R3, =0xA872E\n"
117 " LDRH R2, [R3]\n"
118 " CMP R2, #1\n"
119 " BNE loc_FFB92FE8\n"
120 " LDR R2, =0xA8650\n"
121 " LDR R1, =0xA8730\n"
122 " LDR R0, [R2]\n"
123 " LDRH R3, [R1]\n"
124 " MUL R12, R3, R0\n"
125 " LDR R2, =0x10624DD3\n"
126 " UMULL R3, R1, R2, R12\n"
127 " LDR R3, =0xA866C\n"
128 " MOV R1, R1,LSR#6\n"
129 " LDR R0, [R3]\n"
130 " BL sub_FF91FEA0\n"
131 " CMP R0, #0\n"
132 " MOVNE R6, #0\n"
133 " MOVEQ R6, #1\n"
134 "loc_FFB92FE8:\n"
135 " CMP R6, #1\n"
136 " BNE loc_FFB93008\n"
137 " ADD R0, SP, #0x38\n"
138 " ADD R1, SP, #0x34\n"
139 " ADD R2, SP, #0x30\n"
140 " ADD R3, SP, #0x2C\n"
141 " BL sub_FFB947E0\n"
142 " MOV R5, R0\n"
143 "loc_FFB93008:\n"
144 " CMP R5, #0\n"
145 " BNE loc_FFB93038\n"
146 " LDR R3, =0xA8630\n"
147 " LDR R2, [R3]\n"
148 " CMP R2, #1\n"
149 " BNE loc_FFB9304C\n"
150 " LDR R2, =0xA866C\n"
151 " LDR R1, =0xA8644\n"
152 " LDR R0, [R2]\n"
153 " LDR R3, [R1]\n"
154 " CMP R0, R3\n"
155 " BCC loc_FFB9304C\n"
156 "loc_FFB93038:\n"
157 " MOV R0, R5\n"
158 " BL sub_FFB93214\n"
159 " BL sub_FFB937A4\n"
160 " MOV R3, #5\n"
161 " B loc_FFB931B0\n"
162 "loc_FFB9304C:\n"
163 " LDR R9, [SP,#0x34]\n"
164 " CMP R9, #0\n"
165 " BEQ loc_FFB93134\n"
166 " LDR R7, =0xA8688\n"
167 " LDR R12, =0xA8674\n"
168 " LDMIB R4, {R0-R2}\n"
169 " LDR R10, [R4,#0x18]\n"
170 " LDR R6, [R7]\n"
171 " LDR R7, [R4,#0x14]\n"
172 " LDR R4, =0xA8634\n"
173 " LDR R8, [R12]\n"
174 " ADD R5, SP, #0x2C\n"
175 " LDMIA R5, {R5,LR}\n"
176 " MOV R11, #1\n"
177 " LDR R3, [SP,#0x38]\n"
178 " ADD R12, SP, #0x28\n"
179 " STR R11, [R4]\n"
180 " ADD R4, SP, #0x24\n"
181 " STMEA SP, {R9,LR}\n"
182 " STR R5, [SP,#8]\n"
183 " STR R12, [SP,#0xC]\n"
184 " STR R8, [SP,#0x10]\n"
185 " STR R6, [SP,#0x14]\n"
186 " STR R7, [SP,#0x18]\n"
187 " STR R10, [SP,#0x1C]\n"
188 " STR R4, [SP,#0x20]\n"
189 " BL sub_FFB978EC\n"
190 " LDR R3, =0xA8500\n"
191 " MOV R1, #0x3E8\n"
192 " LDR R0, [R3]\n"
193 " BL sub_FFB22F70\n"
194 " CMP R0, #9\n"
195 " BNE loc_FFB930E0\n"
196 " BL sub_FFB95070\n"
197 " LDR R3, =0xA8640\n"
198 " LDR R0, =0xFFB92F40\n"
199 " B loc_FFB930F8\n"
200 "loc_FFB930E0:\n"
201 " LDR R4, [SP,#0x24]\n"
202 " CMP R4, #0\n"
203 " BEQ loc_FFB93104\n"
204 " BL sub_FFB95070\n"
205 " LDR R3, =0xA8640\n"
206 " LDR R0, =0xFFB92F4C\n"
207 "loc_FFB930F8:\n"
208 " STR R11, [R3]\n"
209 " BL sub_FFB46388\n"
210 " B loc_FFB931B4\n"
211 "loc_FFB93104:\n"
212 " BL sub_FFB97A68\n"
213 " LDR R0, [SP,#0x38]\n"
214 " LDR R1, [SP,#0x28]\n"
215 " BL sub_FFB94CC8\n"
216 " LDR R12, =0xA8668\n"
217 " LDR R3, [R12]\n"
218 " ADD R3, R3, #1\n"
219 " LDR R0, [SP,#0x28]\n"
220 " LDR R1, =0xA8688\n"
221 " MOV R2, R4\n"
222 " STR R3, [R12]\n"
223
224 " BL sub_FFB01550_my\n"
225 "loc_FFB93134:\n"
226 " LDR R4, =0xA866C\n"
227 " LDR R2, =0xA8694\n"
228 " LDR R3, [R4]\n"
229 " LDR R1, [R2]\n"
230 " LDR R12, =0xA8690\n"
231 " ADD R3, R3, #1\n"
232 " MUL R0, R1, R3\n"
233 " LDR R1, [R12]\n"
234 " STR R3, [R4]\n"
235 " BL sub_FF91FE08\n"
236 " LDR R6, =0xA868C\n"
237 " MOV R4, R0\n"
238 " BL sub_FFB950AC\n"
239 " LDR R3, [R6]\n"
240 " CMP R3, R4\n"
241 " BNE loc_FFB93188\n"
242 " LDR R5, =0xA8638\n"
243 " LDR R3, [R5]\n"
244 " CMP R3, #1\n"
245 " BNE loc_FFB931A8\n"
246 " B loc_FFB9318C\n"
247 "loc_FFB93188:\n"
248 " LDR R5, =0xA8638\n"
249 "loc_FFB9318C:\n"
250 " LDR R2, =0xA86D0\n"
251 " MOV R0, R4\n"
252 " MOV LR, PC\n"
253 " LDR PC, [R2]\n"
254 " MOV R3, #0\n"
255 " STR R3, [R5]\n"
256 " STR R4, [R6]\n"
257 "loc_FFB931A8:\n"
258 " LDR R7, =0xA8634\n"
259 " MOV R3, #0\n"
260 "loc_FFB931B0:\n"
261 " STR R3, [R7]\n"
262 "loc_FFB931B4:\n"
263 " ADD SP, SP, #0x3C\n"
264 " LDMFD SP!, {R4-R11,PC}\n"
265 );
266 }
267
268
269 void __attribute__((naked,noinline)) sub_FFB01550_my(){
270 asm volatile(
271
272 " STMFD SP!, {R4-R8,LR}\n"
273 " LDR R12, =0x83FAC\n"
274 " LDR R4, [R12]\n"
275 " LDR R3, =0x83FB4\n"
276 " CMP R4, #0\n"
277 " MOV R8, R1\n"
278 " MOV R7, R0\n"
279 " LDR R1, [R3]\n"
280 " BEQ loc_FFB01588\n"
281 " LDR R2, =0x83FB8\n"
282 " LDR R3, [R2]\n"
283 " CMP R3, #1\n"
284 " BNE loc_FFB0159C\n"
285 " B loc_FFB0158C\n"
286 "loc_FFB01588:\n"
287 " LDR R2, =0x83FB8\n"
288 "loc_FFB0158C:\n"
289 " MOV R3, #0\n"
290 " STR R3, [R2]\n"
291 " STR R7, [R12]\n"
292 " B loc_FFB01654\n"
293 "loc_FFB0159C:\n"
294 " LDR R2, =0x83FB0\n"
295 " LDR R3, [R2]\n"
296
297 " LDR R6, =table1\n"
298 " ADD R3, R3, R3,LSL#1\n"
299 " MOV LR, R3,LSL#2\n"
300 " LDR R2, [R6,LR]\n"
301
302 " LDR R5, =table2\n"
303 " RSB R12, R2, R4\n"
304 " LDR R3, [R5,LR]\n"
305 " CMP R12, #0\n"
306 " RSB R0, R3, R4\n"
307 " BLE loc_FFB01600\n"
308 " ADD R3, R6, #4\n"
309 " LDR R2, [R3,LR]\n"
310 " CMP R2, R12\n"
311 " ADDGE R1, R1, #1\n"
312 " BGE loc_FFB015F4\n"
313 " ADD R3, R6, #8\n"
314 " LDR R2, [R3,LR]\n"
315 " CMP R2, R12\n"
316 " ADDGE R1, R1, #2\n"
317 " ADDLT R1, R1, #3\n"
318 "loc_FFB015F4:\n"
319
320
321 " CMP R1, #0x1A\n"
322 " MOVGE R1, #0x1A\n"
323
324 " B loc_FFB01638\n"
325 "loc_FFB01600:\n"
326 " CMP R0, #0\n"
327 " BGE loc_FFB01638\n"
328 " ADD R3, R5, #4\n"
329 " LDR R2, [R3,LR]\n"
330 " CMP R2, R0\n"
331 " SUBLE R1, R1, #1\n"
332 " BLE loc_FFB01630\n"
333 " ADD R3, R5, #8\n"
334 " LDR R2, [R3,LR]\n"
335 " CMP R2, R0\n"
336 " SUBLE R1, R1, #2\n"
337 " SUBGT R1, R1, #3\n"
338 "loc_FFB01630:\n"
339 " CMP R1, #0\n"
340 " MOVLT R1, #0\n"
341 "loc_FFB01638:\n"
342 " LDR R0, =0x83FB4\n"
343 " LDR R3, [R0]\n"
344 " CMP R1, R3\n"
345 " LDRNE R2, =0x83FB8\n"
346 " MOVNE R3, #1\n"
347 " STRNE R1, [R0]\n"
348 " STRNE R3, [R2]\n"
349 "loc_FFB01654:\n"
350 " LDR R3, =0x83FB4\n"
351
352 " LDR R2, =CompressionRateTable\n"
353 " LDR R1, [R3]\n"
354 " LDR R0, =0x83FAC\n"
355 " LDR R3, [R2,R1,LSL#2]\n"
356
357 "LDR R1, =video_mode\n"
358 "LDR R1, [R1]\n"
359 "LDR R1, [R1]\n"
360 "CMP R1, #1\n"
361 "LDREQ R1, =video_quality\n"
362 "LDREQ R1, [R1]\n"
363 "LDREQ R3, [R1]\n"
364
365 " STR R7, [R0]\n"
366 " STR R3, [R8]\n"
367 " LDMFD SP!, {R4-R8,PC}\n"
368 );
369 }