This source file includes following definitions.
- capt_seq_task
- sub_FF95E948_my
- sub_FF95E864_my
- sub_FF961D24_my
- exp_drv_task
- sub_FF904D70_my
- sub_FF8B0CB8_my
1
2
3
4 #include "lolevel.h"
5 #include "platform.h"
6 #include "core.h"
7
8 static long *nrflag = (long*)0x61B0;
9
10 #include "../../../generic/capt_seq.c"
11
12
13
14 void __attribute__((naked,noinline)) capt_seq_task() {
15 asm volatile (
16 " STMFD SP!, {R4,LR} \n"
17 " SUB SP, SP, #4 \n"
18 " MOV R4, SP \n"
19 " B loc_FF95EE64 \n"
20
21 "loc_FF95ECFC:\n"
22 " LDR R2, [SP] \n"
23 " LDR R3, [R2] \n"
24 " MOV R0, R2 \n"
25 " CMP R3, #0x14 \n"
26 " LDRLS PC, [PC, R3, LSL#2] \n"
27 " B loc_FF95EE38 \n"
28 " .long loc_FF95ED68 \n"
29 " .long loc_FF95ED88 \n"
30 " .long loc_FF95ED9C \n"
31 " .long loc_FF95EDAC \n"
32 " .long loc_FF95EDA4 \n"
33 " .long loc_FF95EDB4 \n"
34 " .long loc_FF95EDBC \n"
35 " .long loc_FF95EDC8 \n"
36 " .long loc_FF95EDD0 \n"
37 " .long loc_FF95EDDC \n"
38 " .long loc_FF95EDE4 \n"
39 " .long loc_FF95EDEC \n"
40 " .long loc_FF95EDF4 \n"
41 " .long loc_FF95EDFC \n"
42 " .long loc_FF95EE04 \n"
43 " .long loc_FF95EE10 \n"
44 " .long loc_FF95EE18 \n"
45 " .long loc_FF95EE20 \n"
46 " .long loc_FF95EE28 \n"
47 " .long loc_FF95EE30 \n"
48 " .long loc_FF95EE4C \n"
49
50 "loc_FF95ED68:\n"
51 " BL sub_FF960740 \n"
52
53
54 " BL captseq_hack_override_active\n"
55 " STR R2, [SP,#-4]!\n"
56 " BL shooting_expo_param_override\n"
57
58 " BL sub_FF95CA6C \n"
59 " LDR R3, =0x99F00 \n"
60
61 " LDR R2, [SP], #4\n"
62 " CMP R2, #1\n"
63 " MOVEQ R2, #0\n"
64 " STREQ R2, [R3, #0x24]\n"
65 " LDRNE R2, [R3, #0x24]\n"
66 " CMPNE R2, #0\n"
67
68
69
70 " BEQ loc_FF95EE48 \n"
71 " BL sub_FF95E948_my \n"
72 " B loc_FF95EE48 \n"
73
74 "loc_FF95ED88:\n"
75 " BL sub_FF95E864_my \n"
76
77 "loc_FF95ED8C:\n"
78 " LDR R2, =0x99F00 \n"
79 " MOV R3, #0 \n"
80 " STR R3, [R2, #0x24] \n"
81 " B loc_FF95EE48 \n"
82
83 "loc_FF95ED9C:\n"
84 " BL sub_FF960AD0 \n"
85 " B loc_FF95EE48 \n"
86
87 "loc_FF95EDA4:\n"
88 " BL sub_FF95F938 \n"
89 " B loc_FF95ED8C \n"
90
91 "loc_FF95EDAC:\n"
92 " BL sub_FF95FCD4 \n"
93 " B loc_FF95ED8C \n"
94
95 "loc_FF95EDB4:\n"
96 " BL sub_FF95FCE4 \n"
97 " B loc_FF95EE48 \n"
98
99 "loc_FF95EDBC:\n"
100 " BL sub_FF960824 \n"
101 " BL sub_FF95CA6C \n"
102 " B loc_FF95EE48 \n"
103
104 "loc_FF95EDC8:\n"
105 " BL sub_FF95EA1C \n"
106 " B loc_FF95EE48 \n"
107
108 "loc_FF95EDD0:\n"
109 " BL sub_FF96088C \n"
110 " BL sub_FF95CA6C \n"
111 " B loc_FF95EE48 \n"
112
113 "loc_FF95EDDC:\n"
114 " BL sub_FF95FCD4 \n"
115 " B loc_FF95EE48 \n"
116
117 "loc_FF95EDE4:\n"
118 " BL sub_FF961024 \n"
119 " B loc_FF95EE48 \n"
120
121 "loc_FF95EDEC:\n"
122 " BL sub_FF961368 \n"
123 " B loc_FF95EE48 \n"
124
125 "loc_FF95EDF4:\n"
126 " BL sub_FF9613EC \n"
127 " B loc_FF95EE48 \n"
128
129 "loc_FF95EDFC:\n"
130 " BL sub_FF9614DC \n"
131 " B loc_FF95EE48 \n"
132
133 "loc_FF95EE04:\n"
134 " MOV R0, #0 \n"
135 " BL sub_FF9615A4 \n"
136 " B loc_FF95EE48 \n"
137
138 "loc_FF95EE10:\n"
139 " BL sub_FF961710 \n"
140 " B loc_FF95EE48 \n"
141
142 "loc_FF95EE18:\n"
143 " BL sub_FF9617A4 \n"
144 " B loc_FF95EE48 \n"
145
146 "loc_FF95EE20:\n"
147 " BL sub_FF961860 \n"
148 " B loc_FF95EE48 \n"
149
150 "loc_FF95EE28:\n"
151 " BL sub_FF96194C \n"
152 " B loc_FF95EE48 \n"
153
154 "loc_FF95EE30:\n"
155 " BL sub_FF9619A0 \n"
156 " B loc_FF95EE48 \n"
157
158 "loc_FF95EE38:\n"
159 " MOV R1, #0x36C \n"
160 " LDR R0, =0xFF95E5F0 /*'ShootTask.c'*/ \n"
161 " ADD R1, R1, #1 \n"
162 " BL _DebugAssert \n"
163
164 "loc_FF95EE48:\n"
165 " LDR R2, [SP] \n"
166
167 "loc_FF95EE4C:\n"
168 " LDR R3, =0x6F274 \n"
169 " LDR R1, [R2, #4] \n"
170 " LDR R0, [R3] \n"
171 " BL sub_FF81FD6C /*_SetEventFlag*/ \n"
172 " LDR R0, [SP] \n"
173 " BL sub_FF95E66C \n"
174
175 "loc_FF95EE64:\n"
176 " LDR R3, =0x6F278 \n"
177 " MOV R1, R4 \n"
178 " LDR R0, [R3] \n"
179 " MOV R2, #0 \n"
180 " BL sub_FF820484 /*_ReceiveMessageQueue*/ \n"
181 " TST R0, #1 \n"
182 " BEQ loc_FF95ECFC \n"
183 " MOV R1, #0x2A4 \n"
184 " LDR R0, =0xFF95E5F0 /*'ShootTask.c'*/ \n"
185 " ADD R1, R1, #3 \n"
186 " BL _DebugAssert \n"
187 " BL _ExitTask \n"
188 " ADD SP, SP, #4 \n"
189 " LDMFD SP!, {R4,PC} \n"
190 );
191 }
192
193
194
195 void __attribute__((naked,noinline)) sub_FF95E948_my() {
196 asm volatile (
197 " STR LR, [SP, #-4]! \n"
198 " LDR R3, =0x99F00 \n"
199 " LDR R2, [R3, #0x24] \n"
200 " CMP R2, #0 \n"
201 " MOV R0, #0xC \n"
202 " BEQ loc_FF95E96C \n"
203 " BL sub_FF96704C \n"
204 " TST R0, #1 \n"
205 " BNE loc_FF95E994 \n"
206
207 "loc_FF95E96C:\n"
208 " BL sub_FF99FE3C \n"
209 " BL sub_FF824AE0 \n"
210 " LDR R3, =0x99E40 \n"
211 " STR R0, [R3, #4] \n"
212 " MOV R0, #0 \n"
213 " BL sub_FF962490 \n"
214 " MOV R0, #0 \n"
215 " BL sub_FF961D24_my \n"
216 " BL capt_seq_hook_raw_here\n"
217 " TST R0, #1 \n"
218 " LDREQ PC, [SP], #4 \n"
219
220 "loc_FF95E994:\n"
221 " LDR R3, =0x619C \n"
222 " MOV R2, #1 \n"
223 " STR R2, [R3] \n"
224 " LDR PC, [SP], #4 \n"
225
226 "loc_FF95E9DC:\n"
227 " MOV R0, #0 \n"
228 " LDR PC, [SP], #4 \n"
229
230 "loc_FF95EA10:\n"
231 " MOV R0, #0 \n"
232 " LDR PC, [SP], #4 \n"
233 );
234 }
235
236
237
238 void __attribute__((naked,noinline)) sub_FF95E864_my() {
239 asm volatile (
240 " STMFD SP!, {R4,R5,LR} \n"
241 " LDR R4, [R0, #0xC] \n"
242 " BL sub_FF96702C \n"
243 " CMP R0, #0 \n"
244 " BNE loc_FF95E87C \n"
245 " BL sub_FF967038 \n"
246
247 "loc_FF95E87C:\n"
248 " LDR R3, =0x99F00 \n"
249 " LDR R2, [R3, #0x24] \n"
250 " CMP R2, #0 \n"
251 " BNE loc_FF95E8B0 \n"
252 " MOV R0, #0xC \n"
253 " BL sub_FF96704C \n"
254 " TST R0, #1 \n"
255 " BEQ loc_FF95E8B0 \n"
256 " MOV R0, #1 \n"
257
258 "loc_FF95E8A0:\n"
259 " MOV R2, R4 \n"
260 " MOV R1, #1 \n"
261 " LDMFD SP!, {R4,R5,LR} \n"
262 " B sub_FF95CF4C \n"
263
264 "loc_FF95E8B0:\n"
265 " LDR R5, =0x99F00 \n"
266 " LDR R3, [R5, #0x24] \n"
267 " CMP R3, #0 \n"
268 " BNE loc_FF95E8CC \n"
269 " MOV R0, #2 \n"
270 " BL sub_FFAB8A88 \n"
271 " LDR R3, [R5, #0x24] \n"
272
273 "loc_FF95E8CC:\n"
274 " CMP R3, #0 \n"
275 " BNE loc_FF95E914 \n"
276 " MOV R0, R4 \n"
277 " BL sub_FF960AE0 \n"
278 " TST R0, #1 \n"
279 " BNE loc_FF95E8A0 \n"
280 " BL sub_FF99FE3C \n"
281 " BL sub_FF824AE0 \n"
282 " LDR R2, =0x99E44 \n"
283 " ADD R3, R4, R4, LSL#1 \n"
284 " STR R0, [R2, R3, LSL#5] \n"
285 " MOV R0, R4 \n"
286 " BL sub_FF962490 \n"
287 " BL sub_FF960FE4 \n"
288 " BL sub_FF960F80 \n"
289 " MOV R0, R4 \n"
290 " BL sub_FF961D24_my \n"
291 " BL capt_seq_hook_raw_here\n"
292 " B loc_FF95E928 \n"
293
294 "loc_FF95E914:\n"
295 " LDR R3, =0x619C \n"
296 " LDR R2, [R3] \n"
297 " CMP R2, #0 \n"
298 " MOVNE R0, #0x1D \n"
299 " MOVEQ R0, #0 \n"
300
301 "loc_FF95E928:\n"
302 " MOV R2, R4 \n"
303 " MOV R1, #1 \n"
304 " BL sub_FF95CF4C \n"
305 " LDMFD SP!, {R4,R5,LR} \n"
306 " B sub_FF961F1C \n"
307 );
308 }
309
310
311
312 void __attribute__((naked,noinline)) sub_FF961D24_my() {
313 asm volatile (
314 " STMFD SP!, {R4-R6,LR} \n"
315 " LDR R3, =0x6F2EC \n"
316 " LDR R5, =0x61AC \n"
317 " SUB SP, SP, #4 \n"
318 " MVN R1, #0 \n"
319 " STR R0, [R5] \n"
320 " LDR R0, [R3] \n"
321 " BL sub_FF81FF08 /*_ClearEventFlag*/ \n"
322 " LDR R3, =0x99F00 \n"
323 " LDR R0, [R3, #0x7C] \n"
324 " BL sub_FF89E02C \n"
325 " BL sub_FF961C78 \n"
326 " BL wait_until_remote_button_is_released\n"
327 " BL capt_seq_hook_set_nr\n"
328 " LDR PC, =0xFF961D54 \n"
329 );
330 }
331
332
333
334 void __attribute__((naked,noinline)) exp_drv_task() {
335 asm volatile (
336 " STMFD SP!, {R4-R8,LR} \n"
337 " SUB SP, SP, #0x14 \n"
338 " MOV R7, SP \n"
339 " B loc_FF9068CC \n"
340
341 "loc_FF9064E0:\n"
342 " CMP R2, #0x1F \n"
343 " BNE loc_FF9064F8 \n"
344 " LDR R0, [R12, #0x50] \n"
345 " MOV LR, PC \n"
346 " LDR PC, [R12, #0x4C] \n"
347 " B loc_FF906558 \n"
348
349 "loc_FF9064F8:\n"
350 " CMP R2, #0x1A \n"
351 " BNE loc_FF90650C \n"
352 " MOV R0, R12 \n"
353 " BL sub_FF906400 \n"
354 " B loc_FF906548 \n"
355
356 "loc_FF90650C:\n"
357 " CMP R2, #0x1B \n"
358 " BNE loc_FF906520 \n"
359 " MOV R0, R12 \n"
360 " BL sub_FF90643C \n"
361 " B loc_FF906548 \n"
362
363 "loc_FF906520:\n"
364 " SUB R3, R2, #0x1C \n"
365 " CMP R3, #1 \n"
366 " BHI loc_FF906538 \n"
367 " MOV R0, R12 \n"
368 " BL sub_FF906478 \n"
369 " B loc_FF906548 \n"
370
371 "loc_FF906538:\n"
372 " CMP R2, #0x1E \n"
373 " BNE loc_FF906564 \n"
374 " BL sub_FF8B1030 \n"
375 " BL sub_FF8B2E20 \n"
376
377 "loc_FF906548:\n"
378 " LDR R3, [SP] \n"
379 " LDR R0, [R3, #0x50] \n"
380 " MOV LR, PC \n"
381 " LDR PC, [R3, #0x4C] \n"
382
383 "loc_FF906558:\n"
384 " LDR R0, [SP] \n"
385 " BL sub_FF9041C0 \n"
386 " B loc_FF9068CC \n"
387
388 "loc_FF906564:\n"
389 " CMP R2, #0xD \n"
390 " MOV R8, #1 \n"
391 " BNE loc_FF9065D4 \n"
392 " LDR R1, [R12, #0x40] \n"
393 " ADD R1, R1, R1, LSL#1 \n"
394 " ADD R1, R12, R1, LSL#1 \n"
395 " ADD R6, SP, #0xC \n"
396 " SUB R1, R1, #2 \n"
397 " MOV R2, #6 \n"
398 " MOV R0, R6 \n"
399 " BL _memcpy \n"
400 " LDR R0, [SP] \n"
401 " BL sub_FF905690 \n"
402 " LDR R3, [SP] \n"
403 " LDR R1, [R3, #0x40] \n"
404 " LDR R2, [R3, #0x50] \n"
405 " ADD R0, R3, #4 \n"
406 " MOV LR, PC \n"
407 " LDR PC, [R3, #0x4C] \n"
408 " LDR R0, [SP] \n"
409 " BL sub_FF905814 \n"
410 " LDR R3, [SP] \n"
411 " ADD R0, R3, #4 \n"
412 " LDR R1, [R3, #0x40] \n"
413 " LDR R2, [R3, #0x58] \n"
414 " MOV LR, PC \n"
415 " LDR PC, [R3, #0x54] \n"
416 " B loc_FF90687C \n"
417
418 "loc_FF9065D4:\n"
419 " SUB R3, R2, #0xE \n"
420 " CMP R3, #1 \n"
421 " BHI loc_FF906690 \n"
422 " ADD R6, SP, #0xC \n"
423 " ADD R5, SP, #4 \n"
424 " MOV R0, R12 \n"
425 " MOV R1, R6 \n"
426 " MOV R2, R5 \n"
427 " BL sub_FF905890 \n"
428 " MOV R4, R0 \n"
429 " CMP R4, #5 \n"
430 " CMPNE R4, #1 \n"
431 " BNE loc_FF906628 \n"
432 " LDR R12, [SP] \n"
433 " MOV R0, R5 \n"
434 " LDR R1, [R12, #0x40] \n"
435 " MOV R2, R4 \n"
436 " LDR R3, [R12, #0x50] \n"
437 " MOV LR, PC \n"
438 " LDR PC, [R12, #0x4C] \n"
439 " B loc_FF906660 \n"
440
441 "loc_FF906628:\n"
442 " CMP R4, #6 \n"
443 " CMPNE R4, #2 \n"
444 " BNE loc_FF906670 \n"
445 " LDR R12, [SP] \n"
446 " MOV R0, R5 \n"
447 " MOV R1, R8 \n"
448 " MOV R2, R4 \n"
449 " LDR R3, [R12, #0x50] \n"
450 " MOV LR, PC \n"
451 " LDR PC, [R12, #0x4C] \n"
452 " MOV R1, R6 \n"
453 " LDR R0, [SP] \n"
454 " MOV R2, R5 \n"
455 " BL sub_FF90623C \n"
456
457 "loc_FF906660:\n"
458 " MOV R1, R4 \n"
459 " LDR R0, [SP] \n"
460 " BL sub_FF9063E0 \n"
461 " B loc_FF90687C \n"
462
463 "loc_FF906670:\n"
464 " LDR R12, [SP] \n"
465 " MOV R2, R4 \n"
466 " ADD R0, R12, #4 \n"
467 " LDR R1, [R12, #0x40] \n"
468 " LDR R3, [R12, #0x50] \n"
469 " MOV LR, PC \n"
470 " LDR PC, [R12, #0x4C] \n"
471 " B loc_FF90687C \n"
472
473 "loc_FF906690:\n"
474 " SUB R3, R2, #0x17 \n"
475 " CMP R3, #1 \n"
476 " BHI loc_FF9066E8 \n"
477 " LDR R1, [R12, #0x40] \n"
478 " ADD R1, R1, R1, LSL#1 \n"
479 " ADD R1, R12, R1, LSL#1 \n"
480 " ADD R6, SP, #0xC \n"
481 " SUB R1, R1, #2 \n"
482 " MOV R2, #6 \n"
483 " MOV R0, R6 \n"
484 " BL _memcpy \n"
485 " LDR R0, [SP] \n"
486 " BL sub_FF9051C4 \n"
487 " LDR R3, [SP] \n"
488 " ADD R0, R3, #4 \n"
489 " LDR R1, [R3, #0x40] \n"
490 " LDR R2, [R3, #0x50] \n"
491 " MOV LR, PC \n"
492 " LDR PC, [R3, #0x4C] \n"
493 " LDR R0, [SP] \n"
494 " BL sub_FF905394 \n"
495 " B loc_FF90687C \n"
496
497 "loc_FF9066E8:\n"
498 " ADD R6, SP, #0xC \n"
499 " ADD R1, R12, #4 \n"
500 " MOV R2, #6 \n"
501 " MOV R0, R6 \n"
502 " BL _memcpy \n"
503 " LDR R12, [SP] \n"
504 " LDR R3, [R12] \n"
505 " MOV R2, R12 \n"
506 " CMP R3, #0x19 \n"
507 " LDRLS PC, [PC, R3, LSL#2] \n"
508 " B loc_FF906868 \n"
509 " .long loc_FF90677C \n"
510 " .long loc_FF906788 \n"
511 " .long loc_FF906794 \n"
512 " .long loc_FF906794 \n"
513 " .long loc_FF90677C \n"
514 " .long loc_FF906788 \n"
515 " .long loc_FF906794 \n"
516 " .long loc_FF906794 \n"
517 " .long loc_FF9067B8 \n"
518 " .long loc_FF9067B8 \n"
519 " .long loc_FF90683C \n"
520 " .long loc_FF906848 \n"
521 " .long loc_FF906858 \n"
522 " .long loc_FF906868 \n"
523 " .long loc_FF906868 \n"
524 " .long loc_FF906868 \n"
525 " .long loc_FF9067A0 \n"
526 " .long loc_FF9067AC \n"
527 " .long loc_FF9067C8 \n"
528 " .long loc_FF9067D4 \n"
529 " .long loc_FF9067FC \n"
530 " .long loc_FF906824 \n"
531 " .long loc_FF906824 \n"
532 " .long loc_FF906868 \n"
533 " .long loc_FF906868 \n"
534 " .long loc_FF906830 \n"
535
536 "loc_FF90677C:\n"
537 " MOV R0, R2 \n"
538 " BL sub_FF904764 \n"
539 " B loc_FF906864 \n"
540
541 "loc_FF906788:\n"
542 " MOV R0, R2 \n"
543 " BL sub_FF9048A0 \n"
544 " B loc_FF906864 \n"
545
546 "loc_FF906794:\n"
547 " MOV R0, R2 \n"
548 " BL sub_FF9049D0 \n"
549 " B loc_FF906864 \n"
550
551 "loc_FF9067A0:\n"
552 " MOV R0, R2 \n"
553 " BL sub_FF904BA4 \n"
554 " B loc_FF906864 \n"
555
556 "loc_FF9067AC:\n"
557 " MOV R0, R2 \n"
558 " BL sub_FF904CAC \n"
559 " B loc_FF906864 \n"
560
561 "loc_FF9067B8:\n"
562 " MOV R0, R2 \n"
563 " BL sub_FF904D70_my \n"
564 " MOV R8, #0 \n"
565 " B loc_FF906864 \n"
566
567 "loc_FF9067C8:\n"
568 " MOV R0, R2 \n"
569 " BL sub_FF904E30 \n"
570 " B loc_FF906864 \n"
571
572 "loc_FF9067D4:\n"
573 " MOV R0, R2 \n"
574 " LDRH R2, [R2, #4] \n"
575 " LDR R3, =0x4A344 \n"
576 " STRH R2, [SP, #0xC] \n"
577 " LDRH R1, [R3, #4] \n"
578 " STRH R1, [SP, #0x10] \n"
579 " LDRH R3, [R3, #2] \n"
580 " STRH R3, [SP, #0xE] \n"
581 " BL sub_FF904FB8 \n"
582 " B loc_FF906864 \n"
583
584 "loc_FF9067FC:\n"
585 " LDR R3, =0x4A344 \n"
586 " LDRH R1, [R3] \n"
587 " STRH R1, [SP, #0xC] \n"
588 " MOV R0, R2 \n"
589 " LDRH R2, [R2, #6] \n"
590 " STRH R2, [SP, #0xE] \n"
591 " LDRH R3, [R3, #4] \n"
592 " STRH R3, [SP, #0x10] \n"
593 " BL sub_FF90504C \n"
594 " B loc_FF906864 \n"
595
596 "loc_FF906824:\n"
597 " MOV R0, R2 \n"
598 " BL sub_FF9050CC \n"
599 " B loc_FF906864 \n"
600
601 "loc_FF906830:\n"
602 " MOV R0, R2 \n"
603 " BL sub_FF905424 \n"
604 " B loc_FF906864 \n"
605
606 "loc_FF90683C:\n"
607 " MOV R0, R2 \n"
608 " BL sub_FF9054F8 \n"
609 " B loc_FF906864 \n"
610
611 "loc_FF906848:\n"
612 " MOV R0, R2 \n"
613 " MOV R1, #0 \n"
614 " BL sub_FF9055E4 \n"
615 " B loc_FF906864 \n"
616
617 "loc_FF906858:\n"
618 " MOV R0, R2 \n"
619 " MOV R1, #1 \n"
620 " BL sub_FF9055E4 \n"
621
622 "loc_FF906864:\n"
623 " LDR R12, [SP] \n"
624
625 "loc_FF906868:\n"
626 " ADD R0, R12, #4 \n"
627 " LDR R1, [R12, #0x40] \n"
628 " LDR R2, [R12, #0x50] \n"
629 " MOV LR, PC \n"
630 " LDR PC, [R12, #0x4C] \n"
631
632 "loc_FF90687C:\n"
633 " CMP R8, #1 \n"
634 " BNE loc_FF9068A4 \n"
635 " LDR R1, [SP] \n"
636 " LDR R3, [R1, #0x40] \n"
637 " ADD R3, R3, R3, LSL#1 \n"
638 " ADD R1, R1, R3, LSL#1 \n"
639 " MOV R0, R6 \n"
640 " SUB R1, R1, #2 \n"
641 " BL sub_FF9045D4 \n"
642 " B loc_FF9068C4 \n"
643
644 "loc_FF9068A4:\n"
645 " MOV R0, #1 \n"
646 " MOV R1, R0 \n"
647 " MOV R2, R0 \n"
648 " BL sub_FF904578 \n"
649 " MOV R0, #1 \n"
650 " MOV R1, R0 \n"
651 " MOV R2, R0 \n"
652 " BL sub_FF904690 \n"
653
654 "loc_FF9068C4:\n"
655 " LDR R0, [SP] \n"
656 " BL sub_FF9041C0 \n"
657
658 "loc_FF9068CC:\n"
659 " LDR R3, =0x4A33C \n"
660 " MOV R2, #0 \n"
661 " LDR R0, [R3] \n"
662 " MOV R1, R7 \n"
663 " BL sub_FF820484 /*_ReceiveMessageQueue*/ \n"
664 " LDR R12, [SP] \n"
665 " LDR R2, [R12] \n"
666 " CMP R2, #0x20 \n"
667 " BNE loc_FF9064E0 \n"
668 " MOV R0, R12 \n"
669 " BL sub_FF9041C0 \n"
670 " LDR R3, =0x4A338 \n"
671 " MOV R1, #1 \n"
672 " LDR R0, [R3] \n"
673 " BL sub_FF81FD6C /*_SetEventFlag*/ \n"
674 " BL _ExitTask \n"
675 " ADD SP, SP, #0x14 \n"
676 " LDMFD SP!, {R4-R8,PC} \n"
677 );
678 }
679
680
681
682 void __attribute__((naked,noinline)) sub_FF904D70_my() {
683 asm volatile (
684 " STMFD SP!, {R4,R5,LR} \n"
685 " LDR R3, =0x4A338 \n"
686 " MOV R4, R0 \n"
687 " MOV R1, #0xE \n"
688 " LDR R0, [R3] \n"
689 " BL sub_FF81FF08 /*_ClearEventFlag*/ \n"
690 " MOV R1, #0 \n"
691 " LDRSH R0, [R4, #4] \n"
692 " BL sub_FF90429C \n"
693 " MOV R5, R0 \n"
694 " LDRSH R0, [R4, #6] \n"
695 " BL sub_FF904410 \n"
696 " LDRSH R0, [R4, #8] \n"
697 " BL sub_FF9044AC \n"
698 " LDR R3, [R4] \n"
699 " CMP R3, #9 \n"
700 " MOVEQ R5, #0 \n"
701 " CMP R5, #1 \n"
702 " LDR R1, =0xFF9041F4 \n"
703 " MOV R2, #2 \n"
704 " BNE loc_FF904DDC \n"
705 " LDRSH R0, [R4, #4] \n"
706 " BL sub_FFAAC280 \n"
707 " LDR R2, =0x4A364 \n"
708 " MOV R3, #0 \n"
709 " STR R3, [R2] \n"
710 " B loc_FF904DE0 \n"
711
712 "loc_FF904DDC:\n"
713 " BL sub_FF904548 \n"
714
715 "loc_FF904DE0:\n"
716 " STRH R0, [R4, #4] \n"
717 " LDRSH R0, [R4, #6] \n"
718 " BL sub_FF8B0CB8_my \n"
719 " LDRSH R0, [R4, #8] \n"
720 " MOV R1, #1 \n"
721 " BL sub_FF8B29E0 \n"
722 " MOV R1, #0 \n"
723 " ADD R0, R4, #8 \n"
724 " BL sub_FF8B2AA0 \n"
725 " CMP R5, #1 \n"
726 " MOV R1, #2 \n"
727 " MOV R2, #0 \n"
728 " LDMNEFD SP!, {R4,R5,PC} \n"
729 " LDR R3, =0x4A338 \n"
730 " LDR R0, [R3] \n"
731 " LDMFD SP!, {R4,R5,LR} \n"
732 " B sub_FF81FD5C /*_WaitForAllEventFlag*/ \n"
733 );
734 }
735
736
737
738 void __attribute__((naked,noinline)) sub_FF8B0CB8_my() {
739 asm volatile (
740 " STMFD SP!, {R4,LR} \n"
741 " LDR R3, =0x531C \n"
742 " LDR R2, [R3] \n"
743 " MOV R1, #0x114 \n"
744 " MOV R3, R0, LSL#16 \n"
745 " CMP R2, #1 \n"
746 " ADD R1, R1, #1 \n"
747 " LDR R0, =0xFF8B0734 /*'Shutter.c'*/ \n"
748 " MOV R4, R3, ASR#16 \n"
749 " BEQ loc_FF8B0CE4 \n"
750 " BL _DebugAssert \n"
751
752 "loc_FF8B0CE4:\n"
753 " MOV R1, #0x118 \n"
754 " CMN R4, #0xC00 \n"
755 " LDR R3, =0x3D19E \n"
756 " LDR R0, =0xFF8B0734 /*'Shutter.c'*/ \n"
757 " ADD R1, R1, #3 \n"
758 " LDREQSH R4, [R3] \n"
759 " LDRNE R3, =0x3D19E \n"
760 " CMN R4, #0xC00 \n"
761 " STRH R4, [R3] \n"
762 " BNE loc_FF8B0D10 \n"
763 " BL _DebugAssert \n"
764
765 "loc_FF8B0D10:\n"
766 " MOV R0, R4 \n"
767 " BL apex2us \n"
768 " LDR PC, =0xFF8B0D18 \n"
769 );
770 }