This source file includes following definitions.
- capt_seq_task
- sub_FF968D38_my
- exp_drv_task
- sub_FF8AE740_my
- sub_FF89E38C_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4 #include "conf.h"
5
6 static long *nrflag = (long*)(0x8b64+0x00);
7 #define NR_AUTO (0)
8
9 #define PAUSE_FOR_FILE_COUNTER 150
10 #include "../../../generic/capt_seq.c"
11
12
13
14 void __attribute__((naked,noinline)) capt_seq_task() {
15 asm volatile (
16 "STMFD SP!, {R3-R9,LR}\n"
17 "LDR R4, =0x376CC\n"
18 "LDR R7, =0x2BA8\n"
19 "MOV R6, #0\n"
20 "loc_FF872434:\n"
21 "LDR R0, [R7, #4]\n"
22 "MOV R2, #0\n"
23 "MOV R1, SP\n"
24 "BL sub_003F7218 \n"
25 "TST R0, #1\n"
26 "BEQ loc_FF872460\n"
27 "LDR R1, =0x493\n"
28 "LDR R0, =0xFF871F90 \n"
29 "BL _DebugAssert \n"
30 "BL _ExitTask \n"
31 "LDMFD SP!, {R3-R9,PC}\n"
32 "loc_FF872460:\n"
33 "LDR R0, [SP]\n"
34 "LDR R1, [R0]\n"
35 "CMP R1, #0x20\n"
36 "ADDCC PC, PC, R1, LSL #2\n"
37 "B loc_FF8726BC\n"
38 "B loc_FF8724F4\n"
39 "B loc_FF87250C\n"
40 "B loc_FF872570\n"
41 "B loc_FF872584\n"
42 "B loc_FF87257C\n"
43 "B loc_FF872590\n"
44 "B loc_FF872598\n"
45 "B loc_FF8725A0\n"
46 "B loc_FF8725BC\n"
47 "B loc_FF8725E8\n"
48 "B loc_FF8725C8\n"
49 "B loc_FF8725D4\n"
50 "B loc_FF8725DC\n"
51 "B loc_FF8725F0\n"
52 "B loc_FF8725F8\n"
53 "B loc_FF872600\n"
54 "B loc_FF872608\n"
55 "B loc_FF872610\n"
56 "B loc_FF87261C\n"
57 "B loc_FF872624\n"
58 "B loc_FF87262C\n"
59 "B loc_FF872634\n"
60 "B loc_FF87263C\n"
61 "B loc_FF872648\n"
62 "B loc_FF872650\n"
63 "B loc_FF872658\n"
64 "B loc_FF872660\n"
65 "B loc_FF872668\n"
66 "B loc_FF872674\n"
67 "B loc_FF87267C\n"
68 "B loc_FF872688\n"
69 "B loc_FF8726C8\n"
70 "loc_FF8724F4:\n"
71 "BL shooting_expo_iso_override\n"
72 "BL sub_FF872C3C\n"
73 "BL shooting_expo_param_override\n"
74 "BL sub_FF870230\n"
75
76
77
78 "MOV R0, #0\n"
79 "STR R0, [R4,#0x28]\n"
80 "B loc_FF8726C8\n"
81 "loc_FF87250C:\n"
82 "LDR R5, [R0, #0x10]\n"
83 "LDR R0, [R4, #0x28]\n"
84 "CMP R0, #0\n"
85 "BNE loc_FF872548\n"
86 "BL sub_FF873B4C\n"
87 "MOV R1, R5\n"
88 "BL sub_FF873BA4\n"
89 "LDR R0, =0x10F\n"
90 "MOV R2, #4\n"
91 "ADD R1, R5, #0x24\n"
92 "BL _SetPropertyCase \n"
93 "MOV R2, #4\n"
94 "ADD R1, R5, #0x28\n"
95 "MOV R0, #0x2C\n"
96 "BL _SetPropertyCase \n"
97 "loc_FF872548:\n"
98 "MOV R0, R5\n"
99
100 "BL sub_FF968D38_my \n"
101 "BL capt_seq_hook_raw_here \n"
102 "MOV R8, R0\n"
103 "MOV R2, R5\n"
104 "MOV R1, #1\n"
105 "BL sub_FF8706E0\n"
106 "TST R8, #1\n"
107 "MOVEQ R0, R5\n"
108 "BLEQ sub_FF9686B4\n"
109 "B loc_FF8726C8\n"
110 "loc_FF872570:\n"
111 "MOV R0, #1\n"
112 "BL sub_FF872F0C\n"
113 "B loc_FF8726C8\n"
114 "loc_FF87257C:\n"
115 "BL sub_FF872890\n"
116 "B loc_FF872588\n"
117 "loc_FF872584:\n"
118 "BL sub_FF872C1C\n"
119 "loc_FF872588:\n"
120 "STR R6, [R4, #0x28]\n"
121 "B loc_FF8726C8\n"
122 "loc_FF872590:\n"
123 "BL sub_FF872C24\n"
124 "B loc_FF8726C8\n"
125 "loc_FF872598:\n"
126 "BL sub_FF872DF4\n"
127 "B loc_FF8725C0\n"
128 "loc_FF8725A0:\n"
129 "LDR R5, [R0, #0x10]\n"
130 "MOV R0, R5\n"
131 "BL sub_FF968E6C\n"
132 "MOV R2, R5\n"
133 "MOV R1, #9\n"
134 "BL sub_FF8706E0\n"
135 "B loc_FF8726C8\n"
136 "loc_FF8725BC:\n"
137 "BL sub_FF872E74\n"
138 "loc_FF8725C0:\n"
139 "BL sub_FF870230\n"
140 "B loc_FF8726C8\n"
141 "loc_FF8725C8:\n"
142 "LDR R0, [R4, #0x58]\n"
143 "BL sub_FF8732FC\n"
144 "B loc_FF8726C8\n"
145 "loc_FF8725D4:\n"
146 "BL sub_FF8736BC\n"
147 "B loc_FF8726C8\n"
148 "loc_FF8725DC:\n"
149 "MOV R0, #0\n"
150 "BL sub_FF873720\n"
151 "B loc_FF8726C8\n"
152 "loc_FF8725E8:\n"
153 "BL sub_FF872C1C\n"
154 "B loc_FF8726C8\n"
155 "loc_FF8725F0:\n"
156 "BL sub_FF967A58\n"
157 "B loc_FF8726C8\n"
158 "loc_FF8725F8:\n"
159 "BL sub_FF967CB8\n"
160 "B loc_FF8726C8\n"
161 "loc_FF872600:\n"
162 "BL sub_FF967D70\n"
163 "B loc_FF8726C8\n"
164 "loc_FF872608:\n"
165 "BL sub_FF967E44\n"
166 "B loc_FF8726C8\n"
167 "loc_FF872610:\n"
168 "MOV R0, #0\n"
169 "BL sub_FF9680A4\n"
170 "B loc_FF8726C8\n"
171 "loc_FF87261C:\n"
172 "BL sub_FF968214\n"
173 "B loc_FF8726C8\n"
174 "loc_FF872624:\n"
175 "BL sub_FF9682A8\n"
176 "B loc_FF8726C8\n"
177 "loc_FF87262C:\n"
178 "BL sub_FF968364\n"
179 "B loc_FF8726C8\n"
180 "loc_FF872634:\n"
181 "BL sub_FF873080\n"
182 "B loc_FF8726C8\n"
183 "loc_FF87263C:\n"
184 "BL sub_FF873104\n"
185 "BL sub_FF8322CC\n"
186 "B loc_FF8726C8\n"
187 "loc_FF872648:\n"
188 "BL sub_FF967F14\n"
189 "B loc_FF8726C8\n"
190 "loc_FF872650:\n"
191 "BL sub_FF967F54\n"
192 "B loc_FF8726C8\n"
193 "loc_FF872658:\n"
194 "BL sub_FF875028\n"
195 "B loc_FF8726C8\n"
196 "loc_FF872660:\n"
197 "BL sub_FF87509C\n"
198 "B loc_FF8726C8\n"
199 "loc_FF872668:\n"
200 "LDR R0, [R0, #0xC]\n"
201 "BL sub_FF96848C\n"
202 "B loc_FF8726C8\n"
203 "loc_FF872674:\n"
204 "BL sub_FF9684FC\n"
205 "B loc_FF8726C8\n"
206 "loc_FF87267C:\n"
207 "BL sub_FF875104\n"
208 "BL sub_FF8750BC\n"
209 "B loc_FF8726C8\n"
210 "loc_FF872688:\n"
211 "MOV R0, #1\n"
212 "BL sub_FF96956C\n"
213 "MOV R0, #1\n"
214 "BL sub_FF969694\n"
215 "LDRH R0, [R4, #0x9C]\n"
216 "CMP R0, #4\n"
217 "LDRNEH R0, [R4]\n"
218 "SUBNE R1, R0, #0x8200\n"
219 "SUBNES R1, R1, #0x2E\n"
220 "BNE loc_FF8726C8\n"
221 "BL sub_FF87509C\n"
222 "BL sub_FF875560\n"
223 "B loc_FF8726C8\n"
224 "loc_FF8726BC:\n"
225 "LDR R1, =0x5F4\n"
226 "LDR R0, =0xFF871F90 \n"
227 "BL _DebugAssert \n"
228 "loc_FF8726C8:\n"
229 "LDR R0, [SP]\n"
230 "LDR R1, [R0, #4]\n"
231 "LDR R0, [R7]\n"
232 "BL sub_003FAC6C\n"
233 "LDR R5, [SP]\n"
234 "LDR R0, [R5, #8]\n"
235 "CMP R0, #0\n"
236 "LDREQ R1, =0x117\n"
237 "LDREQ R0, =0xFF871F90 \n"
238 "BLEQ _DebugAssert \n"
239 "STR R6, [R5, #8]\n"
240 "B loc_FF872434\n"
241 );
242 }
243
244
245
246 void __attribute__((naked,noinline)) sub_FF968D38_my() {
247 asm volatile (
248 "STMFD SP!, {R4-R6,LR}\n"
249 "LDR R5, =0x376CC\n"
250 "MOV R6, R0\n"
251 "LDR R0, [R5, #0x28]\n"
252 "MOV R4, #0\n"
253 "CMP R0, #0\n"
254 "BNE loc_FF968D68\n"
255 "MOV R0, #0xC\n"
256 "BL sub_FF876C00\n"
257 "TST R0, #1\n"
258 "MOVNE R0, #1\n"
259 "LDMNEFD SP!, {R4-R6,PC}\n"
260 "loc_FF968D68:\n"
261 "BL sub_FF872C2C\n"
262 "LDR R0, [R5, #0x28]\n"
263 "CMP R0, #0\n"
264 "BNE loc_FF968DB8\n"
265 "MOV R0, R6\n"
266 "BL sub_FF9685F4\n"
267 "TST R0, #1\n"
268 "LDMNEFD SP!, {R4-R6,PC}\n"
269 "MOV R0, R6\n"
270 "BL sub_FF968988\n"
271 "BL sub_FF96934C\n"
272
273
274
275 "BL wait_until_remote_button_is_released\n"
276 "BL capt_seq_hook_set_nr\n"
277
278 "MOV R0, #2\n"
279 "BL sub_FF878360\n"
280 "LDR R0, [R5, #0x8C]\n"
281 "TST R0, #0x10\n"
282 "BNE loc_FF968DC8\n"
283 "MOV R0, R6\n"
284 "BL sub_FFA87D48\n"
285
286 "MOV R4, R0\n"
287 "B loc_FF968DCC\n"
288 "loc_FF968DB8:\n"
289 "LDR R0, =0x694C\n"
290 "LDR R0, [R0]\n"
291 "CMP R0, #0\n"
292 "BEQ loc_FF968DCC\n"
293 "loc_FF968DC8:\n"
294 "MOV R4, #0x1D\n"
295 "loc_FF968DCC:\n"
296 "MOV R0, R4\n"
297 "LDMFD SP!, {R4-R6,PC}\n"
298 );
299 }
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456 void __attribute__((naked,noinline)) exp_drv_task() {
457 asm volatile (
458 "STMFD SP!, {R4-R9,LR}\n"
459 "SUB SP, SP, #0x2C\n"
460 "LDR R6, =0x3E3C\n"
461 "LDR R7, =0xBB8\n"
462 "LDR R4, =0x5467C\n"
463 "MOV R0, #0\n"
464 "ADD R5, SP, #0x1C\n"
465 "STR R0, [SP, #0xC]\n"
466 "loc_FF8B1AF0:\n"
467 "LDR R0, [R6, #0x20]\n"
468 "MOV R2, #0\n"
469 "ADD R1, SP, #0x28\n"
470 "BL sub_003F7218\n"
471 "LDR R0, [SP, #0xC]\n"
472 "CMP R0, #1\n"
473 "BNE loc_FF8B1B3C\n"
474 "LDR R0, [SP, #0x28]\n"
475 "LDR R0, [R0]\n"
476 "CMP R0, #0x14\n"
477 "CMPNE R0, #0x15\n"
478 "CMPNE R0, #0x16\n"
479 "CMPNE R0, #0x17\n"
480 "BEQ loc_FF8B1C9C\n"
481 "CMP R0, #0x2A\n"
482 "BEQ loc_FF8B1C24\n"
483 "ADD R1, SP, #0xC\n"
484 "MOV R0, #0\n"
485 "BL sub_FF8B1A80\n"
486 "loc_FF8B1B3C:\n"
487 "LDR R0, [SP, #0x28]\n"
488 "LDR R1, [R0]\n"
489 "CMP R1, #0x30\n"
490 "BNE loc_FF8B1B68\n"
491 "BL sub_FF8B2EB0\n"
492 "LDR R0, [R6, #0x1C]\n"
493 "MOV R1, #1\n"
494 "BL sub_003FAC6C\n"
495 "BL _ExitTask \n"
496 "ADD SP, SP, #0x2C\n"
497 "LDMFD SP!, {R4-R9,PC}\n"
498 "loc_FF8B1B68:\n"
499 "CMP R1, #0x2F\n"
500 "BNE loc_FF8B1B84\n"
501 "LDR R2, [R0, #0x8C]!\n"
502 "LDR R1, [R0, #4]\n"
503 "MOV R0, R1\n"
504 "BLX R2\n"
505 "B loc_FF8B2158\n"
506 "loc_FF8B1B84:\n"
507 "CMP R1, #0x28\n"
508 "BNE loc_FF8B1BD4\n"
509 "LDR R0, [R6, #0x1C]\n"
510 "MOV R1, #0x80\n"
511 "BL sub_003FACA0\n"
512 "LDR R0, =0xFF8AD3E4\n"
513 "MOV R1, #0x80\n"
514 "BL sub_FF959AD8\n"
515 "LDR R0, [R6, #0x1C]\n"
516 "MOV R2, R7\n"
517 "MOV R1, #0x80\n"
518 "BL sub_003FABAC\n"
519 "TST R0, #1\n"
520 "LDRNE R1, =0x157A\n"
521 "BNE loc_FF8B1C90\n"
522 "loc_FF8B1BC0:\n"
523 "LDR R1, [SP, #0x28]\n"
524 "LDR R0, [R1, #0x90]\n"
525 "LDR R1, [R1, #0x8C]\n"
526 "BLX R1\n"
527 "B loc_FF8B2158\n"
528 "loc_FF8B1BD4:\n"
529 "CMP R1, #0x29\n"
530 "BNE loc_FF8B1C1C\n"
531 "ADD R1, SP, #0xC\n"
532 "BL sub_FF8B1A80\n"
533 "LDR R0, [R6, #0x1C]\n"
534 "MOV R1, #0x100\n"
535 "BL sub_003FACA0\n"
536 "LDR R0, =0xFF8AD3F4\n"
537 "MOV R1, #0x100\n"
538 "BL sub_FF959C78\n"
539 "LDR R0, [R6, #0x1C]\n"
540 "MOV R2, R7\n"
541 "MOV R1, #0x100\n"
542 "BL sub_003FABAC\n"
543 "TST R0, #1\n"
544 "BEQ loc_FF8B1BC0\n"
545 "LDR R1, =0x1584\n"
546 "B loc_FF8B1C90\n"
547 "loc_FF8B1C1C:\n"
548 "CMP R1, #0x2A\n"
549 "BNE loc_FF8B1C34\n"
550 "loc_FF8B1C24:\n"
551 "LDR R0, [SP, #0x28]\n"
552 "ADD R1, SP, #0xC\n"
553 "BL sub_FF8B1A80\n"
554 "B loc_FF8B1BC0\n"
555 "loc_FF8B1C34:\n"
556 "CMP R1, #0x2D\n"
557 "BNE loc_FF8B1C4C\n"
558 "BL sub_FF89E640\n"
559 "BL sub_FF89F328\n"
560 "BL sub_FF89EE90\n"
561 "B loc_FF8B1BC0\n"
562 "loc_FF8B1C4C:\n"
563 "CMP R1, #0x2E\n"
564 "BNE loc_FF8B1C9C\n"
565 "LDR R0, [R6, #0x1C]\n"
566 "MOV R1, #4\n"
567 "BL sub_003FACA0\n"
568 "LDR R1, =0xFF8AD414\n"
569 "LDR R0, =0xFFFFF400\n"
570 "MOV R2, #4\n"
571 "BL sub_FF89E090\n"
572 "BL sub_FF89E320\n"
573 "LDR R0, [R6, #0x1C]\n"
574 "MOV R2, R7\n"
575 "MOV R1, #4\n"
576 "BL sub_003FAAC8\n"
577 "TST R0, #1\n"
578 "BEQ loc_FF8B1BC0\n"
579 "LDR R1, =0x15AC\n"
580 "loc_FF8B1C90:\n"
581 "LDR R0, =0xFF8ADB08\n"
582 "BL _DebugAssert \n"
583 "B loc_FF8B1BC0\n"
584 "loc_FF8B1C9C:\n"
585 "LDR R0, [SP, #0x28]\n"
586 "MOV R8, #1\n"
587 "LDR R1, [R0]\n"
588 "CMP R1, #0x12\n"
589 "CMPNE R1, #0x13\n"
590 "BNE loc_FF8B1D04\n"
591 "LDR R1, [R0, #0x7C]\n"
592 "ADD R1, R1, R1, LSL #1\n"
593 "ADD R1, R0, R1, LSL #2\n"
594 "SUB R1, R1, #8\n"
595 "LDMIA R1, {R2,R3,R9}\n"
596 "STMIA R5, {R2,R3,R9}\n"
597 "BL sub_FF8B0020\n"
598 "LDR R0, [SP, #0x28]\n"
599 "LDR R1, [R0, #0x7C]\n"
600 "LDR R3, [R0, #0x8C]\n"
601 "LDR R2, [R0, #0x90]\n"
602 "ADD R0, R0, #4\n"
603 "BLX R3\n"
604 "LDR R0, [SP, #0x28]\n"
605 "BL sub_FF8B32B4\n"
606 "LDR R0, [SP, #0x28]\n"
607 "LDR R1, [R0, #0x7C]\n"
608 "LDR R2, [R0, #0x98]\n"
609 "LDR R3, [R0, #0x94]\n"
610 "B loc_FF8B201C\n"
611 "loc_FF8B1D04:\n"
612 "CMP R1, #0x14\n"
613 "CMPNE R1, #0x15\n"
614 "CMPNE R1, #0x16\n"
615 "CMPNE R1, #0x17\n"
616 "BNE loc_FF8B1DBC\n"
617 "ADD R3, SP, #0xC\n"
618 "MOV R2, SP\n"
619 "ADD R1, SP, #0x1C\n"
620 "BL sub_FF8B0280\n"
621 "CMP R0, #1\n"
622 "MOV R9, R0\n"
623 "CMPNE R9, #5\n"
624 "BNE loc_FF8B1D58\n"
625 "LDR R0, [SP, #0x28]\n"
626 "MOV R2, R9\n"
627 "LDR R1, [R0, #0x7C]!\n"
628 "LDR R12, [R0, #0x10]!\n"
629 "LDR R3, [R0, #4]\n"
630 "MOV R0, SP\n"
631 "BLX R12\n"
632 "B loc_FF8B1D90\n"
633 "loc_FF8B1D58:\n"
634 "LDR R0, [SP, #0x28]\n"
635 "CMP R9, #2\n"
636 "LDR R3, [R0, #0x90]\n"
637 "CMPNE R9, #6\n"
638 "BNE loc_FF8B1DA4\n"
639 "LDR R12, [R0, #0x8C]\n"
640 "MOV R2, R9\n"
641 "MOV R1, #1\n"
642 "MOV R0, SP\n"
643 "BLX R12\n"
644 "LDR R0, [SP, #0x28]\n"
645 "MOV R2, SP\n"
646 "ADD R1, SP, #0x1C\n"
647 "BL sub_FF8B1770\n"
648 "loc_FF8B1D90:\n"
649 "LDR R0, [SP, #0x28]\n"
650 "LDR R2, [SP, #0xC]\n"
651 "MOV R1, R9\n"
652 "BL sub_FF8B19C0\n"
653 "B loc_FF8B2024\n"
654 "loc_FF8B1DA4:\n"
655 "LDR R1, [R0, #0x7C]\n"
656 "LDR R12, [R0, #0x8C]\n"
657 "MOV R2, R9\n"
658 "ADD R0, R0, #4\n"
659 "BLX R12\n"
660 "B loc_FF8B2024\n"
661 "loc_FF8B1DBC:\n"
662 "CMP R1, #0x24\n"
663 "CMPNE R1, #0x25\n"
664 "BNE loc_FF8B1E08\n"
665 "LDR R1, [R0, #0x7C]\n"
666 "ADD R1, R1, R1, LSL #1\n"
667 "ADD R1, R0, R1, LSL #2\n"
668 "SUB R1, R1, #8\n"
669 "LDMIA R1, {R2,R3,R9}\n"
670 "STMIA R5, {R2,R3,R9}\n"
671 "BL sub_FF8AF00C\n"
672 "LDR R0, [SP, #0x28]\n"
673 "LDR R1, [R0, #0x7C]\n"
674 "LDR R3, [R0, #0x8C]\n"
675 "LDR R2, [R0, #0x90]\n"
676 "ADD R0, R0, #4\n"
677 "BLX R3\n"
678 "LDR R0, [SP, #0x28]\n"
679 "BL sub_FF8AF44C\n"
680 "B loc_FF8B2024\n"
681 "loc_FF8B1E08:\n"
682 "ADD R1, R0, #4\n"
683 "LDMIA R1, {R2,R3,R9}\n"
684 "STMIA R5, {R2,R3,R9}\n"
685 "LDR R1, [R0]\n"
686 "CMP R1, #0x28\n"
687 "ADDCC PC, PC, R1, LSL #2\n"
688 "B loc_FF8B200C\n"
689 "B loc_FF8B1EC4\n"
690 "B loc_FF8B1EC4\n"
691 "B loc_FF8B1ECC\n"
692 "B loc_FF8B1ED4\n"
693 "B loc_FF8B1ED4\n"
694 "B loc_FF8B1ED4\n"
695 "B loc_FF8B1EC4\n"
696 "B loc_FF8B1ECC\n"
697 "B loc_FF8B1ED4\n"
698 "B loc_FF8B1ED4\n"
699 "B loc_FF8B1EEC\n"
700 "B loc_FF8B1EEC\n"
701 "B loc_FF8B1FF8\n"
702 "B loc_FF8B2000\n"
703 "B loc_FF8B2000\n"
704 "B loc_FF8B2000\n"
705 "B loc_FF8B2000\n"
706 "B loc_FF8B2008\n"
707 "B loc_FF8B200C\n"
708 "B loc_FF8B200C\n"
709 "B loc_FF8B200C\n"
710 "B loc_FF8B200C\n"
711 "B loc_FF8B200C\n"
712 "B loc_FF8B200C\n"
713 "B loc_FF8B1EDC\n"
714 "B loc_FF8B1EE4\n"
715 "B loc_FF8B1EE4\n"
716 "B loc_FF8B1EE4\n"
717 "B loc_FF8B1EF8\n"
718 "B loc_FF8B1EF8\n"
719 "B loc_FF8B1F00\n"
720 "B loc_FF8B1F38\n"
721 "B loc_FF8B1F70\n"
722 "B loc_FF8B1FA8\n"
723 "B loc_FF8B1FE0\n"
724 "B loc_FF8B1FE0\n"
725 "B loc_FF8B200C\n"
726 "B loc_FF8B200C\n"
727 "B loc_FF8B1FE8\n"
728 "B loc_FF8B1FF0\n"
729 "loc_FF8B1EC4:\n"
730 "BL sub_FF8AD98C\n"
731 "B loc_FF8B200C\n"
732 "loc_FF8B1ECC:\n"
733 "BL sub_FF8ADC30\n"
734 "B loc_FF8B200C\n"
735 "loc_FF8B1ED4:\n"
736 "BL sub_FF8ADE58\n"
737 "B loc_FF8B200C\n"
738 "loc_FF8B1EDC:\n"
739 "BL sub_FF8AE17C\n"
740 "B loc_FF8B200C\n"
741 "loc_FF8B1EE4:\n"
742 "BL sub_FF8AE394\n"
743 "B loc_FF8B200C\n"
744 "loc_FF8B1EEC:\n"
745
746 "BL sub_FF8AE740_my\n"
747 "MOV R8, #0\n"
748 "B loc_FF8B200C\n"
749 "loc_FF8B1EF8:\n"
750 "BL sub_FF8AE880\n"
751 "B loc_FF8B200C\n"
752 "loc_FF8B1F00:\n"
753 "LDRH R1, [R0, #4]\n"
754 "STRH R1, [SP, #0x1C]\n"
755 "LDRH R1, [R4, #2]\n"
756 "STRH R1, [SP, #0x1E]\n"
757 "LDRH R1, [R4, #4]\n"
758 "STRH R1, [SP, #0x20]\n"
759 "LDRH R1, [R4, #6]\n"
760 "STRH R1, [SP, #0x22]\n"
761 "LDRH R1, [R0, #0xC]\n"
762 "STRH R1, [SP, #0x24]\n"
763 "LDRH R1, [R4, #0xA]\n"
764 "STRH R1, [SP, #0x26]\n"
765 "BL sub_FF8B2F44\n"
766 "B loc_FF8B200C\n"
767 "loc_FF8B1F38:\n"
768 "LDRH R1, [R0, #4]\n"
769 "STRH R1, [SP, #0x1C]\n"
770 "LDRH R1, [R4, #2]\n"
771 "STRH R1, [SP, #0x1E]\n"
772 "LDRH R1, [R4, #4]\n"
773 "STRH R1, [SP, #0x20]\n"
774 "LDRH R1, [R4, #6]\n"
775 "STRH R1, [SP, #0x22]\n"
776 "LDRH R1, [R4, #8]\n"
777 "STRH R1, [SP, #0x24]\n"
778 "LDRH R1, [R4, #0xA]\n"
779 "STRH R1, [SP, #0x26]\n"
780 "BL sub_FF8B30B4\n"
781 "B loc_FF8B200C\n"
782 "loc_FF8B1F70:\n"
783 "LDRH R1, [R4]\n"
784 "STRH R1, [SP, #0x1C]\n"
785 "LDRH R1, [R0, #6]\n"
786 "STRH R1, [SP, #0x1E]\n"
787 "LDRH R1, [R4, #4]\n"
788 "STRH R1, [SP, #0x20]\n"
789 "LDRH R1, [R4, #6]\n"
790 "STRH R1, [SP, #0x22]\n"
791 "LDRH R1, [R4, #8]\n"
792 "STRH R1, [SP, #0x24]\n"
793 "LDRH R1, [R4, #0xA]\n"
794 "STRH R1, [SP, #0x26]\n"
795 "BL sub_FF8B3168\n"
796 "B loc_FF8B200C\n"
797 "loc_FF8B1FA8:\n"
798 "LDRH R1, [R4]\n"
799 "STRH R1, [SP, #0x1C]\n"
800 "LDRH R1, [R4, #2]\n"
801 "STRH R1, [SP, #0x1E]\n"
802 "LDRH R1, [R4, #4]\n"
803 "STRH R1, [SP, #0x20]\n"
804 "LDRH R1, [R4, #6]\n"
805 "STRH R1, [SP, #0x22]\n"
806 "LDRH R1, [R0, #0xC]\n"
807 "STRH R1, [SP, #0x24]\n"
808 "LDRH R1, [R4, #0xA]\n"
809 "STRH R1, [SP, #0x26]\n"
810 "BL sub_FF8B3210\n"
811 "B loc_FF8B200C\n"
812 "loc_FF8B1FE0:\n"
813 "BL sub_FF8AEDC0\n"
814 "B loc_FF8B200C\n"
815 "loc_FF8B1FE8:\n"
816 "BL sub_FF8AF550\n"
817 "B loc_FF8B200C\n"
818 "loc_FF8B1FF0:\n"
819 "BL sub_FF8AF834\n"
820 "B loc_FF8B200C\n"
821 "loc_FF8B1FF8:\n"
822 "BL sub_FF8AFAF4\n"
823 "B loc_FF8B200C\n"
824 "loc_FF8B2000:\n"
825 "BL sub_FF8AFCB0\n"
826 "B loc_FF8B200C\n"
827 "loc_FF8B2008:\n"
828 "BL sub_FF8AFE18\n"
829 "loc_FF8B200C:\n"
830 "LDR R0, [SP, #0x28]\n"
831 "LDR R1, [R0, #0x7C]\n"
832 "LDR R2, [R0, #0x90]\n"
833 "LDR R3, [R0, #0x8C]\n"
834 "loc_FF8B201C:\n"
835 "ADD R0, R0, #4\n"
836 "BLX R3\n"
837 "loc_FF8B2024:\n"
838 "LDR R0, [SP, #0x28]\n"
839 "LDR R0, [R0]\n"
840 "CMP R0, #0x10\n"
841 "BEQ loc_FF8B205C\n"
842 "BGT loc_FF8B204C\n"
843 "CMP R0, #1\n"
844 "CMPNE R0, #4\n"
845 "CMPNE R0, #0xE\n"
846 "BNE loc_FF8B2090\n"
847 "B loc_FF8B205C\n"
848 "loc_FF8B204C:\n"
849 "CMP R0, #0x13\n"
850 "CMPNE R0, #0x17\n"
851 "CMPNE R0, #0x1A\n"
852 "BNE loc_FF8B2090\n"
853 "loc_FF8B205C:\n"
854 "LDRSH R0, [R4]\n"
855 "CMN R0, #0xC00\n"
856 "LDRNESH R1, [R4, #8]\n"
857 "CMNNE R1, #0xC00\n"
858 "STRNEH R0, [SP, #0x1C]\n"
859 "STRNEH R1, [SP, #0x24]\n"
860 "BNE loc_FF8B2090\n"
861 "ADD R0, SP, #0x10\n"
862 "BL sub_FF8B34C0\n"
863 "LDRH R0, [SP, #0x10]\n"
864 "STRH R0, [SP, #0x1C]\n"
865 "LDRH R0, [SP, #0x18]\n"
866 "STRH R0, [SP, #0x24]\n"
867 "loc_FF8B2090:\n"
868 "LDR R0, [SP, #0x28]\n"
869 "CMP R8, #1\n"
870 "BNE loc_FF8B20E0\n"
871 "LDR R1, [R0, #0x7C]\n"
872 "MOV R2, #0xC\n"
873 "ADD R1, R1, R1, LSL #1\n"
874 "ADD R0, R0, R1, LSL #2\n"
875 "SUB R8, R0, #8\n"
876 "LDR R0, =0x5467C\n"
877 "ADD R1, SP, #0x1C\n"
878 "BL sub_003FC17C\n"
879 "LDR R0, =0x54688\n"
880 "MOV R2, #0xC\n"
881 "ADD R1, SP, #0x1C\n"
882 "BL sub_003FC17C\n"
883 "LDR R0, =0x54694\n"
884 "MOV R2, #0xC\n"
885 "MOV R1, R8\n"
886 "BL sub_003FC17C\n"
887 "B loc_FF8B2158\n"
888 "loc_FF8B20E0:\n"
889 "LDR R0, [R0]\n"
890 "MOV R3, #1\n"
891 "CMP R0, #0xB\n"
892 "BNE loc_FF8B2124\n"
893 "MOV R2, #0\n"
894 "STRD R2, [SP]\n"
895 "MOV R2, R3\n"
896 "MOV R1, R3\n"
897 "MOV R0, #0\n"
898 "BL sub_FF8AD76C\n"
899 "MOV R3, #1\n"
900 "MOV R2, #0\n"
901 "STRD R2, [SP]\n"
902 "MOV R2, R3\n"
903 "MOV R1, R3\n"
904 "MOV R0, #0\n"
905 "B loc_FF8B2154\n"
906 "loc_FF8B2124:\n"
907 "MOV R2, #1\n"
908 "STRD R2, [SP]\n"
909 "MOV R3, R2\n"
910 "MOV R1, R2\n"
911 "MOV R0, R2\n"
912 "BL sub_FF8AD76C\n"
913 "MOV R3, #1\n"
914 "MOV R2, R3\n"
915 "MOV R1, R3\n"
916 "MOV R0, R3\n"
917 "STR R3, [SP]\n"
918 "STR R3, [SP, #4]\n"
919 "loc_FF8B2154:\n"
920 "BL sub_FF8AD8D8\n"
921 "loc_FF8B2158:\n"
922 "LDR R0, [SP, #0x28]\n"
923 "BL sub_FF8B2EB0\n"
924 "B loc_FF8B1AF0\n"
925 );
926 }
927
928
929
930 void __attribute__((naked,noinline)) sub_FF8AE740_my() {
931 asm volatile (
932 "STMFD SP!, {R4-R8,LR}\n"
933 "LDR R7, =0x3E3C\n"
934 "MOV R4, R0\n"
935 "LDR R0, [R7, #0x1C]\n"
936 "MOV R1, #0x3E\n"
937 "BL sub_003FACA0\n"
938 "MOV R2, #0\n"
939 "LDRSH R0, [R4, #4]\n"
940 "MOV R1, R2\n"
941 "BL sub_FF8AD474\n"
942 "MOV R6, R0\n"
943 "LDRSH R0, [R4, #6]\n"
944 "BL sub_FF8AD5C4\n"
945 "LDRSH R0, [R4, #8]\n"
946 "BL sub_FF8AD61C\n"
947 "LDRSH R0, [R4, #0xA]\n"
948 "BL sub_FF8AD674\n"
949 "LDRSH R0, [R4, #0xC]\n"
950 "MOV R1, #0\n"
951 "BL sub_FF8AD6CC\n"
952 "MOV R5, R0\n"
953 "LDR R0, [R4]\n"
954 "LDR R8, =0x54694\n"
955 "CMP R0, #0xB\n"
956 "MOVEQ R6, #0\n"
957 "MOVEQ R5, R6\n"
958 "BEQ loc_FF8AE7D4\n"
959 "CMP R6, #1\n"
960 "BNE loc_FF8AE7D4\n"
961 "LDRSH R0, [R4, #4]\n"
962 "LDR R1, =0xFF8AD3D4\n"
963 "MOV R2, #2\n"
964 "BL sub_FF959B5C\n"
965 "STRH R0, [R4, #4]\n"
966 "MOV R0, #0\n"
967 "STR R0, [R7, #0x28]\n"
968 "B loc_FF8AE7DC\n"
969 "loc_FF8AE7D4:\n"
970 "LDRH R0, [R8]\n"
971 "STRH R0, [R4, #4]\n"
972 "loc_FF8AE7DC:\n"
973 "CMP R5, #1\n"
974 "LDRNEH R0, [R8, #8]\n"
975 "BNE loc_FF8AE7F8\n"
976 "LDRSH R0, [R4, #0xC]\n"
977 "LDR R1, =0xFF8AD458\n"
978 "MOV R2, #0x20\n"
979 "BL sub_FF8B2F00\n"
980 "loc_FF8AE7F8:\n"
981 "STRH R0, [R4, #0xC]\n"
982 "LDRSH R0, [R4, #6]\n"
983
984 "BL sub_FF89E38C_my\n"
985 "B sub_FF8AE804 \n"
986 );
987 }
988
989
990
991 void __attribute__((naked,noinline)) sub_FF89E38C_my() {
992 asm volatile (
993 "STMFD SP!, {R4-R6,LR}\n"
994 "LDR R5, =0x3AC8\n"
995 "MOV R4, R0\n"
996 "LDR R0, [R5, #4]\n"
997 "CMP R0, #1\n"
998 "LDRNE R1, =0x14D\n"
999 "LDRNE R0, =0xFF89E1C4\n"
1000 "BLNE _DebugAssert \n"
1001 "CMN R4, #0xC00\n"
1002 "LDREQSH R4, [R5, #2]\n"
1003 "CMN R4, #0xC00\n"
1004 "LDREQ R1, =0x153\n"
1005 "LDREQ R0, =0xFF89E1C4\n"
1006 "STRH R4, [R5, #2]\n"
1007 "BLEQ _DebugAssert \n"
1008 "MOV R0, R4\n"
1009
1010 "BL apex2us \n"
1011 "MOV R4, R0\n"
1012 "BL sub_FF8EC4E4\n"
1013 "MOV R0, R4\n"
1014 "BL sub_FF8F4CEC\n"
1015 "TST R0, #1\n"
1016 "LDMEQFD SP!, {R4-R6,PC}\n"
1017 "LDMFD SP!, {R4-R6,LR}\n"
1018 "MOV R1, #0x158\n"
1019 "LDR R0, =0xFF89E1C4\n"
1020 "B _DebugAssert \n"
1021 );
1022 }