This source file includes following definitions.
- sub_FFD39620_my
- sub_FFD364B0_my
- capt_seq_task
- exp_drv_task
- sub_FFCE1C34_my
- sub_FFC976B4_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4
5
6 static long *nrflag = (long*)0x6CE0;
7
8 #include "../../../generic/capt_seq.c"
9
10 void __attribute__((naked,noinline)) sub_FFD39620_my(long p)
11 {
12 (void)p;
13 asm volatile (
14 "STMFD SP!, {R4,R5,LR}\n"
15 "LDR R3, =0x73D34\n"
16 "LDR R5, =0x6CDC\n"
17 "SUB SP, SP, #4\n"
18 "LDR R1, =0xFFFFFFFF\n"
19 "STR R0, [R5]\n"
20 "LDR R0, [R3]\n"
21 "BL sub_FFC0FA60\n"
22 "BL sub_FFD3F438\n"
23 "BL wait_until_remote_button_is_released\n"
24 "LDR R0, [R0,#0x7C]\n"
25 "BL sub_FFD39594\n"
26
27 "BL capt_seq_hook_set_nr\n"
28
29 "LDR R3, =0x6CE4\n"
30 "LDR R0, [R3]\n"
31 "BL sub_FFC8C088\n"
32
33 "B sub_FFD3965C\n"
34 );
35 }
36
37 void __attribute__((naked,noinline)) sub_FFD364B0_my(long p)
38 {
39 (void)p;
40 asm volatile (
41 "STMFD SP!, {R4,R5,LR}\n"
42 "LDR R5, [R0,#0xC]\n"
43 "BL sub_FFD3F1DC\n"
44 "CMP R0, #0\n"
45 "BNE 1f\n"
46 "BL sub_FFD3F1E8\n"
47
48 "1:\n"
49 "MOV R0, R5\n"
50 "BL sub_FFD3842C\n"
51 "TST R0, #1\n"
52 "MOV R2, R5\n"
53 "MOV R1, #1\n"
54 "BEQ 2f\n"
55 "LDMFD SP!, {R4,R5,LR}\n"
56 "B sub_FFD34A08\n"
57
58 "2:\n"
59 "BL sub_FFD74484\n"
60 "BL sub_FFD33DF4\n"
61 "MOV R4, R0\n"
62 "BL sub_FFC143A4\n"
63 "ADD R3, R5, R5,LSL#1\n"
64 "ADD R4, R4, R3,LSL#5\n"
65 "STR R0, [R4,#4]\n"
66 "MOV R0, R5\n"
67 "BL sub_FFD39E38\n"
68 "BL sub_FFD38970\n"
69 "BL sub_FFD38910\n"
70 "MOV R0, R5\n"
71 "BL sub_FFD39620_my\n"
72
73 "BL capt_seq_hook_raw_here\n"
74
75 "MOV R2, R5\n"
76 "MOV R1, #1\n"
77 "BL sub_FFD34A08\n"
78 "LDMFD SP!, {R4,R5,LR}\n"
79 "B sub_FFD39820\n"
80 );
81 }
82
83 void __attribute__((naked,noinline)) capt_seq_task()
84 {
85 asm volatile (
86 "STMFD SP!, {R4,LR}\n"
87 "SUB SP, SP, #4\n"
88 "MOV R4, SP\n"
89 "B loc_FFD36A08\n"
90
91
92 "loc_FFD368B4:\n"
93 "LDR R2, [SP,#0xC-0xC]\n"
94 "LDR R3, [R2]\n"
95 "MOV R0, R2\n"
96 "CMP R3, #0x15\n"
97 "LDRLS PC, [PC,R3,LSL#2]\n"
98 "B loc_FFD369E0\n"
99
100 ".long loc_FFD36924\n"
101 ".long loc_FFD36930\n"
102 ".long loc_FFD36938\n"
103 ".long loc_FFD36948\n"
104 ".long loc_FFD36940\n"
105 ".long loc_FFD36950\n"
106 ".long loc_FFD36958\n"
107 ".long loc_FFD36964\n"
108 ".long loc_FFD3696C\n"
109 ".long loc_FFD36978\n"
110 ".long loc_FFD36980\n"
111 ".long loc_FFD36988\n"
112 ".long loc_FFD36990\n"
113 ".long loc_FFD36998\n"
114 ".long loc_FFD369A0\n"
115 ".long loc_FFD369AC\n"
116 ".long loc_FFD369B4\n"
117 ".long loc_FFD369BC\n"
118 ".long loc_FFD369C4\n"
119 ".long loc_FFD369D0\n"
120 ".long loc_FFD369D8\n"
121 ".long loc_FFD369F0\n"
122
123
124 "loc_FFD36924:\n"
125 "BL sub_FFD38088\n"
126 "BL shooting_expo_param_override\n"
127 "BL sub_FFD34560\n"
128 "B loc_FFD369EC\n"
129
130
131 "loc_FFD36930:\n"
132 "BL sub_FFD364B0_my\n"
133 "B loc_FFD369EC\n"
134
135
136 "loc_FFD36938:\n"
137 "BL sub_FFD3841C\n"
138 "B loc_FFD369EC\n"
139
140
141 "loc_FFD36940:\n"
142 "BL sub_FFD37344\n"
143 "B loc_FFD369EC\n"
144
145
146 "loc_FFD36948:\n"
147 "BL sub_FFD373A0\n"
148 "B loc_FFD369EC\n"
149
150
151 "loc_FFD36950:\n"
152 "BL sub_FFD37590\n"
153 "B loc_FFD369EC\n"
154
155
156 "loc_FFD36958:\n"
157 "BL sub_FFD3817C\n"
158 "BL sub_FFD34560\n"
159 "B loc_FFD369EC\n"
160
161
162 "loc_FFD36964:\n"
163 "BL sub_FFD36598\n"
164 "B loc_FFD369EC\n"
165
166
167 "loc_FFD3696C:\n"
168 "BL sub_FFD381E4\n"
169 "BL sub_FFD34560\n"
170 "B loc_FFD369EC\n"
171
172
173 "loc_FFD36978:\n"
174 "BL sub_FFD373A0\n"
175 "B loc_FFD369EC\n"
176
177
178 "loc_FFD36980:\n"
179 "BL sub_FFD38AA8\n"
180 "B loc_FFD369EC\n"
181
182
183 "loc_FFD36988:\n"
184 "BL sub_FFD38D30\n"
185 "B loc_FFD369EC\n"
186
187
188 "loc_FFD36990:\n"
189 "BL sub_FFD38DBC\n"
190 "B loc_FFD369EC\n"
191
192
193 "loc_FFD36998:\n"
194 "BL sub_FFD38E74\n"
195 "B loc_FFD369EC\n"
196
197
198 "loc_FFD369A0:\n"
199 "MOV R0, #0\n"
200 "BL sub_FFD38F24\n"
201 "B loc_FFD369EC\n"
202
203
204 "loc_FFD369AC:"
205 "BL sub_FFD39074\n"
206 "B loc_FFD369EC\n"
207
208
209 "loc_FFD369B4:\n"
210 "BL sub_FFD390E8\n"
211 "B loc_FFD369EC\n"
212
213
214 "loc_FFD369BC:\n"
215 "BL sub_FFD391A0\n"
216 "B loc_FFD369EC\n"
217
218
219 "loc_FFD369C4:\n"
220 "MOV R0, #1\n"
221 "BL sub_FFD38F24\n"
222 "B loc_FFD369EC\n"
223
224
225 "loc_FFD369D0:\n"
226 "BL sub_FFD392A0\n"
227 "B loc_FFD369EC\n"
228
229
230 "loc_FFD369D8:\n"
231 "BL sub_FFD392CC\n"
232 "B loc_FFD369EC\n"
233
234
235 "loc_FFD369E0:\n"
236 "LDR R0, =0xFFD36234\n"
237 "MOV R1, #0x2DC\n"
238 "BL sub_FFC03AD0\n"
239
240 "loc_FFD369EC:\n"
241 "LDR R2, [SP,#0xC-0xC]\n"
242
243 "loc_FFD369F0:\n"
244 "LDR R3, =0x73CBC\n"
245 "LDR R1, [R2,#4]\n"
246 "LDR R0, [R3]\n"
247 "BL sub_FFC0F8C4\n"
248 "LDR R0, [SP,#0xC-0xC]\n"
249 "BL sub_FFD362B0\n"
250
251 "loc_FFD36A08:\n"
252 "LDR R3, =0x73CC0\n"
253 "MOV R1, R4\n"
254 "LDR R0, [R3]\n"
255 "MOV R2, #0\n"
256 "BL sub_FFC10074\n"
257 "TST R0, #1\n"
258 "BEQ loc_FFD368B4\n"
259 "MOV R1, #0x24C\n"
260 "LDR R0, =0xFFD36234\n"
261 "ADD R1, R1, #1\n"
262 "BL sub_FFC03AD0\n"
263 "BL sub_FFC11610\n"
264 "ADD SP, SP, #4\n"
265 "LDMFD SP!, {R4,PC}\n"
266
267 );
268 }
269
270 void __attribute__((naked,noinline)) exp_drv_task(){
271 asm volatile(
272 "STMFD SP!, {R4-R8,LR}\n"
273 "SUB SP, SP, #0x14\n"
274 "MOV R7, SP\n"
275 "B loc_FFCE3148\n"
276 "loc_FFCE2E64:\n"
277 "CMP R2, #0x19\n"
278 "BNE loc_FFCE2E7C\n"
279 "LDR R0, [R12,#0x34]\n"
280 "MOV LR, PC\n"
281 "LDR PC, [R12,#0x30]\n"
282 "B loc_FFCE2EB4\n"
283 "loc_FFCE2E7C:\n"
284 "SUB R3, R2, #0x16\n"
285 "CMP R3, #1\n"
286 "BHI loc_FFCE2E94\n"
287 "MOV R0, R12\n"
288 "BL sub_FFCE2DFC\n"
289 "B loc_FFCE2EA4\n"
290 "loc_FFCE2E94:\n"
291 "CMP R2, #0x18\n"
292 "BNE loc_FFCE2EC0\n"
293 "BL sub_FFC97A1C\n"
294 "BL sub_FFC99894\n"
295 "loc_FFCE2EA4:\n"
296 "LDR R3, [SP,#0x0]\n"
297 "LDR R0, [R3,#0x34]\n"
298 "MOV LR, PC\n"
299 "LDR PC, [R3,#0x30]\n"
300 "loc_FFCE2EB4:\n"
301 "LDR R0, [SP,#0x0]\n"
302 "BL sub_FFCE114C\n"
303 "B loc_FFCE3148\n"
304 "loc_FFCE2EC0:\n"
305 "CMP R2, #0xC\n"
306 "MOV R8, #1\n"
307 "BNE loc_FFCE2F30\n"
308 "LDR R1, [R12,#0x24]\n"
309 "ADD R1, R1, R1,LSL#1\n"
310 "ADD R1, R12, R1,LSL#1\n"
311 "ADD R6, SP, #0xC\n"
312 "SUB R1, R1, #2\n"
313 "MOV R2, #6\n"
314 "MOV R0, R6\n"
315 "BL _memcpy\n"
316 "LDR R0, [SP,#0x0]\n"
317 "BL sub_FFCE2424\n"
318 "LDR R3, [SP,#0x0]\n"
319 "LDR R1, [R3,#0x24]\n"
320 "LDR R2, [R3,#0x34]\n"
321 "ADD R0, R3, #4\n"
322 "MOV LR, PC\n"
323 "LDR PC, [R3,#0x30]\n"
324 "LDR R0, [SP,#0x0]\n"
325 "BL sub_FFCE25A8\n"
326 "LDR R3, [SP,#0x0]\n"
327 "ADD R0, R3, #4\n"
328 "LDR R1, [R3,#0x24]\n"
329 "LDR R2, [R3,#0x3C]\n"
330 "MOV LR, PC\n"
331 "LDR PC, [R3,#0x38]\n"
332 "B loc_FFCE30F8\n"
333 "loc_FFCE2F30:\n"
334 "SUB R3, R2, #0xD\n"
335 "CMP R3, #1\n"
336 "BHI loc_FFCE2FB0\n"
337 "ADD R6, SP, #0xC\n"
338 "ADD R5, SP, #0x4\n"
339 "MOV R0, R12\n"
340 "MOV R1, R6\n"
341 "MOV R2, R5\n"
342 "BL sub_FFCE2624\n"
343 "MOV R4, R0\n"
344 "CMP R4, #3\n"
345 "CMPNE R4, #1\n"
346 "BNE loc_FFCE2F90\n"
347 "LDR R12, [SP,#0x0]\n"
348 "MOV R0, R5\n"
349 "LDR R1, [R12,#0x24]\n"
350 "MOV R2, R4\n"
351 "LDR R3, [R12,#0x34]\n"
352 "MOV LR, PC\n"
353 "LDR PC, [R12,#0x30]\n"
354 "MOV R1, R4\n"
355 "LDR R0, [SP,#0x0]\n"
356 "BL sub_FFCE2DDC\n"
357 "B loc_FFCE30F8\n"
358 "loc_FFCE2F90:\n"
359 "LDR R12, [SP,#0x0]\n"
360 "MOV R2, R4\n"
361 "ADD R0, R12, #4\n"
362 "LDR R1, [R12,#0x24]\n"
363 "LDR R3, [R12,#0x34]\n"
364 "MOV LR, PC\n"
365 "LDR PC, [R12,#0x30]\n"
366 "B loc_FFCE30F8\n"
367 "loc_FFCE2FB0:\n"
368 "CMP R2, #0x14\n"
369 "BNE loc_FFCE3004\n"
370 "LDR R1, [R12,#0x24]\n"
371 "ADD R1, R1, R1,LSL#1\n"
372 "ADD R1, R12, R1,LSL#1\n"
373 "ADD R6, SP, #0xC\n"
374 "SUB R1, R1, #2\n"
375 "MOV R2, #6\n"
376 "MOV R0, R6\n"
377 "BL _memcpy\n"
378 "LDR R0, [SP,#0x0]\n"
379 "BL sub_FFCE1EFC\n"
380 "LDR R3, [SP,#0x0]\n"
381 "ADD R0, R3, #4\n"
382 "LDR R1, [R3,#0x24]\n"
383 "LDR R2, [R3,#0x34]\n"
384 "MOV LR, PC\n"
385 "LDR PC, [R3,#0x30]\n"
386 "LDR R0, [SP,#0x0]\n"
387 "BL sub_FFCE2154\n"
388 "B loc_FFCE30F8\n"
389 "loc_FFCE3004:\n"
390 "ADD R6, SP, #0xC\n"
391 "ADD R1, R12, #4\n"
392 "MOV R0, R6\n"
393 "MOV R2, #6\n"
394 "BL _memcpy\n"
395 "LDR R12, [SP,#0x0]\n"
396 "LDR R3, [R12]\n"
397 "MOV R0, R12\n"
398 "CMP R3, #0x15\n"
399 "LDRLS PC, [PC,R3,LSL#2]\n"
400 "B loc_FFCE30E4\n"
401 ".long loc_FFCE3088\n"
402 ".long loc_FFCE3090\n"
403 ".long loc_FFCE3098\n"
404 ".long loc_FFCE3098\n"
405 ".long loc_FFCE3088\n"
406 ".long loc_FFCE3090\n"
407 ".long loc_FFCE3098\n"
408 ".long loc_FFCE3098\n"
409 ".long loc_FFCE30B0\n"
410 ".long loc_FFCE30B0\n"
411 ".long loc_FFCE30D4\n"
412 ".long loc_FFCE30DC\n"
413 ".long loc_FFCE30E4\n"
414 ".long loc_FFCE30E4\n"
415 ".long loc_FFCE30E4\n"
416 ".long loc_FFCE30A0\n"
417 ".long loc_FFCE30A8\n"
418 ".long loc_FFCE30BC\n"
419 ".long loc_FFCE30C4\n"
420 ".long loc_FFCE30C4\n"
421 ".long loc_FFCE30E4\n"
422 ".long loc_FFCE30CC\n"
423 "loc_FFCE3088:\n"
424 "BL sub_FFCE1628\n"
425 "B loc_FFCE30E0\n"
426 "loc_FFCE3090:\n"
427 "BL sub_FFCE1764\n"
428 "B loc_FFCE30E0\n"
429 "loc_FFCE3098:\n"
430 "BL sub_FFCE1894\n"
431 "B loc_FFCE30E0\n"
432 "loc_FFCE30A0:\n"
433 "BL sub_FFCE1A68\n"
434 "B loc_FFCE30E0\n"
435 "loc_FFCE30A8:\n"
436 "BL sub_FFCE1B70\n"
437 "B loc_FFCE30E0\n"
438 "loc_FFCE30B0:\n"
439 "BL sub_FFCE1C34_my\n"
440 "MOV R8, #0\n"
441 "B loc_FFCE30E0\n"
442 "loc_FFCE30BC:\n"
443 "BL sub_FFCE1CF8\n"
444 "B loc_FFCE30E0\n"
445 "loc_FFCE30C4:\n"
446 "BL sub_FFCE1DE0\n"
447 "B loc_FFCE30E0\n"
448 "loc_FFCE30CC:\n"
449 "BL sub_FFCE21E4\n"
450 "B loc_FFCE30E0\n"
451 "loc_FFCE30D4:\n"
452 "BL sub_FFCE22B8\n"
453 "B loc_FFCE30E0\n"
454 "loc_FFCE30DC:\n"
455 "BL sub_FFCE23A4\n"
456 "loc_FFCE30E0:\n"
457 "LDR R12, [SP,#0x0]\n"
458 "loc_FFCE30E4:\n"
459 "ADD R0, R12, #4\n"
460 "LDR R1, [R12,#0x24]\n"
461 "LDR R2, [R12,#0x34]\n"
462 "MOV LR, PC\n"
463 "LDR PC, [R12,#0x30]\n"
464 "loc_FFCE30F8:\n"
465 "CMP R8, #1\n"
466 "BNE loc_FFCE3120\n"
467 "LDR R1, [SP,#0x0]\n"
468 "LDR R3, [R1,#0x24]\n"
469 "ADD R3, R3, R3,LSL#1\n"
470 "ADD R1, R1, R3,LSL#1\n"
471 "MOV R0, R6\n"
472 "SUB R1, R1, #2\n"
473 "BL sub_FFCE14E0\n"
474 "B loc_FFCE3140\n"
475 "loc_FFCE3120:\n"
476 "MOV R0, #1\n"
477 "MOV R1, R0\n"
478 "MOV R2, R0\n"
479 "BL sub_FFCE1484\n"
480 "MOV R0, #1\n"
481 "MOV R1, R0\n"
482 "MOV R2, R0\n"
483 "BL sub_FFCE15A0\n"
484 "loc_FFCE3140:\n"
485 "LDR R0, [SP,#0x0]\n"
486 "BL sub_FFCE114C\n"
487 "loc_FFCE3148:\n"
488 "LDR R3, =0x4FB70\n"
489 "MOV R2, #0\n"
490 "LDR R0, [R3]\n"
491 "MOV R1, R7\n"
492 "BL sub_FFC10074\n"
493 "LDR R12, [SP,#0x0]\n"
494 "LDR R2, [R12]\n"
495 "CMP R2, #0x1A\n"
496 "BNE loc_FFCE2E64\n"
497 "MOV R0, R12\n"
498 "BL sub_FFCE114C\n"
499 "LDR R3, =0x4FB6C\n"
500 "MOV R1, #1\n"
501 "LDR R0, [R3]\n"
502 "BL sub_FFC0F8C4\n"
503 "BL _ExitTask\n"
504 "ADD SP, SP, #0x14\n"
505 "LDMFD SP!, {R4-R8,PC}\n"
506 );
507 }
508
509 void __attribute__((naked,noinline)) sub_FFCE1C34_my(){
510 asm volatile(
511 "STMFD SP!, {R4,R5,LR}\n"
512 "LDR R3, =0x4FB6C\n"
513 "MOV R4, R0\n"
514 "MOV R1, #0xE\n"
515 "LDR R0, [R3]\n"
516 "BL sub_FFC0FA60\n"
517 "MOV R1, #0\n"
518 "LDRSH R0, [R4,#4]\n"
519 "BL sub_FFCE11EC\n"
520 "MOV R5, R0\n"
521 "LDRSH R0, [R4,#6]\n"
522 "BL sub_FFCE131C\n"
523 "LDRSH R0, [R4,#8]\n"
524 "BL sub_FFCE13B8\n"
525 "LDR R3, [R4]\n"
526 "CMP R3, #9\n"
527 "MOVEQ R5, #0\n"
528 "CMP R5, #1\n"
529 "LDR R1, =0xFFCE117C\n"
530 "MOV R2, #2\n"
531 "BNE loc_FFCE1CA0\n"
532 "LDRSH R0, [R4,#4]\n"
533 "BL sub_FFE5CDA0\n"
534 "LDR R2, =0x4FB98\n"
535 "MOV R3, #0\n"
536 "STR R3, [R2]\n"
537 "B loc_FFCE1CA4\n"
538 "loc_FFCE1CA0:\n"
539 "BL sub_FFCE1454\n"
540 "loc_FFCE1CA4:\n"
541 "STRH R0, [R4,#4]\n"
542 "LDRSH R0, [R4,#6]\n"
543 "BL sub_FFC976B4_my\n"
544 "BL sub_FFC99638\n"
545 "LDRSH R0, [R4,#8]\n"
546 "MOV R1, #1\n"
547 "BL sub_FFC99454\n"
548 "MOV R1, #0\n"
549 "ADD R0, R4, #8\n"
550 "BL sub_FFC99518\n"
551 "CMP R5, #1\n"
552 "MOV R1, #2\n"
553 "MOV R2, #0\n"
554 "LDMNEFD SP!, {R4,R5,PC}\n"
555 "LDR R3, =0x4FB6C\n"
556 "LDR R0, [R3]\n"
557 "LDMFD SP!, {R4,R5,LR}\n"
558 "B sub_FFC0F8B4\n"
559 );
560 }
561
562 void __attribute__((naked,noinline)) sub_FFC976B4_my(){
563 asm volatile(
564 "STMFD SP!, {R4,LR}\n"
565 "LDR R3, =0x5388\n"
566 "LDR R2, [R3]\n"
567 "MOV R3, R0,LSL#16\n"
568 "CMP R2, #1\n"
569 "MOV R1, #0x110\n"
570 "LDR R0, =0xFFC97050\n"
571 "MOV R4, R3,ASR#16\n"
572 "BEQ loc_FFC976DC\n"
573 "BL sub_FFC03AD0\n"
574 "loc_FFC976DC:\n"
575 "MOV R1, #0x114\n"
576 "CMN R4, #0xC00\n"
577 "LDR R3, =0x3609E\n"
578 "LDR R0, =0xFFC97050\n"
579 "ADD R1, R1, #2\n"
580 "LDREQSH R4, [R3]\n"
581 "LDRNE R3, =0x3609E\n"
582 "CMN R4, #0xC00\n"
583 "STRH R4, [R3]\n"
584 "BNE loc_FFC97708\n"
585 "BL sub_FFC03AD0\n"
586 "loc_FFC97708:\n"
587 "MOV R0, R4\n"
588 "BL apex2us\n"
589 "BL sub_FFC96C44\n"
590 "TST R0, #1\n"
591 "MOV R1, #0x118\n"
592 "LDR R0, =0xFFC97050\n"
593 "LDMEQFD SP!, {R4,PC}\n"
594 "LDMFD SP!, {R4,LR}\n"
595 "B sub_FFC03AD0\n"
596 );
597 }