This source file includes following definitions.
- sub_FFE96FA8_my
- sub_FFE93F70_my
- capt_seq_task
- exp_drv_task
- sub_FFD17E18_my
- sub_FFCE1A30_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4
5 static long *nrflag = (long*)0xBF94;
6
7 #include "../../../generic/capt_seq.c"
8
9 void __attribute__((naked,noinline)) sub_FFE96FA8_my(long p)
10 {
11 (void)p;
12 asm volatile (
13 "STMFD SP!, {R4,LR}\n"
14 "MOV R4, R0\n"
15 "SUB SP, SP, #0xC\n"
16 "BL sub_FFE97A18\n"
17 "MVN R1, #0\n"
18 "BL sub_FFEA7FA8\n"
19 "MOV R0, #0x8A\n"
20 "ADD R1, SP, #4\n"
21 "MOV R2, #4\n"
22 "BL sub_FFC0BCB8\n"
23 "TST R0, #1\n"
24 "BEQ loc_FFE96FE8\n"
25 "MOV R1, #0x1D0\n"
26 "LDR R0, =0xFFE96E2C\n"
27 "ADD R1, R1, #2\n"
28 "BL sub_FFEB5664\n"
29 "loc_FFE96FE8:\n"
30 "LDR R3, =0xA4BA0\n"
31 "LDR R2, =0xA4C60\n"
32 "LDR R0, [R3,#0x74]\n"
33 "LDRSH R1, [R2,#0xE]\n"
34 "BL sub_FFDE52F8\n"
35 "MOV R0, R4\n"
36 "BL sub_FFE96DB0\n"
37 "BL wait_until_remote_button_is_released\n"
38 "BL capt_seq_hook_set_nr\n"
39 "LDR R3, =0xBF98\n"
40 "LDR R0, [R3]\n"
41
42 "B sub_FFE9700C\n"
43 );
44 }
45
46 void __attribute__((naked,noinline)) sub_FFE93F70_my(long p)
47 {
48 (void)p;
49 asm volatile (
50 "STMFD SP!, {R4,LR}\n"
51 "LDR R4, [R0,#0xC]\n"
52 "LDR R3, [R4,#8]\n"
53 "ORR R3, R3, #1\n"
54 "STR R3, [R4,#8]\n"
55 "MOV R0, #0xC\n"
56 "BL sub_FFE9E130\n"
57 "TST R0, #1\n"
58 "MOV R0, #1\n"
59 "MOV R2, R4\n"
60 "MOV R1, R0\n"
61 "BEQ loc_FFE93FB4\n"
62 "LDR R3, [R4,#8]\n"
63 "ORR R3, R3, #0x40000000\n"
64 "STR R3, [R4,#8]\n"
65 "LDMFD SP!, {R4,LR}\n"
66 "B sub_FFE927E4\n"
67 "loc_FFE93FB4:\n"
68 "BL sub_FFE94A48\n"
69 "MOV R0, R4\n"
70 "BL sub_FFE95AAC\n"
71 "TST R0, #1\n"
72 "MOV R2, R4\n"
73 "MOV R1, #1\n"
74 "BEQ loc_FFE93FD8\n"
75 "LDMFD SP!, {R4,LR}\n"
76 "B sub_FFE927E4\n"
77 "loc_FFE93FD8:\n"
78 "BL sub_FFC15FF0\n"
79 "BL sub_FFC0BEB4\n"
80 "STR R0, [R4,#0x14]\n"
81 "MOV R0, R4\n"
82 "BL sub_FFE96E90\n"
83 "BL sub_FFE97884\n"
84 "MOV R0, R4\n"
85 "BL sub_FFE96FA8_my\n"
86 "BL capt_seq_hook_raw_here\n"
87 "MOV R1, #1\n"
88 "MOV R2, R4\n"
89 "BL sub_FFE927E4\n"
90 "BL sub_FFE97324\n"
91 "CMP R0, #0\n"
92 "LDRNE R3, [R4,#8]\n"
93 "ORRNE R3, R3, #0x2000\n"
94 "STRNE R3, [R4,#8]\n"
95 "LDMFD SP!, {R4,PC}\n"
96 );
97 }
98
99 void __attribute__((naked,noinline)) capt_seq_task()
100 {
101 asm volatile (
102 "STMFD SP!, {R4,LR}\n"
103 "SUB SP, SP, #4\n"
104 "MOV R4, SP\n"
105 "B loc_FFE944E0\n"
106 "loc_FFE94384:\n"
107 "LDR R2, [SP]\n"
108 "LDR R3, [R2]\n"
109 "MOV R0, R2\n"
110 "CMP R3, #0x15\n"
111 "LDRLS PC, [PC,R3,LSL#2]\n"
112 "B loc_FFE944B4\n"
113 ".long loc_FFE943F4\n"
114 ".long loc_FFE94400\n"
115 ".long loc_FFE94408\n"
116 ".long loc_FFE9441C\n"
117 ".long loc_FFE94414\n"
118 ".long loc_FFE94424\n"
119 ".long loc_FFE9442C\n"
120 ".long loc_FFE94438\n"
121 ".long loc_FFE94440\n"
122 ".long loc_FFE9444C\n"
123 ".long loc_FFE94454\n"
124 ".long loc_FFE9445C\n"
125 ".long loc_FFE94464\n"
126 ".long loc_FFE9446C\n"
127 ".long loc_FFE94474\n"
128 ".long loc_FFE94480\n"
129 ".long loc_FFE94488\n"
130 ".long loc_FFE94490\n"
131 ".long loc_FFE94498\n"
132 ".long loc_FFE944A4\n"
133 ".long loc_FFE944AC\n"
134 ".long loc_FFE944C8\n"
135 "loc_FFE943F4:\n"
136
137 "BL sub_FFE94A5C\n"
138 "BL shooting_expo_param_override\n"
139 "BL sub_FFE922D8\n"
140 "B loc_FFE944C4\n"
141 "loc_FFE94400:\n"
142
143 "BL sub_FFE93F70_my\n"
144 "B loc_FFE944C4\n"
145 "loc_FFE94408:\n"
146
147 "MOV R0, #1\n"
148 "BL sub_FFE94C58\n"
149 "B loc_FFE944C4\n"
150 "loc_FFE94414:\n"
151
152 "BL sub_FFE945C4\n"
153 "B loc_FFE944C4\n"
154 "loc_FFE9441C:\n"
155
156 "BL sub_FFE94A28\n"
157 "B loc_FFE944C4\n"
158 "loc_FFE94424:\n"
159
160 "BL sub_FFE94A38\n"
161 "B loc_FFE944C4\n"
162 "loc_FFE9442C:\n"
163
164 "BL sub_FFE94B50\n"
165 "BL sub_FFE922D8\n"
166 "B loc_FFE944C4\n"
167 "loc_FFE94438:\n"
168
169 "BL sub_FFE94080\n"
170 "B loc_FFE944C4\n"
171 "loc_FFE94440:\n"
172
173 "BL sub_FFE94BC0\n"
174 "BL sub_FFE922D8\n"
175 "B loc_FFE944C4\n"
176 "loc_FFE9444C:\n"
177
178 "BL sub_FFE94A28\n"
179 "B loc_FFE944C4\n"
180 "loc_FFE94454:\n"
181
182 "BL sub_FFE961E0\n"
183 "B loc_FFE944C4\n"
184 "loc_FFE9445C:\n"
185
186 "BL sub_FFE963B4\n"
187 "B loc_FFE944C4\n"
188 "loc_FFE94464:\n"
189
190 "BL sub_FFE96448\n"
191 "B loc_FFE944C4\n"
192 "loc_FFE9446C:\n"
193
194 "BL sub_FFE96544\n"
195 "B loc_FFE944C4\n"
196 "loc_FFE94474:\n"
197
198 "MOV R0, #0\n"
199 "BL sub_FFE967B0\n"
200 "B loc_FFE944C4\n"
201 "loc_FFE94480:\n"
202
203 "BL sub_FFE96984\n"
204 "B loc_FFE944C4\n"
205 "loc_FFE94488:\n"
206
207 "BL sub_FFE96A20\n"
208 "B loc_FFE944C4\n"
209 "loc_FFE94490:\n"
210
211 "BL sub_FFE96AE0\n"
212 "B loc_FFE944C4\n"
213 "loc_FFE94498:\n"
214
215 "BL sub_FFE94DB4\n"
216 "BL sub_FFE93E94\n"
217 "B loc_FFE944C4\n"
218 "loc_FFE944A4:\n"
219
220 "BL sub_FFE96684\n"
221 "B loc_FFE944C4\n"
222 "loc_FFE944AC:\n"
223
224 "BL sub_FFE966E0\n"
225 "B loc_FFE944C4\n"
226 "loc_FFE944B4:\n"
227 "MOV R1, #0x4C0\n"
228 "LDR R0, =0xFFE93CF0\n"
229 "ADD R1, R1, #0xE\n"
230 "BL sub_FFEB5664\n"
231 "loc_FFE944C4:\n"
232
233 "LDR R2, [SP]\n"
234 "loc_FFE944C8:\n"
235
236 "LDR R3, =0x7E568\n"
237 "LDR R1, [R2,#4]\n"
238 "LDR R0, [R3]\n"
239 "BL sub_FFEA7E0C\n"
240 "LDR R0, [SP]\n"
241 "BL sub_FFE93D70\n"
242 "loc_FFE944E0:\n"
243 "LDR R3, =0x7E56C\n"
244 "MOV R1, R4\n"
245 "LDR R0, [R3]\n"
246 "MOV R2, #0\n"
247 "BL sub_FFEA8524\n"
248 "TST R0, #1\n"
249 "BEQ loc_FFE94384\n"
250 "LDR R0, =0xFFE93CF0\n"
251 "MOV R1, #0x400\n"
252 "BL sub_FFEB5664\n"
253 "BL sub_FFEA9AE8\n"
254 "ADD SP, SP, #4\n"
255 "LDMFD SP!, {R4,PC}\n"
256 );
257 }
258
259
260 void __attribute__((naked,noinline)) exp_drv_task(){
261 asm volatile(
262 " STMFD SP!, {R4-R8,LR}\n"
263 " SUB SP, SP, #0x20\n"
264 " ADD R7, SP, #4\n"
265 " B loc_FFD1B328\n"
266 "loc_FFD1AE28:\n"
267 " CMP R2, #0x22\n"
268 " BNE loc_FFD1AE40\n"
269 " LDR R0, [R12,#0x8C]\n"
270 " MOV LR, PC\n"
271 " LDR PC, [R12,#0x88]\n"
272 " B loc_FFD1AEA4\n"
273 "loc_FFD1AE40:\n"
274 " CMP R2, #0x1D\n"
275 " BNE loc_FFD1AE54\n"
276 " MOV R0, R12\n"
277 " BL sub_FFD1ACE8\n"
278 " B loc_FFD1AE94\n"
279 "loc_FFD1AE54:\n"
280 " CMP R2, #0x1E\n"
281 " BNE loc_FFD1AE68\n"
282 " MOV R0, R12\n"
283 " BL sub_FFD1AD44\n"
284 " B loc_FFD1AE94\n"
285 "loc_FFD1AE68:\n"
286 " SUB R3, R2, #0x1F\n"
287 " CMP R3, #1\n"
288 " BHI loc_FFD1AE80\n"
289 " MOV R0, R12\n"
290 " BL sub_FFD1ADA0\n"
291 " B loc_FFD1AE94\n"
292 "loc_FFD1AE80:\n"
293 " CMP R2, #0x21\n"
294 " BNE loc_FFD1AEB0\n"
295 " BL sub_FFCE1DB4\n"
296 " BL sub_FFCE4EEC\n"
297 " BL sub_FFCE4124\n"
298 "loc_FFD1AE94:\n"
299 " LDR R3, [SP,#4]\n"
300 " LDR R0, [R3,#0x8C]\n"
301 " MOV LR, PC\n"
302 " LDR PC, [R3,#0x88]\n"
303 "loc_FFD1AEA4:\n"
304 " LDR R0, [SP,#4]\n"
305 " BL sub_FFD1683C\n"
306 " B loc_FFD1B328\n"
307 "loc_FFD1AEB0:\n"
308 " CMP R2, #0xD\n"
309 " MOV R8, #1\n"
310 " BNE loc_FFD1AF20\n"
311 " LDR R1, [R12,#0x7C]\n"
312 " ADD R1, R1, R1,LSL#1\n"
313 " ADD R1, R12, R1,LSL#2\n"
314 " ADD R6, SP, #0x14\n"
315 " SUB R1, R1, #8\n"
316 " MOV R2, #0xC\n"
317 " MOV R0, R6\n"
318 " BL _memcpy\n"
319 " LDR R0, [SP,#4]\n"
320 " BL sub_FFD192EC\n"
321 " LDR R3, [SP,#4]\n"
322 " LDR R1, [R3,#0x7C]\n"
323 " LDR R2, [R3,#0x8C]\n"
324 " ADD R0, R3, #4\n"
325 " MOV LR, PC\n"
326 " LDR PC, [R3,#0x88]\n"
327 " LDR R0, [SP,#4]\n"
328 " BL sub_FFD195BC\n"
329 " LDR R3, [SP,#4]\n"
330 " ADD R0, R3, #4\n"
331 " LDR R1, [R3,#0x7C]\n"
332 " LDR R2, [R3,#0x94]\n"
333 " MOV LR, PC\n"
334 " LDR PC, [R3,#0x90]\n"
335 " B loc_FFD1B270\n"
336 "loc_FFD1AF20:\n"
337 " SUB R3, R2, #0xE\n"
338 " CMP R3, #1\n"
339 " BHI loc_FFD1AFDC\n"
340 " ADD R6, SP, #0x14\n"
341 " ADD R5, SP, #8\n"
342 " MOV R0, R12\n"
343 " MOV R1, R6\n"
344 " MOV R2, R5\n"
345 " BL sub_FFD196B0\n"
346 " MOV R4, R0\n"
347 " CMP R4, #5\n"
348 " CMPNE R4, #1\n"
349 " BNE loc_FFD1AF74\n"
350 " LDR R12, [SP,#4]\n"
351 " MOV R0, R5\n"
352 " LDR R1, [R12,#0x7C]\n"
353 " MOV R2, R4\n"
354 " LDR R3, [R12,#0x8C]\n"
355 " MOV LR, PC\n"
356 " LDR PC, [R12,#0x88]\n"
357 " B loc_FFD1AFAC\n"
358 "loc_FFD1AF74:\n"
359 " CMP R4, #6\n"
360 " CMPNE R4, #2\n"
361 " BNE loc_FFD1AFBC\n"
362 " LDR R12, [SP,#4]\n"
363 " MOV R0, R5\n"
364 " MOV R1, R8\n"
365 " MOV R2, R4\n"
366 " LDR R3, [R12,#0x8C]\n"
367 " MOV LR, PC\n"
368 " LDR PC, [R12,#0x88]\n"
369 " MOV R1, R6\n"
370 " LDR R0, [SP,#4]\n"
371 " MOV R2, R5\n"
372 " BL sub_FFD1A948\n"
373 "loc_FFD1AFAC:\n"
374 " MOV R1, R4\n"
375 " LDR R0, [SP,#4]\n"
376 " BL sub_FFD1AC7C\n"
377 " B loc_FFD1B270\n"
378 "loc_FFD1AFBC:\n"
379 " LDR R12, [SP,#4]\n"
380 " MOV R2, R4\n"
381 " ADD R0, R12, #4\n"
382 " LDR R1, [R12,#0x7C]\n"
383 " LDR R3, [R12,#0x8C]\n"
384 " MOV LR, PC\n"
385 " LDR PC, [R12,#0x88]\n"
386 " B loc_FFD1B270\n"
387 "loc_FFD1AFDC:\n"
388 " SUB R3, R2, #0x19\n"
389 " CMP R3, #1\n"
390 " BHI loc_FFD1B034\n"
391 " LDR R1, [R12,#0x7C]\n"
392 " ADD R1, R1, R1,LSL#1\n"
393 " ADD R1, R12, R1,LSL#2\n"
394 " ADD R6, SP, #0x14\n"
395 " SUB R1, R1, #8\n"
396 " MOV R2, #0xC\n"
397 " MOV R0, R6\n"
398 " BL _memcpy\n"
399 " LDR R0, [SP,#4]\n"
400 " BL sub_FFD187A0\n"
401 " LDR R3, [SP,#4]\n"
402 " ADD R0, R3, #4\n"
403 " LDR R1, [R3,#0x7C]\n"
404 " LDR R2, [R3,#0x8C]\n"
405 " MOV LR, PC\n"
406 " LDR PC, [R3,#0x88]\n"
407 " LDR R0, [SP,#4]\n"
408 " BL sub_FFD18AC0\n"
409 " B loc_FFD1B270\n"
410 "loc_FFD1B034:\n"
411 " ADD R6, SP, #0x14\n"
412 " ADD R1, R12, #4\n"
413 " MOV R2, #0xC\n"
414 " MOV R0, R6\n"
415 " BL _memcpy\n"
416 " LDR R12, [SP,#4]\n"
417 " LDR R3, [R12]\n"
418 " MOV R2, R12\n"
419 " CMP R3, #0x1C\n"
420 " LDRLS PC, [PC,R3,LSL#2]\n"
421 " B loc_FFD1B25C\n"
422 " .long loc_FFD1B0D4\n"
423 " .long loc_FFD1B0E0\n"
424 " .long loc_FFD1B0EC\n"
425 " .long loc_FFD1B0EC\n"
426 " .long loc_FFD1B0D4\n"
427 " .long loc_FFD1B0E0\n"
428 " .long loc_FFD1B0EC\n"
429 " .long loc_FFD1B0EC\n"
430 " .long loc_FFD1B110\n"
431 " .long loc_FFD1B110\n"
432 " .long loc_FFD1B230\n"
433 " .long loc_FFD1B23C\n"
434 " .long loc_FFD1B24C\n"
435 " .long loc_FFD1B25C\n"
436 " .long loc_FFD1B25C\n"
437 " .long loc_FFD1B25C\n"
438 " .long loc_FFD1B0F8\n"
439 " .long loc_FFD1B104\n"
440 " .long loc_FFD1B120\n"
441 " .long loc_FFD1B12C\n"
442 " .long loc_FFD1B164\n"
443 " .long loc_FFD1B19C\n"
444 " .long loc_FFD1B1D4\n"
445 " .long loc_FFD1B20C\n"
446 " .long loc_FFD1B20C\n"
447 " .long loc_FFD1B25C\n"
448 " .long loc_FFD1B25C\n"
449 " .long loc_FFD1B218\n"
450 " .long loc_FFD1B224\n"
451 "loc_FFD1B0D4:\n"
452 " MOV R0, R2\n"
453 " BL sub_FFD1719C\n"
454 " B loc_FFD1B258\n"
455 "loc_FFD1B0E0:\n"
456 " MOV R0, R2\n"
457 " BL sub_FFD17440\n"
458 " B loc_FFD1B258\n"
459 "loc_FFD1B0EC:\n"
460 " MOV R0, R2\n"
461 " BL sub_FFD176B4\n"
462 " B loc_FFD1B258\n"
463 "loc_FFD1B0F8:\n"
464 " MOV R0, R2\n"
465 " BL sub_FFD179B0\n"
466 " B loc_FFD1B258\n"
467 "loc_FFD1B104:\n"
468 " MOV R0, R2\n"
469 " BL sub_FFD17C18\n"
470 " B loc_FFD1B258\n"
471 "loc_FFD1B110:\n"
472 " MOV R0, R2\n"
473 " BL sub_FFD17E18_my\n"
474 " MOV R8, #0\n"
475 " B loc_FFD1B258\n"
476 "loc_FFD1B120:\n"
477 " MOV R0, R2\n"
478 " BL sub_FFD17F78\n"
479 " B loc_FFD1B258\n"
480 "loc_FFD1B12C:\n"
481 " LDRH R1, [R2,#4]\n"
482 " LDR R3, =0x2ABF0\n"
483 " STRH R1, [SP,#0x14]\n"
484 " LDRH R1, [R3,#6]\n"
485 " STRH R1, [SP,#0x1A]\n"
486 " LDRH R1, [R3,#2]\n"
487 " STRH R1, [SP,#0x16]\n"
488 " LDRH R3, [R3,#4]\n"
489 " STRH R3, [SP,#0x18]\n"
490 " MOV R0, R2\n"
491 " LDRH R2, [R2,#0xC]\n"
492 " STRH R2, [SP,#0x1C]\n"
493 " BL sub_FFD18270\n"
494 " B loc_FFD1B258\n"
495 "loc_FFD1B164:\n"
496 " MOV R0, R2\n"
497 " LDRH R2, [R2,#4]\n"
498 " LDR R3, =0x2ABF0\n"
499 " STRH R2, [SP,#0x14]\n"
500 " LDRH R2, [R3,#8]\n"
501 " STRH R2, [SP,#0x1C]\n"
502 " LDRH R1, [R3,#2]\n"
503 " STRH R1, [SP,#0x16]\n"
504 " LDRH R2, [R3,#4]\n"
505 " STRH R2, [SP,#0x18]\n"
506 " LDRH R3, [R3,#6]\n"
507 " STRH R3, [SP,#0x1A]\n"
508 " BL sub_FFD18398\n"
509 " B loc_FFD1B258\n"
510 "loc_FFD1B19C:\n"
511 " LDR R3, =0x2ABF0\n"
512 " LDRH R1, [R3]\n"
513 " STRH R1, [SP,#0x14]\n"
514 " MOV R0, R2\n"
515 " LDRH R2, [R2,#6]\n"
516 " STRH R2, [SP,#0x16]\n"
517 " LDRH R2, [R3,#8]\n"
518 " STRH R2, [SP,#0x1C]\n"
519 " LDRH R1, [R3,#4]\n"
520 " STRH R1, [SP,#0x18]\n"
521 " LDRH R3, [R3,#6]\n"
522 " STRH R3, [SP,#0x1A]\n"
523 " BL sub_FFD1845C\n"
524 " B loc_FFD1B258\n"
525 "loc_FFD1B1D4:\n"
526 " LDR R3, =0x2ABF0\n"
527 " LDRH R1, [R3,#6]\n"
528 " STRH R1, [SP,#0x1A]\n"
529 " LDRH R1, [R3]\n"
530 " STRH R1, [SP,#0x14]\n"
531 " LDRH R1, [R3,#2]\n"
532 " STRH R1, [SP,#0x16]\n"
533 " LDRH R3, [R3,#4]\n"
534 " STRH R3, [SP,#0x18]\n"
535 " MOV R0, R2\n"
536 " LDRH R2, [R2,#0xC]\n"
537 " STRH R2, [SP,#0x1C]\n"
538 " BL sub_FFD18514\n"
539 " B loc_FFD1B258\n"
540 "loc_FFD1B20C:\n"
541 " MOV R0, R2\n"
542 " BL sub_FFD185C4\n"
543 " B loc_FFD1B258\n"
544 "loc_FFD1B218:\n"
545 " MOV R0, R2\n"
546 " BL sub_FFD18C0C\n"
547 " B loc_FFD1B258\n"
548 "loc_FFD1B224:\n"
549 " MOV R0, R2\n"
550 " BL sub_FFD18E08\n"
551 " B loc_FFD1B258\n"
552 "loc_FFD1B230:\n"
553 " MOV R0, R2\n"
554 " BL sub_FFD18FC4\n"
555 " B loc_FFD1B258\n"
556 "loc_FFD1B23C:\n"
557 " MOV R0, R2\n"
558 " MOV R1, #0\n"
559 " BL sub_FFD191AC\n"
560 " B loc_FFD1B258\n"
561 "loc_FFD1B24C:\n"
562 " MOV R0, R2\n"
563 " MOV R1, #1\n"
564 " BL sub_FFD191AC\n"
565 "loc_FFD1B258:\n"
566 " LDR R12, [SP,#4]\n"
567 "loc_FFD1B25C:\n"
568 " ADD R0, R12, #4\n"
569 " LDR R1, [R12,#0x7C]\n"
570 " LDR R2, [R12,#0x8C]\n"
571 " MOV LR, PC\n"
572 " LDR PC, [R12,#0x88]\n"
573 "loc_FFD1B270:\n"
574 " CMP R8, #1\n"
575 " BNE loc_FFD1B298\n"
576 " LDR R1, [SP,#4]\n"
577 " LDR R3, [R1,#0x7C]\n"
578 " ADD R3, R3, R3,LSL#1\n"
579 " ADD R1, R1, R3,LSL#2\n"
580 " MOV R0, R6\n"
581 " SUB R1, R1, #8\n"
582 " BL sub_FFD16E54\n"
583 " B loc_FFD1B314\n"
584 "loc_FFD1B298:\n"
585 " LDR R3, [SP,#4]\n"
586 " LDR R2, [R3]\n"
587 " CMP R2, #9\n"
588 " BNE loc_FFD1B2E0\n"
589 " MOV R4, #0\n"
590 " MOV R1, #1\n"
591 " MOV R2, R1\n"
592 " MOV R3, R1\n"
593 " MOV R0, R4\n"
594 " STR R4, [SP]\n"
595 " BL sub_FFD16D98\n"
596 " MOV R1, #1\n"
597 " MOV R0, R4\n"
598 " MOV R2, R1\n"
599 " MOV R3, R1\n"
600 " STR R4, [SP]\n"
601 " BL sub_FFD16FF0\n"
602 " B loc_FFD1B314\n"
603 "loc_FFD1B2E0:\n"
604 " MOV R4, #1\n"
605 " MOV R0, R4\n"
606 " MOV R1, R4\n"
607 " MOV R2, R4\n"
608 " MOV R3, R4\n"
609 " STR R4, [SP]\n"
610 " BL sub_FFD16D98\n"
611 " MOV R0, R4\n"
612 " MOV R1, R0\n"
613 " MOV R2, R0\n"
614 " MOV R3, R0\n"
615 " STR R4, [SP]\n"
616 " BL sub_FFD16FF0\n"
617 "loc_FFD1B314:\n"
618 " LDR R2, =0x2AC3C\n"
619 " MOV R3, #0\n"
620 " LDR R0, [SP,#4]\n"
621 " STR R3, [R2]\n"
622 " BL sub_FFD1683C\n"
623 "loc_FFD1B328:\n"
624 " LDR R3, =0x2ABE4\n"
625 " MOV R2, #0\n"
626 " LDR R0, [R3]\n"
627 " MOV R1, R7\n"
628 " BL sub_FFEA8524\n"
629 " LDR R12, [SP,#4]\n"
630 " LDR R2, [R12]\n"
631 " CMP R2, #0x23\n"
632 " BNE loc_FFD1AE28\n"
633 " MOV R0, R12\n"
634 " BL sub_FFD1683C\n"
635 " LDR R3, =0x2ABE0\n"
636 " MOV R1, #1\n"
637 " LDR R0, [R3]\n"
638 " BL sub_FFEA7E0C\n"
639 " BL sub_FFEA9AE8\n"
640 " ADD SP, SP, #0x20\n"
641 " LDMFD SP!, {R4-R8,PC}\n"
642 );
643 }
644
645 void __attribute__((naked,noinline)) sub_FFD17E18_my() {
646 asm volatile(
647 " STMFD SP!, {R4-R6,LR}\n"
648 " LDR R3, =0x2ABE0\n"
649 " MOV R4, R0\n"
650 " MOV R1, #0x3E\n"
651 " LDR R0, [R3]\n"
652 " BL sub_FFEA7FA8\n"
653 " MOV R1, #0\n"
654 " LDRSH R0, [R4,#4]\n"
655 " BL sub_FFD16970\n"
656 " MOV R6, R0\n"
657 " LDRSH R0, [R4,#6]\n"
658 " BL sub_FFD16AD8\n"
659 " LDRSH R0, [R4,#8]\n"
660 " BL sub_FFD16B74\n"
661 " LDRSH R0, [R4,#0xA]\n"
662 " BL sub_FFD16C10\n"
663 " LDRSH R0, [R4,#0xC]\n"
664 " BL sub_FFD16CAC\n"
665 " LDR R3, [R4]\n"
666 " CMP R3, #9\n"
667 " MOV R5, R0\n"
668 " MOVEQ R5, #0\n"
669 " MOVEQ R6, R5\n"
670 " CMP R6, #1\n"
671 " BNE loc_FFD17E9C\n"
672 " MOV R2, #2\n"
673 " LDRSH R0, [R4,#4]\n"
674 " LDR R1, =0xFFD16890\n"
675 " BL sub_FFE6CC1C\n"
676 " LDR R2, =0x2AC30\n"
677 " MOV R3, #0\n"
678 " STR R3, [R2]\n"
679 " B loc_FFD17EA0\n"
680 "loc_FFD17E9C:\n"
681 " BL sub_FFD16D48\n"
682 "loc_FFD17EA0:\n"
683 " STRH R0, [R4,#4]\n"
684 " CMP R5, #1\n"
685 " BNE loc_FFD17EC0\n"
686 " LDRSH R0, [R4,#0xC]\n"
687 " LDR R1, =0xFFD16954\n"
688 " MOV R2, #0x20\n"
689 " BL sub_FFD1713C\n"
690 " B loc_FFD17EC4\n"
691 "loc_FFD17EC0:\n"
692 " BL sub_FFD16D88\n"
693 "loc_FFD17EC4:\n"
694 " STRH R0, [R4,#0xC]\n"
695 " LDRSH R0, [R4,#6]\n"
696 " BL sub_FFCE1A30_my\n"
697 " LDRSH R0, [R4,#8]\n"
698 " MOV R1, #1\n"
699 " BL sub_FFCE3CE4\n"
700 " ADD R0, R4, #8\n"
701 " MOV R1, #0\n"
702 " BL sub_FFCE3DA4\n"
703 " LDRSH R0, [R4,#0xE]\n"
704 " BL sub_FFD055A0\n"
705 " CMP R6, #1\n"
706 " BNE loc_FFD17F28\n"
707 " LDR R3, =0x2ABE0\n"
708 " MOV R2, #0xBB0\n"
709 " LDR R0, [R3]\n"
710 " MOV R1, #2\n"
711 " ADD R2, R2, #8\n"
712 " BL sub_FFEA7DFC\n"
713 " TST R0, #1\n"
714 " BEQ loc_FFD17F28\n"
715 " MOV R1, #0x4A0\n"
716 " LDR R0, =0xFFD167E8\n"
717 " ADD R1, R1, #3\n"
718 " BL sub_FFEB5664\n"
719 "loc_FFD17F28:\n"
720 " CMP R5, #1\n"
721 " LDMNEFD SP!, {R4-R6,PC}\n"
722 " LDR R3, =0x2ABE0\n"
723 " MOV R2, #0xBB0\n"
724 " LDR R0, [R3]\n"
725 " MOV R1, #0x20\n"
726 " ADD R2, R2, #8\n"
727 " BL sub_FFEA7DFC\n"
728 " TST R0, #1\n"
729 " LDMEQFD SP!, {R4-R6,PC}\n"
730 " MOV R1, #0x4A0\n"
731 " LDR R0, =0xFFD167E8\n"
732 " ADD R1, R1, #8\n"
733 " LDMFD SP!, {R4-R6,LR}\n"
734 " B sub_FFEB5664\n"
735 );
736 }
737
738 void __attribute__((naked,noinline)) sub_FFCE1A30_my () {
739 asm volatile(
740 " STMFD SP!, {R4,LR}\n"
741 " LDR R3, =0x594C\n"
742 " LDR R2, [R3]\n"
743 " MOV R1, #0x168\n"
744 " MOV R3, R0,LSL#16\n"
745 " CMP R2, #1\n"
746 " ADD R1, R1, #3\n"
747 " LDR R0, =0xFFCE124C\n"
748 " MOV R4, R3,ASR#16\n"
749 " BEQ loc_FFCE1A5C\n"
750 " BL sub_FFEB5664\n"
751 "loc_FFCE1A5C:\n"
752 " MOV R1, #0x170\n"
753 " CMN R4, #0xC00\n"
754 " LDR R3, =0x1177E\n"
755 " LDR R0, =0xFFCE124C\n"
756 " ADD R1, R1, #1\n"
757 " LDREQSH R4, [R3]\n"
758 " LDRNE R3, =0x1177E\n"
759 " CMN R4, #0xC00\n"
760 " STRH R4, [R3]\n"
761 " BNE loc_FFCE1A88\n"
762 " BL sub_FFEB5664\n"
763 "loc_FFCE1A88:\n"
764 " MOV R0, R4\n"
765
766 " BL apex2us\n"
767 " MOV R4, R0\n"
768 " BL sub_FFD6CC5C\n"
769 " MOV R0, R4\n"
770 " BL sub_FFD83504\n"
771 " MOV R1, #0x174\n"
772 " TST R0, #1\n"
773 " ADD R1, R1, #2\n"
774 " LDR R0, =0xFFCE124C\n"
775 " LDMEQFD SP!, {R4,PC}\n"
776 " LDMFD SP!, {R4,LR}\n"
777 " B sub_FFEB5664\n"
778 );
779 }