This source file includes following definitions.
- sub_FF93D820_my
- sub_FF85E634_my
- capt_seq_task
- exp_drv_task
- sub_FF8B44F8_my
- sub_FF895B48_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4
5
6 static long *nrflag = (long*)0x91AC;
7
8 #include "../../../generic/capt_seq.c"
9
10 void __attribute__((naked,noinline)) sub_FF93D820_my(){
11 asm volatile(
12 "STMFD SP!, {R0-R10,LR}\n"
13 "MOV R6, #0\n"
14 "MOV R4, R0\n"
15 "BL sub_FF93E38C\n"
16 "MVN R1, #0\n"
17 "BL sub_FF827B50\n"
18 "MOV R2, #4\n"
19 "ADD R1, SP, #0x30-0x28\n"
20 "MOV R0, #0x8A\n"
21 "BL sub_FF86D25C\n"
22 "TST R0, #1\n"
23 "MOVNE R1, #0x218\n"
24 "LDRNE R0, =0xFF86D14C\n"
25 "BLNE _DebugAssert\n"
26 "LDR R8, =0x19F40\n"
27 "LDR R5, =0x19E8C\n"
28 "LDRSH R1, [R8,#0xE]\n"
29 "LDR R0, [R5,#0x7C]\n"
30 "BL sub_FF8F3DC8\n"
31 "BL sub_FF845570\n"
32 "LDR R2, =0x91B0\n"
33 "ADD R3, R4, #0x8C\n"
34 "STRH R0, [R4,#0x88]\n"
35 "STRD R2, [SP,#0x30-0x30]\n"
36 "MOV R1, R0\n"
37 "LDRH R0, [R5,#0x54]\n"
38 "LDRSH R2, [R8,#0xC]\n"
39 "LDR R3, =0x91AC\n"
40 "BL sub_FF93E880\n"
41 "BL wait_until_remote_button_is_released\n"
42 "BL capt_seq_hook_set_nr\n"
43 "BL sub_FF93D894\n"
44 );
45 }
46
47 void __attribute__((naked,noinline)) sub_FF85E634_my()
48 {
49 asm volatile (
50 "STMFD SP!, {R4-R6,LR}\n"
51 "LDR R4, [R0,#0xC]\n"
52 "LDR R6, =0x19E8C\n"
53 "LDR R0, [R4,#8]\n"
54 "MOV R5, #0\n"
55 "ORR R0, R0, #1\n"
56 "STR R0, [R4,#8]\n"
57 "LDR R0, [R6,#0x24]\n"
58 "CMP R0, #0\n"
59 "MOVEQ R0, #2\n"
60 "BLEQ sub_FF858610\n"
61 "BL sub_FF93C144\n"
62 "LDR R0, [R6,#0x24]\n"
63 "CMP R0, #0\n"
64 "BNE loc_FF85E6B4\n"
65 "MOV R0, R4\n"
66 "BL sub_FF93C5D8\n"
67 "TST R0, #1\n"
68 "MOVNE R2, R4\n"
69 "LDMNEFD SP!, {R4-R6,LR}\n"
70 "MOVNE R1, #1\n"
71 "BNE sub_FF85C98C\n"
72 "BL sub_FF95DAFC\n"
73 "BL sub_FF86D3EC\n"
74 "STR R0, [R4,#0x14]\n"
75 "MOV R0, R4\n"
76 "BL sub_FF93D738\n"
77 "BL sub_FF93E214\n"
78 "MOV R0, R4\n"
79
80 "BL sub_FF93D820_my\n"
81 "BL capt_seq_hook_raw_here\n"
82 "MOV R5, R0\n"
83 "B loc_FF85E6C4\n"
84
85
86 "loc_FF85E6B4:\n"
87 "LDR R0, =0x54E0\n"
88 "LDR R0, [R0,#4]\n"
89 "CMP R0, #0\n"
90 "MOVNE R5, #0x1D\n"
91
92 "loc_FF85E6C4:\n"
93 "BL sub_FF93F268\n"
94 "BL sub_FF93F2A4\n"
95 "MOV R2, R4\n"
96 "MOV R1, #1\n"
97 "MOV R0, R5\n"
98 "BL sub_FF85C98C\n"
99 "BL sub_FF93DC28\n"
100 "CMP R0, #0\n"
101 "LDRNE R0, [R4,#8]\n"
102 "ORRNE R0, R0, #0x2000\n"
103 "STRNE R0, [R4,#8]\n"
104 "LDMFD SP!, {R4-R6,PC}\n"
105 );
106 }
107
108
109 void __attribute__((naked,noinline)) capt_seq_task()
110 {
111 asm volatile (
112 "STMFD SP!, {R3-R9,LR}\n"
113 "LDR R6, =0x19E8C\n"
114 "LDR R5, =0x54E0\n"
115 "MOV R9, #1\n"
116 "MOV R7, #0\n"
117
118 "loc_FF85E2C4:\n"
119 "LDR R0, [R5,#0xC]\n"
120 "MOV R2, #0\n"
121 "MOV R1, SP\n"
122 "BL sub_FF827DA0\n"
123 "TST R0, #1\n"
124 "BEQ loc_FF85E2F0\n"
125 "LDR R1, =0x48E\n"
126 "LDR R0, =0xFF85DF88\n"
127 "BL _DebugAssert\n"
128 "BL sub_FF81BAA8\n"
129 "LDMFD SP!, {R3-R9,PC}\n"
130
131
132 "loc_FF85E2F0:\n"
133 "LDR R0, [SP,#0x20-0x20]\n"
134 "LDR R1, [R0]\n"
135 "CMP R1, #0x1B\n"
136 "ADDLS PC, PC, R1,LSL#2\n"
137 "B loc_FF85E510\n"
138
139
140 "loc_FF85E304:\n"
141 "B loc_FF85E374\n"
142
143
144 "loc_FF85E308:\n"
145 "B loc_FF85E3DC\n"
146
147
148 "loc_FF85E30C:\n"
149 "B loc_FF85E3E4\n"
150
151
152 "loc_FF85E310:\n"
153 "B loc_FF85E3FC\n"
154
155
156 "loc_FF85E314:\n"
157 "B loc_FF85E3F0\n"
158
159
160 "loc_FF85E318:\n"
161 "B loc_FF85E404\n"
162
163
164 "loc_FF85E31C:\n"
165 "B loc_FF85E40C\n"
166
167
168 "loc_FF85E320:\n"
169 "B loc_FF85E414\n"
170
171
172 "loc_FF85E324:\n"
173 "B loc_FF85E46C\n"
174
175
176 "loc_FF85E328:\n"
177 "B loc_FF85E478\n"
178
179
180 "loc_FF85E32C:\n"
181 "B loc_FF85E480\n"
182
183
184 "loc_FF85E330:\n"
185 "B loc_FF85E488\n"
186
187
188 "loc_FF85E334:\n"
189 "B loc_FF85E490\n"
190
191
192 "loc_FF85E338:\n"
193 "B loc_FF85E498\n"
194
195
196 "loc_FF85E33C:\n"
197 "B loc_FF85E4A0\n"
198
199
200 "loc_FF85E340:\n"
201 "B loc_FF85E4A8\n"
202
203
204 "loc_FF85E344:\n"
205 "B loc_FF85E4B0\n"
206
207
208 "loc_FF85E348:\n"
209 "B loc_FF85E4BC\n"
210
211
212 "loc_FF85E34C:\n"
213 "B loc_FF85E4C4\n"
214
215
216 "loc_FF85E350:\n"
217 "B loc_FF85E4CC\n"
218
219
220 "loc_FF85E354:\n"
221 "B loc_FF85E4D4\n"
222
223
224 "loc_FF85E358:\n"
225 "B loc_FF85E4E0\n"
226
227
228 "loc_FF85E35C:\n"
229 "B loc_FF85E4E8\n"
230
231
232 "loc_FF85E360:\n"
233 "B loc_FF85E4F0\n"
234
235
236 "loc_FF85E364:\n"
237 "B loc_FF85E4F8\n"
238
239
240 "loc_FF85E368:\n"
241 "B loc_FF85E500\n"
242
243
244 "loc_FF85E36C:\n"
245 "B loc_FF85E508\n"
246
247
248 "loc_FF85E370:\n"
249 "B loc_FF85E51C\n"
250
251
252 "loc_FF85E374:\n"
253 "BL sub_FF93C168\n"
254
255 "BL captseq_hack_override_active\n"
256 "STR R0,[SP,#-4]!\n"
257 "BL shooting_expo_param_override\n"
258 "BL sub_FF85C438\n"
259 "LDR R0,[SP],#4\n"
260 "CMP R0, #1\n"
261 "MOVEQ R0, #0\n"
262 "STREQ R0, [R6,#0x24]\n"
263 "LDRNE R0, [R6,#0x24]\n"
264 "CMPNE R0, #0\n"
265
266
267 "BEQ loc_FF85E51C\n"
268 "BL sub_FF85DC58\n"
269 "MOV R4, R0\n"
270 "LDR R0, [R6,#0x24]\n"
271 "CMP R0, #0\n"
272 "BEQ loc_FF85E3BC\n"
273 "MOV R0, #0xC\n"
274 "BL sub_FF861300\n"
275 "TST R0, #1\n"
276 "STRNE R9, [R5,#4]\n"
277 "LDRNE R0, [R4,#8]\n"
278 "ORRNE R0, R0, #0x40000000\n"
279 "STRNE R0, [R4,#8]\n"
280 "BNE loc_FF85E51C\n"
281
282 "loc_FF85E3BC:\n"
283 "BL sub_FF95DAFC\n"
284 "BL sub_FF86D3EC\n"
285 "STR R0, [R4,#0x14]\n"
286 "MOV R0, R4\n"
287 "BL sub_FF93D820_my\n"
288 "BL capt_seq_hook_raw_here\n"
289 "TST R0, #1\n"
290 "STRNE R9, [R5,#4]\n"
291 "B loc_FF85E51C\n"
292
293
294 "loc_FF85E3DC:\n"
295
296
297 "BL sub_FF85E634_my\n"
298 "B loc_FF85E3F4\n"
299
300
301 "loc_FF85E3E4:\n"
302
303
304 "MOV R0, #1\n"
305 "BL sub_FF93C310\n"
306 "B loc_FF85E51C\n"
307
308
309 "loc_FF85E3F0:\n"
310
311
312 "BL sub_FF93BE00\n"
313
314 "loc_FF85E3F4:\n"
315
316 "STR R7, [R6,#0x24]\n"
317 "B loc_FF85E51C\n"
318
319
320 "loc_FF85E3FC:\n"
321
322
323 "BL sub_FF93C134\n"
324 "B loc_FF85E3F4\n"
325
326
327 "loc_FF85E404:\n"
328
329
330 "BL sub_FF93C13C\n"
331 "B loc_FF85E51C\n"
332
333
334 "loc_FF85E40C:\n"
335
336
337 "BL sub_FF93C230\n"
338 "B loc_FF85E470\n"
339
340
341 "loc_FF85E414:\n"
342
343
344 "LDR R4, [R0,#0xC]\n"
345 "BL sub_FF93C144\n"
346 "MOV R0, R4\n"
347 "BL sub_FF93C958\n"
348 "TST R0, #1\n"
349 "MOV R8, R0\n"
350 "BNE loc_FF85E454\n"
351 "BL sub_FF86D3EC\n"
352 "STR R0, [R4,#0x14]\n"
353 "MOV R0, R4\n"
354 "BL sub_FF93D738\n"
355 "MOV R0, R4\n"
356 "BL sub_FF93DC88\n"
357 "MOV R8, R0\n"
358 "LDR R0, [R4,#0x14]\n"
359 "BL sub_FF86D5F8\n"
360
361 "loc_FF85E454:\n"
362 "BL sub_FF93C134\n"
363 "MOV R2, R4\n"
364 "MOV R1, #9\n"
365 "MOV R0, R8\n"
366 "BL sub_FF85C98C\n"
367 "B loc_FF85E51C\n"
368
369
370 "loc_FF85E46C:\n"
371
372
373 "BL sub_FF93C290\n"
374
375 "loc_FF85E470:\n"
376 "BL sub_FF85C438\n"
377 "B loc_FF85E51C\n"
378
379
380 "loc_FF85E478:\n"
381
382
383 "BL sub_FF93C134\n"
384 "B loc_FF85E51C\n"
385
386
387 "loc_FF85E480:\n"
388
389
390 "BL sub_FF93CBC4\n"
391 "B loc_FF85E51C\n"
392
393
394 "loc_FF85E488:\n"
395
396
397 "BL sub_FF93CDAC\n"
398 "B loc_FF85E51C\n"
399
400
401 "loc_FF85E490:\n"
402
403
404 "BL sub_FF93CE3C\n"
405 "B loc_FF85E51C\n"
406
407
408 "loc_FF85E498:\n"
409
410
411 "BL sub_FF93CEF0\n"
412 "B loc_FF85E51C\n"
413
414
415 "loc_FF85E4A0:\n"
416
417
418 "BL sub_FF93D0E8\n"
419 "B loc_FF85E51C\n"
420
421
422 "loc_FF85E4A8:\n"
423
424
425 "BL sub_FF93D138\n"
426 "B loc_FF85E51C\n"
427
428
429 "loc_FF85E4B0:\n"
430
431
432 "MOV R0, #0\n"
433 "BL sub_FF93D1BC\n"
434 "B loc_FF85E51C\n"
435
436
437 "loc_FF85E4BC:\n"
438
439
440 "BL sub_FF93D30C\n"
441 "B loc_FF85E51C\n"
442
443
444 "loc_FF85E4C4:\n"
445
446
447 "BL sub_FF93D3A0\n"
448 "B loc_FF85E51C\n"
449
450
451 "loc_FF85E4CC:\n"
452
453
454 "BL sub_FF93D468\n"
455 "B loc_FF85E51C\n"
456
457
458 "loc_FF85E4D4:\n"
459
460
461 "BL sub_FF93C434\n"
462 "BL sub_FF824C48\n"
463 "B loc_FF85E51C\n"
464
465
466 "loc_FF85E4E0:\n"
467
468
469 "BL sub_FF93CFAC\n"
470 "B loc_FF85E51C\n"
471
472
473 "loc_FF85E4E8:\n"
474
475
476 "BL sub_FF93D018\n"
477 "B loc_FF85E51C\n"
478
479
480 "loc_FF85E4F0:\n"
481
482
483 "BL sub_FF93F24C\n"
484 "B loc_FF85E51C\n"
485
486
487 "loc_FF85E4F8:\n"
488
489
490 "BL sub_FF93F268\n"
491 "B loc_FF85E51C\n"
492
493
494 "loc_FF85E500:\n"
495
496
497 "BL sub_FF93F278\n"
498 "B loc_FF85E51C\n"
499
500
501 "loc_FF85E508:\n"
502
503
504 "BL sub_FF93F2A4\n"
505 "B loc_FF85E51C\n"
506
507
508 "loc_FF85E510:\n"
509
510
511 "LDR R1, =0x58E\n"
512 "LDR R0, =0xFF85DF88\n"
513 "BL _DebugAssert\n"
514
515 "loc_FF85E51C:\n"
516
517
518 "LDR R0, [SP,#0x20-0x20]\n"
519 "LDR R1, [R0,#4]\n"
520 "LDR R0, [R5,#8]\n"
521 "BL sub_FF827B1C\n"
522 "LDR R4, [SP,#0x20-0x20]\n"
523 "LDR R0, [R4,#8]\n"
524 "CMP R0, #0\n"
525 "LDREQ R1, =0x10D\n"
526 "LDREQ R0, =0xFF85DF88\n"
527 "BLEQ _DebugAssert\n"
528 "STR R7, [R4,#8]\n"
529 "B loc_FF85E2C4\n"
530 );
531 }
532
533
534
535 void __attribute__((naked,noinline)) exp_drv_task()
536 {
537 asm volatile (
538 "STMFD SP!, {R4-R8,LR}\n"
539 "SUB SP, SP, #0x20\n"
540 "LDR R8, =0xBB8\n"
541 "LDR R7, =0x6E30\n"
542 "LDR R5, =0x3E12C\n"
543 "MOV R0, #0\n"
544 "ADD R6, SP, #0x38-0x28\n"
545 "STR R0, [SP,#0x38-0x2C]\n"
546
547 "loc_FF8B6AA0:\n"
548 "LDR R0, [R7,#0x20]\n"
549 "MOV R2, #0\n"
550 "ADD R1, SP, #0x38-0x1C\n"
551 "BL sub_FF827DA0\n"
552 "LDR R0, [SP,#0x38-0x2C]\n"
553 "CMP R0, #1\n"
554 "BNE loc_FF8B6AE8\n"
555 "LDR R0, [SP,#0x38-0x1C]\n"
556 "LDR R0, [R0]\n"
557 "CMP R0, #0x13\n"
558 "CMPNE R0, #0x14\n"
559 "CMPNE R0, #0x15\n"
560 "BEQ loc_FF8B6C04\n"
561 "CMP R0, #0x27\n"
562 "BEQ loc_FF8B6BDC\n"
563 "ADD R1, SP, #0x38-0x2C\n"
564 "MOV R0, #0\n"
565 "BL sub_FF8B6A30\n"
566
567 "loc_FF8B6AE8:\n"
568 "LDR R0, [SP,#0x38-0x1C]\n"
569 "LDR R1, [R0]\n"
570 "CMP R1, #0x2C\n"
571 "BNE loc_FF8B6B18\n"
572 "LDR R0, [SP,#0x38-0x1C]\n"
573 "BL sub_FF8B7CEC\n"
574 "LDR R0, [R7,#0x1C]\n"
575 "MOV R1, #1\n"
576 "BL sub_FF827B1C\n"
577 "BL sub_FF81BAA8\n"
578 "ADD SP, SP, #0x20\n"
579 "LDMFD SP!, {R4-R8,PC}\n"
580
581 "loc_FF8B6B18:\n"
582 "CMP R1, #0x2B\n"
583 "BNE loc_FF8B6B34\n"
584 "LDR R2, [R0,#0x88]!\n"
585 "LDR R1, [R0,#4]\n"
586 "MOV R0, R1\n"
587 "BLX R2\n"
588 "B loc_FF8B706C\n"
589
590 "loc_FF8B6B34:\n"
591 "CMP R1, #0x25\n"
592 "BNE loc_FF8B6B84\n"
593 "LDR R0, [R7,#0x1C]\n"
594 "MOV R1, #0x80\n"
595 "BL sub_FF827B50\n"
596 "LDR R0, =0xFF8B34B8\n"
597 "MOV R1, #0x80\n"
598 "BL sub_FF92FACC\n"
599 "LDR R0, [R7,#0x1C]\n"
600 "MOV R2, R8\n"
601 "MOV R1, #0x80\n"
602 "BL sub_FF827A54\n"
603 "TST R0, #1\n"
604 "LDRNE R1, =0xD1B\n"
605 "BNE loc_FF8B6BC8\n"
606
607 "loc_FF8B6B70:\n"
608 "LDR R1, [SP,#0x38-0x1C]\n"
609 "LDR R0, [R1,#0x8C]\n"
610 "LDR R1, [R1,#0x88]\n"
611 "BLX R1\n"
612 "B loc_FF8B706C\n"
613
614 "loc_FF8B6B84:\n"
615 "CMP R1, #0x26\n"
616 "BNE loc_FF8B6BD4\n"
617 "ADD R1, SP, #0x38-0x2C\n"
618 "BL sub_FF8B6A30\n"
619 "LDR R0, [R7,#0x1C]\n"
620 "MOV R1, #0x100\n"
621 "BL sub_FF827B50\n"
622 "LDR R0, =0xFF8B34C8\n"
623 "MOV R1, #0x100\n"
624 "BL sub_FF92FD54\n"
625 "LDR R0, [R7,#0x1C]\n"
626 "MOV R2, R8\n"
627 "MOV R1, #0x100\n"
628 "BL sub_FF827A54\n"
629 "TST R0, #1\n"
630 "BEQ loc_FF8B6B70\n"
631 "LDR R1, =0xD25\n"
632
633 "loc_FF8B6BC8:\n"
634 "LDR R0, =0xFF8B3BB8\n"
635 "BL _DebugAssert\n"
636 "B loc_FF8B6B70\n"
637
638 "loc_FF8B6BD4:\n"
639 "CMP R1, #0x27\n"
640 "BNE loc_FF8B6BEC\n"
641
642 "loc_FF8B6BDC:\n"
643 "LDR R0, [SP,#0x38-0x1C]\n"
644 "ADD R1, SP, #0x38-0x2C\n"
645 "BL sub_FF8B6A30\n"
646 "B loc_FF8B6B70\n"
647
648 "loc_FF8B6BEC:\n"
649 "CMP R1, #0x2A\n"
650 "BNE loc_FF8B6C04\n"
651 "BL sub_FF895DFC\n"
652 "BL sub_FF896BC8\n"
653 "BL sub_FF89664C\n"
654 "B loc_FF8B6B70\n"
655
656 "loc_FF8B6C04:\n"
657 "LDR R0, [SP,#0x38-0x1C]\n"
658 "MOV R4, #1\n"
659 "LDR R1, [R0]\n"
660 "CMP R1, #0x11\n"
661 "CMPNE R1, #0x12\n"
662 "BNE loc_FF8B6C74\n"
663 "LDR R1, [R0,#0x7C]\n"
664 "ADD R1, R1, R1,LSL#1\n"
665 "ADD R1, R0, R1,LSL#2\n"
666 "SUB R1, R1, #8\n"
667 "LDMIA R1, {R2-R4}\n"
668 "STMIA R6, {R2-R4}\n"
669 "BL sub_FF8B5544\n"
670 "LDR R0, [SP,#0x38-0x1C]\n"
671 "LDR R1, [R0,#0x7C]\n"
672 "LDR R3, [R0,#0x88]\n"
673 "LDR R2, [R0,#0x8C]\n"
674 "ADD R0, R0, #4\n"
675 "BLX R3\n"
676 "LDR R0, [SP,#0x38-0x1C]\n"
677 "BL sub_FF8B80C0\n"
678 "LDR R0, [SP,#0x38-0x1C]\n"
679 "LDR R1, [R0,#0x7C]\n"
680 "LDR R3, [R0,#0x90]\n"
681 "LDR R2, [R0,#0x94]\n"
682 "ADD R0, R0, #4\n"
683 "BLX R3\n"
684 "B loc_FF8B6FAC\n"
685
686 "loc_FF8B6C74:\n"
687 "CMP R1, #0x13\n"
688 "CMPNE R1, #0x14\n"
689 "CMPNE R1, #0x15\n"
690 "BNE loc_FF8B6D28\n"
691 "ADD R3, SP, #0x38-0x2C\n"
692 "MOV R2, SP\n"
693 "ADD R1, SP, #0x38-0x28\n"
694 "BL sub_FF8B578C\n"
695 "CMP R0, #1\n"
696 "MOV R4, R0\n"
697 "CMPNE R4, #5\n"
698 "BNE loc_FF8B6CC4\n"
699 "LDR R0, [SP,#0x38-0x1C]\n"
700 "MOV R2, R4\n"
701 "LDR R1, [R0,#0x7C]!\n"
702 "LDR R12, [R0,#0xC]!\n"
703 "LDR R3, [R0,#4]\n"
704 "MOV R0, SP\n"
705 "BLX R12\n"
706 "B loc_FF8B6CFC\n"
707
708 "loc_FF8B6CC4:\n"
709 "LDR R0, [SP,#0x38-0x1C]\n"
710 "CMP R4, #2\n"
711 "LDR R3, [R0,#0x8C]\n"
712 "CMPNE R4, #6\n"
713 "BNE loc_FF8B6D10\n"
714 "LDR R12, [R0,#0x88]\n"
715 "MOV R0, SP\n"
716 "MOV R2, R4\n"
717 "MOV R1, #1\n"
718 "BLX R12\n"
719 "LDR R0, [SP,#0x38-0x1C]\n"
720 "MOV R2, SP\n"
721 "ADD R1, SP, #0x38-0x28\n"
722 "BL sub_FF8B6744\n"
723
724 "loc_FF8B6CFC:\n"
725 "LDR R0, [SP,#0x38-0x1C]\n"
726 "LDR R2, [SP,#0x38-0x2C]\n"
727 "MOV R1, R4\n"
728 "BL sub_FF8B69D0\n"
729 "B loc_FF8B6FAC\n"
730
731 "loc_FF8B6D10:\n"
732 "LDR R1, [R0,#0x7C]\n"
733 "LDR R12, [R0,#0x88]\n"
734 "ADD R0, R0, #4\n"
735 "MOV R2, R4\n"
736 "BLX R12\n"
737 "B loc_FF8B6FAC\n"
738
739 "loc_FF8B6D28:\n"
740 "CMP R1, #0x21\n"
741 "CMPNE R1, #0x22\n"
742 "BNE loc_FF8B6D74\n"
743 "LDR R1, [R0,#0x7C]\n"
744 "ADD R1, R1, R1,LSL#1\n"
745 "ADD R1, R0, R1,LSL#2\n"
746 "SUB R1, R1, #8\n"
747 "LDMIA R1, {R2-R4}\n"
748 "STMIA R6, {R2-R4}\n"
749 "BL sub_FF8B4AD0\n"
750 "LDR R0, [SP,#0x38-0x1C]\n"
751 "LDR R1, [R0,#0x7C]\n"
752 "LDR R3, [R0,#0x88]\n"
753 "LDR R2, [R0,#0x8C]\n"
754 "ADD R0, R0, #4\n"
755 "BLX R3\n"
756 "LDR R0, [SP,#0x38-0x1C]\n"
757 "BL sub_FF8B4DC0\n"
758 "B loc_FF8B6FAC\n"
759
760 "loc_FF8B6D74:\n"
761 "ADD R1, R0, #4\n"
762 "LDMIA R1, {R2,R3,R12}\n"
763 "STMIA R6, {R2,R3,R12}\n"
764 "LDR R1, [R0]\n"
765 "CMP R1, #0x24\n"
766 "ADDLS PC, PC, R1,LSL#2\n"
767 "B loc_FF8B6F8C\n"
768
769 "loc_FF8B6D90:\n"
770 "B loc_FF8B6E24\n"
771
772 "loc_FF8B6D94:\n"
773 "B loc_FF8B6E24\n"
774
775 "loc_FF8B6D98:\n"
776 "B loc_FF8B6E74\n"
777
778 "loc_FF8B6D9C:\n"
779 "B loc_FF8B6E7C\n"
780
781 "loc_FF8B6DA0:\n"
782 "B loc_FF8B6E7C\n"
783
784 "loc_FF8B6DA4:\n"
785 "B loc_FF8B6E7C\n"
786
787 "loc_FF8B6DA8:\n"
788 "B loc_FF8B6E24\n"
789
790 "loc_FF8B6DAC:\n"
791 "B loc_FF8B6E74\n"
792
793 "loc_FF8B6DB0:\n"
794 "B loc_FF8B6E7C\n"
795
796 "loc_FF8B6DB4:\n"
797 "B loc_FF8B6E7C\n"
798
799 "loc_FF8B6DB8:\n"
800 "B loc_FF8B6E94\n"
801
802 "loc_FF8B6DBC:\n"
803 "B loc_FF8B6E94\n"
804
805 "loc_FF8B6DC0:\n"
806 "B loc_FF8B6F80\n"
807
808 "loc_FF8B6DC4:\n"
809 "B loc_FF8B6F88\n"
810
811 "loc_FF8B6DC8:\n"
812 "B loc_FF8B6F88\n"
813
814 "loc_FF8B6DCC:\n"
815 "B loc_FF8B6F88\n"
816
817 "loc_FF8B6DD0:\n"
818 "B loc_FF8B6F88\n"
819
820 "loc_FF8B6DD4:\n"
821 "B loc_FF8B6F8C\n"
822
823 "loc_FF8B6DD8:\n"
824 "B loc_FF8B6F8C\n"
825
826 "loc_FF8B6DDC:\n"
827 "B loc_FF8B6F8C\n"
828
829 "loc_FF8B6DE0:\n"
830 "B loc_FF8B6F8C\n"
831
832 "loc_FF8B6DE4:\n"
833 "B loc_FF8B6F8C\n"
834
835 "loc_FF8B6DE8:\n"
836 "B loc_FF8B6E84\n"
837
838 "loc_FF8B6DEC:\n"
839 "B loc_FF8B6E8C\n"
840
841 "loc_FF8B6DF0:\n"
842 "B loc_FF8B6E8C\n"
843
844 "loc_FF8B6DF4:\n"
845 "B loc_FF8B6EA0\n"
846
847 "loc_FF8B6DF8:\n"
848 "B loc_FF8B6EA0\n"
849
850 "loc_FF8B6DFC:\n"
851 "B loc_FF8B6EA8\n"
852
853 "loc_FF8B6E00:\n"
854 "B loc_FF8B6ED8\n"
855
856 "loc_FF8B6E04:\n"
857 "B loc_FF8B6F08\n"
858
859 "loc_FF8B6E08:\n"
860 "B loc_FF8B6F38\n"
861
862 "loc_FF8B6E0C:\n"
863 "B loc_FF8B6F68\n"
864
865 "loc_FF8B6E10:\n"
866 "B loc_FF8B6F68\n"
867
868 "loc_FF8B6E14:\n"
869 "B loc_FF8B6F8C\n"
870
871 "loc_FF8B6E18:\n"
872 "B loc_FF8B6F8C\n"
873
874 "loc_FF8B6E1C:\n"
875 "B loc_FF8B6F70\n"
876
877 "loc_FF8B6E20:\n"
878 "B loc_FF8B6F78\n"
879
880 "loc_FF8B6E24:\n"
881
882 "BL sub_FF8B39A0\n"
883 "B loc_FF8B6F8C\n"
884
885 "loc_FF8B6E74:\n"
886
887 "BL sub_FF8B3C30\n"
888 "B loc_FF8B6F8C\n"
889
890 "loc_FF8B6E7C:\n"
891
892 "BL sub_FF8B3E34\n"
893 "B loc_FF8B6F8C\n"
894
895 "loc_FF8B6E84:\n"
896
897 "BL sub_FF8B409C\n"
898 "B loc_FF8B6F8C\n"
899
900 "loc_FF8B6E8C:\n"
901
902 "BL sub_FF8B4290\n"
903 "B loc_FF8B6F8C\n"
904
905 "loc_FF8B6E94:\n"
906
907
908 "BL sub_FF8B44F8_my\n"
909 "MOV R4, #0\n"
910 "B loc_FF8B6F8C\n"
911
912 "loc_FF8B6EA0:\n"
913
914 "BL sub_FF8B4634\n"
915 "B loc_FF8B6F8C\n"
916
917 "loc_FF8B6EA8:\n"
918
919 "LDRH R1, [R0,#4]\n"
920 "STRH R1, [SP,#0x38-0x28]\n"
921 "LDRH R1, [R5,#2]\n"
922 "STRH R1, [SP,#0x38-0x26]\n"
923 "LDRH R1, [R5,#4]\n"
924 "STRH R1, [SP,#0x38-0x24]\n"
925 "LDRH R1, [R5,#6]\n"
926 "STRH R1, [SP,#0x38-0x22]\n"
927 "LDRH R1, [R0,#0xC]\n"
928 "STRH R1, [SP,#0x38-0x20]\n"
929 "BL sub_FF8B7D60\n"
930 "B loc_FF8B6F8C\n"
931
932 "loc_FF8B6ED8:\n"
933
934 "LDRH R1, [R0,#4]\n"
935 "STRH R1, [SP,#0x38-0x28]\n"
936 "LDRH R1, [R5,#2]\n"
937 "STRH R1, [SP,#0x38-0x26]\n"
938 "LDRH R1, [R5,#4]\n"
939 "STRH R1, [SP,#0x38-0x24]\n"
940 "LDRH R1, [R5,#6]\n"
941 "STRH R1, [SP,#0x38-0x22]\n"
942 "LDRH R1, [R5,#8]\n"
943 "STRH R1, [SP,#0x38-0x20]\n"
944 "BL sub_FF8B7EDC\n"
945 "B loc_FF8B6F8C\n"
946
947 "loc_FF8B6F08:\n"
948
949 "LDRH R1, [R5]\n"
950 "STRH R1, [SP,#0x38-0x28]\n"
951 "LDRH R1, [R0,#6]\n"
952 "STRH R1, [SP,#0x38-0x26]\n"
953 "LDRH R1, [R5,#4]\n"
954 "STRH R1, [SP,#0x38-0x24]\n"
955 "LDRH R1, [R5,#6]\n"
956 "STRH R1, [SP,#0x38-0x22]\n"
957 "LDRH R1, [R5,#8]\n"
958 "STRH R1, [SP,#0x38-0x20]\n"
959 "BL sub_FF8B7F88\n"
960 "B loc_FF8B6F8C\n"
961
962 "loc_FF8B6F38:\n"
963
964 "LDRH R1, [R5]\n"
965 "STRH R1, [SP,#0x38-0x28]\n"
966 "LDRH R1, [R5,#2]\n"
967 "STRH R1, [SP,#0x38-0x26]\n"
968 "LDRH R1, [R5,#4]\n"
969 "STRH R1, [SP,#0x38-0x24]\n"
970 "LDRH R1, [R5,#6]\n"
971 "STRH R1, [SP,#0x38-0x22]\n"
972 "LDRH R1, [R0,#0xC]\n"
973 "STRH R1, [SP,#0x38-0x20]\n"
974 "BL sub_FF8B8028\n"
975 "B loc_FF8B6F8C\n"
976
977 "loc_FF8B6F68:\n"
978
979 "BL sub_FF8B48A8\n"
980 "B loc_FF8B6F8C\n"
981
982 "loc_FF8B6F70:\n"
983
984 "BL sub_FF8B4EC4\n"
985 "B loc_FF8B6F8C\n"
986
987 "loc_FF8B6F78:\n"
988
989 "BL sub_FF8B50FC\n"
990 "B loc_FF8B6F8C\n"
991
992 "loc_FF8B6F80:\n"
993
994 "BL sub_FF8B5274\n"
995 "B loc_FF8B6F8C\n"
996
997 "loc_FF8B6F88:\n"
998
999 "BL sub_FF8B540C\n"
1000
1001 "loc_FF8B6F8C:\n"
1002
1003
1004 "LDR R0, [SP,#0x38-0x1C]\n"
1005 "LDR R1, [R0,#0x7C]\n"
1006 "LDR R3, [R0,#0x88]\n"
1007 "LDR R2, [R0,#0x8C]\n"
1008 "ADD R0, R0, #4\n"
1009 "BLX R3\n"
1010 "CMP R4, #1\n"
1011 "BNE loc_FF8B6FF4\n"
1012
1013 "loc_FF8B6FAC:\n"
1014 "LDR R0, [SP,#0x38-0x1C]\n"
1015 "MOV R2, #0xC\n"
1016 "LDR R1, [R0,#0x7C]\n"
1017 "ADD R1, R1, R1,LSL#1\n"
1018 "ADD R0, R0, R1,LSL#2\n"
1019 "SUB R4, R0, #8\n"
1020 "LDR R0, =0x3E12C\n"
1021 "ADD R1, SP, #0x38-0x28\n"
1022 "BL sub_FFAAC800\n"
1023 "LDR R0, =0x3E138\n"
1024 "MOV R2, #0xC\n"
1025 "ADD R1, SP, #0x38-0x28\n"
1026 "BL sub_FFAAC800\n"
1027 "LDR R0, =0x3E144\n"
1028 "MOV R2, #0xC\n"
1029 "MOV R1, R4\n"
1030 "BL sub_FFAAC800\n"
1031 "B loc_FF8B706C\n"
1032
1033 "loc_FF8B6FF4:\n"
1034 "LDR R0, [SP,#0x38-0x1C]\n"
1035 "LDR R0, [R0]\n"
1036 "CMP R0, #0xB\n"
1037 "BNE loc_FF8B703C\n"
1038 "MOV R3, #0\n"
1039 "STR R3, [SP,#0x38-0x38]\n"
1040 "MOV R3, #1\n"
1041 "MOV R2, #1\n"
1042 "MOV R1, #1\n"
1043 "MOV R0, #0\n"
1044 "BL sub_FF8B37A8\n"
1045 "MOV R3, #0\n"
1046 "STR R3, [SP,#0x38-0x38]\n"
1047 "MOV R3, #1\n"
1048 "MOV R2, #1\n"
1049 "MOV R1, #1\n"
1050 "MOV R0, #0\n"
1051 "B loc_FF8B7068\n"
1052
1053 "loc_FF8B703C:\n"
1054 "MOV R3, #1\n"
1055 "MOV R2, #1\n"
1056 "MOV R1, #1\n"
1057 "MOV R0, #1\n"
1058 "STR R3, [SP,#0x38-0x38]\n"
1059 "BL sub_FF8B37A8\n"
1060 "MOV R3, #1\n"
1061 "MOV R2, #1\n"
1062 "MOV R1, #1\n"
1063 "MOV R0, #1\n"
1064 "STR R3, [SP,#0x38-0x38]\n"
1065
1066 "loc_FF8B7068:\n"
1067 "BL sub_FF8B38E8\n"
1068
1069 "loc_FF8B706C:\n"
1070 "LDR R0, [SP,#0x38-0x1C]\n"
1071 "BL sub_FF8B7CEC\n"
1072 "B loc_FF8B6AA0\n"
1073 );
1074 }
1075
1076 void __attribute__((naked,noinline)) sub_FF8B44F8_my()
1077 {
1078 asm volatile (
1079 "STMFD SP!, {R4-R8,LR}\n"
1080 "LDR R7, =0x6E30\n"
1081 "MOV R4, R0\n"
1082 "LDR R0, [R7,#0x1C]\n"
1083 "MOV R1, #0x3E\n"
1084 "BL sub_FF827B50\n"
1085 "LDRSH R0, [R4,#4]\n"
1086 "MOV R2, #0\n"
1087 "MOV R1, #0\n"
1088 "BL sub_FF8B353C\n"
1089 "MOV R6, R0\n"
1090 "LDRSH R0, [R4,#6]\n"
1091 "BL sub_FF8B3648\n"
1092 "LDRSH R0, [R4,#8]\n"
1093 "BL sub_FF8B36A0\n"
1094 "LDRSH R0, [R4,#0xA]\n"
1095 "BL sub_FF8B36F8\n"
1096 "LDRSH R0, [R4,#0xC]\n"
1097 "BL sub_FF8B3750\n"
1098 "MOV R5, R0\n"
1099 "LDR R0, [R4]\n"
1100 "LDR R8, =0x3E144\n"
1101 "CMP R0, #0xB\n"
1102 "MOVEQ R6, #0\n"
1103 "MOVEQ R5, #0\n"
1104 "BEQ loc_FF8B4588\n"
1105 "CMP R6, #1\n"
1106 "BNE loc_FF8B4588\n"
1107 "LDRSH R0, [R4,#4]\n"
1108 "LDR R1, =0xFF8B34A8\n"
1109 "MOV R2, #2\n"
1110 "BL sub_FF92FC20\n"
1111 "STRH R0, [R4,#4]\n"
1112 "MOV R0, #0\n"
1113 "STR R0, [R7,#0x28]\n"
1114 "B loc_FF8B4590\n"
1115
1116 "loc_FF8B4588:\n"
1117 "LDRH R0, [R8]\n"
1118 "STRH R0, [R4,#4]\n"
1119
1120 "loc_FF8B4590:\n"
1121 "CMP R5, #1\n"
1122 "LDRNEH R0, [R8,#8]\n"
1123 "BNE loc_FF8B45AC\n"
1124 "LDRSH R0, [R4,#0xC]\n"
1125 "MOV R2, #0x20\n"
1126 "LDR R1, =0xFF8B352C\n"
1127 "BL sub_FF8B7D1C\n"
1128
1129 "loc_FF8B45AC:\n"
1130 "STRH R0, [R4,#0xC]\n"
1131 "LDRSH R0, [R4,#6]\n"
1132
1133 "BL sub_FF895B48_my\n"
1134 "LDRSH R0, [R4,#8]\n"
1135 "MOV R1, #1\n"
1136 "BL sub_FF896344\n"
1137 "MOV R1, #0\n"
1138 "ADD R0, R4, #8\n"
1139 "BL sub_FF8963CC\n"
1140 "LDRSH R0, [R4,#0xE]\n"
1141 "BL sub_FF8AA464\n"
1142 "LDR R4, =0xBB8\n"
1143 "CMP R6, #1\n"
1144 "BNE loc_FF8B4604\n"
1145 "LDR R0, [R7,#0x1C]\n"
1146 "MOV R2, R4\n"
1147 "MOV R1, #2\n"
1148 "BL sub_FF827A54\n"
1149 "TST R0, #1\n"
1150 "LDRNE R1, =0x532\n"
1151 "LDRNE R0, =0xFF8B3BB8\n"
1152 "BLNE _DebugAssert\n"
1153
1154 "loc_FF8B4604:\n"
1155 "CMP R5, #1\n"
1156 "LDMNEFD SP!, {R4-R8,PC}\n"
1157 "LDR R0, [R7,#0x1C]\n"
1158 "MOV R2, R4\n"
1159 "MOV R1, #0x20\n"
1160 "BL sub_FF827A54\n"
1161 "TST R0, #1\n"
1162 "LDRNE R1, =0x537\n"
1163 "LDRNE R0, =0xFF8B3BB8\n"
1164 "LDMNEFD SP!, {R4-R8,LR}\n"
1165 "BNE _DebugAssert\n"
1166 "LDMFD SP!, {R4-R8,PC}\n"
1167 );
1168 }
1169
1170
1171 void __attribute__((naked,noinline)) sub_FF895B48_my()
1172 {
1173 asm volatile (
1174 "STMFD SP!, {R4-R6,LR}\n"
1175 "LDR R5, =0x68EC\n"
1176 "MOV R4, R0\n"
1177 "LDR R0, [R5,#4]\n"
1178 "CMP R0, #1\n"
1179 "LDRNE R1, =0x16D\n"
1180 "LDRNE R0, =0xFF8958E0\n"
1181 "BLNE _DebugAssert\n"
1182 "CMN R4, #0xC00\n"
1183 "LDREQSH R4, [R5,#2]\n"
1184 "CMN R4, #0xC00\n"
1185 "LDREQ R1, =0x173\n"
1186 "LDREQ R0, =0xFF8958E0\n"
1187 "STRH R4, [R5,#2]\n"
1188 "BLEQ _DebugAssert\n"
1189 "MOV R0, R4\n"
1190
1191 "BL apex2us\n"
1192 "MOV R4, R0\n"
1193 "BL sub_FF8C5920\n"
1194 "MOV R0, R4\n"
1195 "BL sub_FF8C9E10\n"
1196 "TST R0, #1\n"
1197 "LDMNEFD SP!, {R4-R6,LR}\n"
1198 "MOVNE R1, #0x178\n"
1199 "LDRNE R0, =0xFF8958E0\n"
1200 "BNE _DebugAssert\n"
1201 "LDMFD SP!, {R4-R6,PC}\n"
1202 );
1203 }