This source file includes following definitions.
- capt_seq_task
- sub_FF98ADD8_my
- sub_FFAE37D0_my
- sub_FFAE3308_my
- sub_FF98AB6C_my
- exp_drv_task
- sub_FF8C9AD0_my
- sub_FF8BA3A4_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4 #include "conf.h"
5
6 static long *nrflag = (long*)0xDDA8;
7
8 #include "../../../generic/capt_seq.c"
9
10
11 void __attribute__((naked,noinline)) capt_seq_task() {
12 asm volatile (
13 "STMFD SP!, {R3-R7,LR}\n"
14 "LDR R7, =0x3474\n"
15 "LDR R4, =0x3C5E4\n"
16 "MOV R6, #0\n"
17 "loc_FF883640:\n"
18 "LDR R0, [R7,#4]\n"
19 "MOV R2, #0\n"
20 "MOV R1, SP\n"
21 "BL sub_FF83AE20\n"
22 "TST R0, #1\n"
23 "BEQ loc_FF88366C\n"
24 "LDR R1, =0x43F\n"
25 "LDR R0, =0xFF88319C\n"
26 "BL sub_FF81EB78\n"
27 "BL sub_FF81EB30\n"
28 "LDMFD SP!, {R3-R7,PC}\n"
29
30 "loc_FF88366C:\n"
31 "LDR R0, [SP]\n"
32 "LDR R1, [R0]\n"
33 "CMP R1, #0x1F\n"
34 "ADDLS PC, PC, R1,LSL#2\n"
35 "B loc_FF883868\n"
36
37 "loc_FF883680:\n"
38 "B loc_FF883700\n"
39 "loc_FF883684:\n"
40 "B loc_FF883718\n"
41 "loc_FF883688:\n"
42 "B loc_FF883730\n"
43 "loc_FF88368C:\n"
44 "B loc_FF883744\n"
45 "loc_FF883690:\n"
46 "B loc_FF88373C\n"
47 "loc_FF883694:\n"
48 "B loc_FF883750\n"
49 "loc_FF883698:\n"
50 "B loc_FF883758\n"
51 "loc_FF88369C:\n"
52 "B loc_FF883760\n"
53 "loc_FF8836A0:\n"
54 "B loc_FF88376C\n"
55 "loc_FF8836A4:\n"
56 "B loc_FF883794\n"
57 "loc_FF8836A8:\n"
58 "B loc_FF883778\n"
59 "loc_FF8836AC:\n"
60 "B loc_FF883784\n"
61 "loc_FF8836B0:\n"
62 "B loc_FF88378C\n"
63 "loc_FF8836B4:\n"
64 "B loc_FF88379C\n"
65 "loc_FF8836B8:\n"
66 "B loc_FF8837A4\n"
67 "loc_FF8836BC:\n"
68 "B loc_FF8837AC\n"
69 "loc_FF8836C0:\n"
70 "B loc_FF8837B4\n"
71 "loc_FF8836C4:\n"
72 "B loc_FF8837BC\n"
73 "loc_FF8836C8:\n"
74 "B loc_FF8837C8\n"
75 "loc_FF8836CC:\n"
76 "B loc_FF8837D0\n"
77 "loc_FF8836D0:\n"
78 "B loc_FF8837D8\n"
79 "loc_FF8836D4:\n"
80 "B loc_FF8837E0\n"
81 "loc_FF8836D8:\n"
82 "B loc_FF8837E8\n"
83 "loc_FF8836DC:\n"
84 "B loc_FF8837F4\n"
85 "loc_FF8836E0:\n"
86 "B loc_FF8837FC\n"
87 "loc_FF8836E4:\n"
88 "B loc_FF883804\n"
89 "loc_FF8836E8:\n"
90 "B loc_FF88380C\n"
91 "loc_FF8836EC:\n"
92 "B loc_FF883814\n"
93 "loc_FF8836F0:\n"
94 "B loc_FF88381C\n"
95 "loc_FF8836F4:\n"
96 "B loc_FF883824\n"
97 "loc_FF8836F8:\n"
98 "B loc_FF883830\n"
99 "loc_FF8836FC:\n"
100 "B loc_FF883874\n"
101 "loc_FF883700:\n"
102 "BL sub_FF883D88\n"
103
104
105 "BL shooting_expo_param_override\n"
106 "BL sub_FF880F24\n"
107
108
109
110
111
112 "MOV R0, #0\n"
113 "STR R0, [R4,#0x24]\n"
114
115 "LDR R0, [R4,#0x24]\n"
116 "CMP R0, #0\n"
117
118
119
120
121
122
123
124 "BLNE sub_FF98ADD8_my\n"
125
126
127
128 "B loc_FF883874\n"
129 "loc_FF883718:\n"
130 "LDRH R1, [R4]\n"
131 "SUB R12, R1, #0x8200\n"
132 "SUBS R12, R12, #0x2E\n"
133 "LDRNE R0, [R0,#0xC]\n"
134
135
136 "BLNE sub_FF98AB6C_my\n"
137
138
139
140
141
142 "B loc_FF883874\n"
143 "loc_FF883730:\n"
144 "MOV R0, #1\n"
145 "BL sub_FF884044\n"
146 "B loc_FF883874\n"
147 "loc_FF88373C:\n"
148 "BL sub_FF883A28\n"
149 "B loc_FF883748\n"
150 "loc_FF883744:\n"
151 "BL sub_FF883D68\n"
152 "loc_FF883748:\n"
153 "STR R6, [R4,#0x24]\n"
154 "B loc_FF883874\n"
155 "loc_FF883750:\n"
156 "BL sub_FF883D70\n"
157 "B loc_FF883874\n"
158
159 "loc_FF883758:\n"
160 "BL sub_FF883F48\n"
161 "B loc_FF883770\n"
162 "loc_FF883760:\n"
163 "LDR R0, [R0,#0xC]\n"
164 "BL sub_FF98AE38\n"
165 "B loc_FF883874\n"
166 "loc_FF88376C:\n"
167 "BL sub_FF883FB4\n"
168 "loc_FF883770:\n"
169 "BL sub_FF880F24\n"
170 "B loc_FF883874\n"
171 "loc_FF883778:\n"
172 "LDR R0, [R4,#0x54]\n"
173 "BL sub_FF8846B0\n"
174 "B loc_FF883874\n"
175 "loc_FF883784:\n"
176 "BL sub_FF884A4C\n"
177 "B loc_FF883874\n"
178 "loc_FF88378C:\n"
179 "BL sub_FF884AB0\n"
180 "B loc_FF883874\n"
181 "loc_FF883794:\n"
182 "BL sub_FF883D68\n"
183 "B loc_FF883874\n"
184 "loc_FF88379C:\n"
185 "BL sub_FF98A1B8\n"
186 "B loc_FF883874\n"
187 "loc_FF8837A4:\n"
188 "BL sub_FF98A3C4\n"
189 "B loc_FF883874\n"
190 "loc_FF8837AC:\n"
191 "BL sub_FF98A468\n"
192 "B loc_FF883874\n"
193 "loc_FF8837B4:\n"
194 "BL sub_FF98A538\n"
195 "B loc_FF883874\n"
196 "loc_FF8837BC:\n"
197 "MOV R0, #0\n"
198 "BL sub_FF98A798\n"
199 "B loc_FF883874\n"
200 "loc_FF8837C8:\n"
201 "BL sub_FF98A8F4\n"
202 "B loc_FF883874\n"
203 "loc_FF8837D0:\n"
204 "BL sub_FF98A998\n"
205 "B loc_FF883874\n"
206 "loc_FF8837D8:\n"
207 "BL sub_FF98AA78\n"
208 "B loc_FF883874\n"
209 "loc_FF8837E0:\n"
210 "BL sub_FF88422C\n"
211 "B loc_FF883874\n"
212 "loc_FF8837E8:\n"
213 "BL sub_FF8842D8\n"
214 "BL sub_FF98BAF8\n"
215 "B loc_FF883874\n"
216 "loc_FF8837F4:\n"
217 "BL sub_FF98A604\n"
218 "B loc_FF883874\n"
219 "loc_FF8837FC:\n"
220 "BL sub_FF98A66C\n"
221 "B loc_FF883874\n"
222 "loc_FF883804:\n"
223 "BL sub_FF98BBC8\n"
224 "B loc_FF883874\n"
225 "loc_FF88380C:\n"
226 "BL sub_FF838C50\n"
227 "B loc_FF883874\n"
228 "loc_FF883814:\n"
229 "BL sub_FF886DEC\n"
230 "B loc_FF883874\n"
231 "loc_FF88381C:\n"
232 "BL sub_FF886E74\n"
233 "B loc_FF883874\n"
234 "loc_FF883824:\n"
235 "BL sub_FF886ED0\n"
236 "BL sub_FF886E90\n"
237 "B loc_FF883874\n"
238 "loc_FF883830:\n"
239 "MOV R0, #1\n"
240 "BL sub_FF98B634\n"
241 "MOV R0, #1\n"
242 "BL sub_FF98B764\n"
243 "LDRH R0, [R4,#0x94]\n"
244 "CMP R0, #4\n"
245 "LDRNEH R0, [R4]\n"
246 "SUBNE R12, R0, #0x8200\n"
247 "SUBNES R12, R12, #0x2A\n"
248 "BNE loc_FF883874\n"
249 "BL sub_FF886E74\n"
250 "BL sub_FF8873E0\n"
251 "BL sub_FF8872F0\n"
252 "B loc_FF883874\n"
253 "loc_FF883868:\n"
254 "LDR R1, =0x591\n"
255 "LDR R0, =0xFF88319C\n"
256 "BL sub_FF81EB78\n"
257 "loc_FF883874:\n"
258 "LDR R0, [SP]\n"
259 "LDR R1, [R0,#4]\n"
260 "LDR R0, [R7]\n"
261 "BL sub_FF88DB8C\n"
262 "LDR R5, [SP]\n"
263 "LDR R0, [R5,#8]\n"
264 "CMP R0, #0\n"
265 "LDREQ R1, =0x115\n"
266 "LDREQ R0, =0xFF88319C\n"
267 "BLEQ sub_FF81EB78\n"
268 "STR R6, [R5,#8]\n"
269 "B loc_FF883640\n"
270
271
272
273
274
275 );
276 }
277
278
279
280 void __attribute__((naked,noinline)) sub_FF98ADD8_my() {
281 asm volatile (
282 "STMFD SP!, {R4-R6,LR}\n"
283 "BL sub_FF882E6C\n"
284 "MOV R4, R0\n"
285 "LDR R0, =0x3C5E4\n"
286 "LDR R5, =0x7C94\n"
287 "LDR R0, [R0,#0x24]\n"
288 "MOV R6, #1\n"
289 "CMP R0, #0\n"
290 "BEQ loc_FF98AE1C\n"
291 "MOV R0, #0xC\n"
292 "BL sub_FF88896C\n"
293 "TST R0, #1\n"
294 "STRNE R6, [R5]\n"
295 "LDRNE R0, [R4,#8]\n"
296 "ORRNE R0, R0, #0x40000000\n"
297 "STRNE R0, [R4,#8]\n"
298 "LDMNEFD SP!, {R4-R6,PC}\n"
299 "loc_FF98AE1C:\n"
300 "MOV R0, R4\n"
301 "BL sub_FFAE2D0C\n"
302 "MOV R0, R4\n"
303
304 "BL sub_FFAE37D0_my\n"
305
306
307
308
309 "TST R0, #1\n"
310 "TST R0, #1\n"
311 "STRNE R6, [R5]\n"
312 "LDMFD SP!, {R4-R6,PC}\n"
313 );
314 }
315
316
317 void __attribute__((naked,noinline)) sub_FFAE37D0_my() {
318 asm volatile (
319 "STMFD SP!, {R2-R8,LR}\n"
320 "MOV R6, R0\n"
321 "BL sub_FF98B928\n"
322
323 "MVN R1, #0 \n"
324 "BL sub_FF88DBC0\n"
325 "LDR R0, =0xFFAE2F48\n"
326 "MOV R1, R6\n"
327 "BL sub_FF8C25A4\n"
328 "MOV R0, R6\n"
329 "BL sub_FFAE2E10\n"
330 "MOV R0, R6\n"
331
332 "BL sub_FFAE3308_my\n"
333
334 " MOV R4, R0\n"
335 " LDR R1, =0xDDB8\n"
336 " MOV R0, #0x8A\n"
337 " MOV R2, #4\n"
338 " BL sub_FF895DBC\n"
339 " TST R0, #1\n"
340 " LDRNE R1, =0x1F6\n"
341 " LDRNE R0, =0xFFAE39B4\n"
342 " BLNE sub_FF81EB78\n"
343 " BL sub_FF886534\n"
344 " MOV R0, R4\n"
345 " CMP R0, #7\n"
346 " MOV R4, #0\n"
347 " MOV R5, #3\n"
348 " ADDLS PC, PC, R0,LSL#2\n"
349 " B loc_FFAE391C\n"
350 "loc_FFAE3840:\n"
351 " B loc_FFAE391C\n"
352 "loc_FFAE3844:\n"
353 " B loc_FFAE3860\n"
354 "loc_FFAE3848:\n"
355 " B loc_FFAE3870\n"
356 "loc_FFAE384C:\n"
357 " B loc_FFAE3894\n"
358 "loc_FFAE3850:\n"
359 " B loc_FFAE38B0\n"
360 "loc_FFAE3854:\n"
361 " B loc_FFAE38CC\n"
362 "loc_FFAE3858:\n"
363 " B loc_FFAE38DC\n"
364 "loc_FFAE385C:\n"
365 " B loc_FFAE38FC\n"
366 "loc_FFAE3860:\n"
367 " MOV R0, #1\n"
368 " BL sub_FF8C25D4\n"
369 " STR R4, [SP,#0x4]\n"
370 " B loc_FFAE390C\n"
371 "loc_FFAE3870:\n"
372 " MOV R0, #1\n"
373 " BL sub_FF8C25D4\n"
374 " MOV R0, #1\n"
375 " STR R0, [SP,#0x4]\n"
376 " MOV R0, R6\n"
377 " ADD R1, SP, #0x4\n"
378 " BL sub_FFAE3A9C\n"
379 "loc_FFAE388C:\n"
380 " MOV R7, R0\n"
381 " B loc_FFAE3928\n"
382 "loc_FFAE3894:\n"
383 " MOV R0, #1\n"
384 " BL sub_FF8C25D4\n"
385 " ADD R1, SP, #0x4\n"
386 " MOV R0, R6\n"
387 " STR R4, [SP,#0x4]\n"
388 " BL sub_FFAE360C\n"
389 " B loc_FFAE388C\n"
390 "loc_FFAE38B0:\n"
391 " MOV R0, #1\n"
392 " BL sub_FF8C25D4\n"
393 " ADD R1, SP, #0x4\n"
394 " MOV R0, R6\n"
395 " STR R5, [SP,#0x4]\n"
396 " BL sub_FFAE3B54\n"
397 " B loc_FFAE388C\n"
398 "loc_FFAE38CC:\n"
399 " MOV R0, #1\n"
400 " BL sub_FF8C25D4\n"
401 " STR R5, [SP,#0x4]\n"
402 " B loc_FFAE38EC\n"
403 "loc_FFAE38DC:\n"
404 " MOV R0, #0\n"
405 " BL sub_FF8C25D4\n"
406 " MOV R0, #5\n"
407 " STR R0, [SP,#0x4]\n"
408 "loc_FFAE38EC:\n"
409 " ADD R1, SP, #0x4\n"
410 " MOV R0, R6\n"
411 " BL sub_FFAE372C\n"
412 " B loc_FFAE388C\n"
413 "loc_FFAE38FC:\n"
414 " MOV R0, #0\n"
415 " BL sub_FF8C25D4\n"
416 " MOV R0, #4\n"
417 " STR R0, [SP,#0x4]\n"
418 "loc_FFAE390C:\n"
419 " ADD R1, SP, #0x4\n"
420 " MOV R0, R6\n"
421 " BL sub_FFAE3590\n"
422 " B loc_FFAE388C\n"
423 "loc_FFAE391C:\n"
424 " MOV R1, #0x22C\n"
425 " LDR R0, =0xFFAE39B4\n"
426 " BL sub_FF81EB78\n"
427 "loc_FFAE3928:\n"
428 " TST R7, #1\n"
429 " MOVNE R0, R7\n"
430 " BNE locret_FFAE3994\n"
431 " MOV R1, #0\n"
432 " LDR R0, =0xFFAE3500\n"
433 " BL sub_FF8C25A4\n"
434 " LDR R0, =0x3C5E4\n"
435 " LDRH R0, [R0]\n"
436 " SUB R12, R0, #0x8000\n"
437 " SUBS R12, R12, #0x20C\n"
438
439 " BLEQ sub_FF8ABA3C\n"
440
441 " BL capt_seq_hook_raw_here\n"
442
443 " MOV R0, R6\n"
444 " BL sub_FFAE33B0\n"
445 " BL sub_FF98B928\n"
446 " MOV R3, #0x244\n"
447 " STR R3, [SP]\n"
448 " LDR R2, =0x3A98\n"
449 " LDR R3, =0xFFAE39B4\n"
450 " MOV R1, #4\n"
451 " BL sub_FF888CF4\n"
452
453 " CMP R0, #0\n"
454 " MOVNE R1, #0x244\n"
455 " LDRNE R0, =0xFFAE39B4\n"
456 " BLNE sub_FF81EB78\n"
457 " LDRH R0, [SP,#0x4]\n"
458 " STRH R0, [R6,#0x14]\n"
459 " MOV R0, #0\n"
460 "locret_FFAE3994:\n"
461 " LDMFD SP!, {R2-R8,PC}\n"
462
463
464 );
465 }
466
467
468
469
470
471
472 void __attribute__((naked,noinline)) sub_FFAE3308_my() {
473 asm volatile (
474 "STMFD SP!, {R0-R8,LR}\n"
475 "MOV R4, R0\n"
476 "MOV R0, #0\n"
477 "MOV R7, #1\n"
478 "LDR R5, =0x3C6B4\n"
479 "STR R7, [SP,#0x8]\n"
480 "STR R0, [SP,#0xC]\n"
481 "LDR R6, =0x3C5E4\n"
482 "LDR R3, [R5]\n"
483 "LDRSH R2, [R5,#0xC]\n"
484 "LDRSH R1, [R5,#0xE]\n"
485 "LDR R0, [R6,#0x88]\n"
486 "BL sub_FF944FC8\n"
487 "BL sub_FF8682FC\n"
488 "LDR R2, =0xDDB0\n"
489 "ADD R3, SP, #0xC\n"
490 "STRH R0, [R4,#0xAC]\n"
491 "STRD R2, [SP]\n"
492 "MOV R1, R0\n"
493 "LDRH R0, [R6,#0x5C]\n"
494 "LDRSH R2, [R5,#0xC]\n"
495 "ADD R3, SP, #0x8\n"
496 "BL sub_FF98D56C\n"
497
498
499 "BL capt_seq_hook_set_nr\n"
500 "B sub_FFAE3364\n"
501 );
502 }
503
504
505 void __attribute__((naked,noinline)) sub_FF98AB6C_my() {
506 asm volatile (
507 "STMFD SP!, {R3-R7,LR}\n"
508 "LDR R5, =0x3C5E4\n"
509 "MOV R4, R0\n"
510 "LDR R0, [R5,#0x24]\n"
511 "LDR R6, =0x820C\n"
512 "CMP R0, #0\n"
513 "MOV R7, #0\n"
514 "BNE loc_FF98AC18\n"
515 "LDR R0, [R5,#0xB8]\n"
516 "CMP R0, #1\n"
517 "BNE loc_FF98ABF4\n"
518 "LDRH R0, [R5]\n"
519 "CMP R0, R6\n"
520 "LDRNEH R0, [R5,#0x92]\n"
521 "CMPNE R0, #3\n"
522 "LDRNE R0, [R4,#0xC]\n"
523 "CMPNE R0, #1\n"
524 "BLS loc_FF98ABC8\n"
525 "BL sub_FF833020\n"
526 "TST R0, #1\n"
527 "BEQ loc_FF98AC18\n"
528 "BL sub_FF8889CC\n"
529 "B loc_FF98AC04\n"
530 "loc_FF98ABC8:\n"
531 "MOV R0, #0xC\n"
532 "BL sub_FF88896C\n"
533 "TST R0, #1\n"
534 "BEQ loc_FF98AC18\n"
535 "MOV R2, R4\n"
536 "MOV R1, #1\n"
537 "MOV R0, #1\n"
538 "BL sub_FF8818E8\n"
539 "BL sub_FF98B4BC\n"
540 "BL sub_FF881610\n"
541 "LDMFD SP!, {R3-R7,PC}\n"
542 "loc_FF98ABF4:\n"
543 "MOV R0, #0xC\n"
544 "BL sub_FF88896C\n"
545 "TST R0, #1\n"
546 "BEQ loc_FF98AC18\n"
547 "loc_FF98AC04:\n"
548 "MOV R2, R4\n"
549 "MOV R1, #1\n"
550 "MOV R0, #1\n"
551 "BL sub_FF8818E8\n"
552 "LDMFD SP!, {R3-R7,PC}\n"
553 "loc_FF98AC18:\n"
554 "LDR R0, [R4,#8]\n"
555 "ORR R0, R0, #1\n"
556 "STR R0, [R4,#8]\n"
557 "LDRH R0, [R5]\n"
558 "CMP R0, R6\n"
559 "BEQ loc_FF98ACA4\n"
560 "LDRH R0, [R5,#0x92]\n"
561 "CMP R0, #3\n"
562 "BEQ loc_FF98ACEC\n"
563 "LDR R0, [R4,#0xC]\n"
564 "CMP R0, #1\n"
565 "BLS loc_FF98ACB0\n"
566 "LDRH R0, [R5,#0x90]\n"
567 "CMP R0, #0\n"
568 "BNE loc_FF98ACEC\n"
569 "LDRH R0, [R5,#0x8C]\n"
570 "CMP R0, #2\n"
571 "BNE loc_FF98ACBC\n"
572 "BL sub_FF88439C\n"
573 "LDRH R0, [R5]\n"
574 "CMP R0, R6\n"
575 "BEQ loc_FF98ACA4\n"
576 "LDRH R0, [R5,#0x92]\n"
577 "CMP R0, #3\n"
578 "BEQ loc_FF98ACEC\n"
579 "LDR R0, [R4,#0xC]\n"
580 "CMP R0, #1\n"
581 "BLS loc_FF98ACB0\n"
582 "LDRH R0, [R5,#0x90]\n"
583 "CMP R0, #0\n"
584 "BNE loc_FF98ACEC\n"
585 "LDRH R0, [R5,#0x8C]\n"
586 "CMP R0, #2\n"
587 "BEQ loc_FF98ACE8\n"
588 "B loc_FF98ACBC\n"
589 "loc_FF98ACA4:\n"
590 "LDRH R0, [R5,#0x92]\n"
591 "CMP R0, #3\n"
592 "BEQ loc_FF98ACEC\n"
593 "loc_FF98ACB0:\n"
594 "LDRH R0, [R5,#0x90]\n"
595 "CMP R0, #0\n"
596 "BNE loc_FF98ACEC\n"
597 "loc_FF98ACBC:\n"
598 "LDRH R0, [R5,#0x8C]\n"
599 "CMP R0, #1\n"
600 "BNE loc_FF98ACEC\n"
601 "LDRH R0, [R5]\n"
602 "CMP R0, R6\n"
603 "LDRNE R0, [R4,#0xC]\n"
604 "CMPNE R0, #1\n"
605 "BLS loc_FF98ACEC\n"
606 "LDR R0, [R4,#0x10]\n"
607 "CMP R0, #1\n"
608 "BNE loc_FF98ACEC\n"
609 "loc_FF98ACE8:\n"
610 "BL sub_FF98BC00\n"
611 "loc_FF98ACEC:\n"
612 "BL sub_FF98BBC8\n"
613 "BL sub_FF883D78\n"
614 "LDR R0, [R5,#0x24]\n"
615 "CMP R0, #0\n"
616 "BNE loc_FF98ADB8\n"
617 "MOV R0, R4\n"
618 "BL sub_FFAE2D84\n"
619 "TST R0, #1\n"
620 "LDMNEFD SP!, {R3-R7,PC}\n"
621 "MOV R0, R4\n"
622 "BL sub_FFAE3220\n"
623 "BL sub_FF98B3FC\n"
624 "LDR R0, [R5,#0xB8]\n"
625 "CMP R0, #1\n"
626 "BNE loc_FF98AD44\n"
627
628
629 "BL wait_until_remote_button_is_released\n"
630 "BL capt_seq_hook_set_nr\n"
631
632 "LDRH R0, [R5]\n"
633 "CMP R0, R6\n"
634 "LDRNEH R0, [R5,#0x92]\n"
635 "CMPNE R0, #3\n"
636 "LDRNE R0, [R4,#0xC]\n"
637 "CMPNE R0, #1\n"
638 "BHI loc_FF98AD4C\n"
639 "loc_FF98AD44:\n"
640 "MOV R0, #2\n"
641 "BL sub_FF87F4A4\n"
642 "loc_FF98AD4C:\n"
643 "LDRH R0, [R5]\n"
644 "SUB R12, R0, #0x8200\n"
645 "SUBS R12, R12, #0x2D\n"
646 "BNE loc_FF98ADA8\n"
647 "MOV R5, #1\n"
648 "MOV R2, #2\n"
649 "ADD R0, R2, #0x15C\n"
650 "MOV R1, SP\n"
651 "STR R5, [SP]\n"
652 "BL sub_FF895DBC\n"
653 "TST R0, #1\n"
654 "MOVNE R1, #0xC3\n"
655 "LDRNE R0, =0xFF98AEFC \n"
656 "BLNE sub_FF81EB78\n"
657 "LDRH R0, [SP]\n"
658 "CMP R0, #1\n"
659 "BLS loc_FF98ADA0\n"
660 "MOV R0, R4\n"
661 "STR R5, [R4,#0xE4]\n"
662 "BL sub_FFAE3CE0\n"
663 "B loc_FF98ADB0\n"
664 "loc_FF98ADA0:\n"
665 "MOV R0, #0\n"
666 "STR R0, [R4,#0xE4]\n"
667 "loc_FF98ADA8:\n"
668 "MOV R0, R4\n"
669
670 "BL sub_FFAE37D0_my\n"
671
672
673
674
675 "loc_FF98ADB0:\n"
676 "MOV R7, R0\n"
677 "B loc_FF98ADC8\n"
678 "loc_FF98ADB8:\n"
679 "LDR R0, =0x7C94\n"
680 "LDR R0, [R0]\n"
681 "CMP R0, #0\n"
682 "MOVNE R7, #0x1D\n"
683 "loc_FF98ADC8:\n"
684 "MOV R1, R7\n"
685 "MOV R0, R4\n"
686 "BL sub_FFAE2ED8\n"
687 "LDMFD SP!, {R3-R7,PC}\n"
688 );
689 }
690
691
692
693 void __attribute__((naked,noinline)) exp_drv_task() {
694 asm volatile(
695 " STMFD SP!, {R4-R8,LR}\n"
696 " SUB SP, SP, #0x20\n"
697 " LDR R8, =0xBB8\n"
698 " LDR R7, =0x4C6C\n"
699 " LDR R5, =0x58054\n"
700 " MOV R0, #0\n"
701 " ADD R6, SP, #0x10\n"
702 " STR R0, [SP,#0xC]\n"
703 "loc_FF8CCAA8:\n"
704 " LDR R0, [R7,#0x20]\n"
705 " MOV R2, #0\n"
706 " ADD R1, SP, #0x1C\n"
707 " BL sub_FF83AE20\n"
708 " LDR R0, [SP,#0xC]\n"
709 " CMP R0, #1\n"
710 " BNE loc_FF8CCAF4\n"
711 " LDR R0, [SP,#0x1C]\n"
712 " LDR R0, [R0]\n"
713 " CMP R0, #0x14\n"
714 " CMPNE R0, #0x15\n"
715 " CMPNE R0, #0x16\n"
716 " CMPNE R0, #0x17\n"
717 " BEQ loc_FF8CCC58\n"
718 " CMP R0, #0x29\n"
719 " BEQ loc_FF8CCBE0\n"
720 " ADD R1, SP, #0xC\n"
721 " MOV R0, #0\n"
722 " BL sub_FF8CCA38\n"
723 "loc_FF8CCAF4:\n"
724 " LDR R0, [SP,#0x1C]\n"
725 " LDR R1, [R0]\n"
726 " CMP R1, #0x2F\n"
727 " BNE loc_FF8CCB24\n"
728 " LDR R0, [SP,#0x1C]\n"
729 " BL sub_FF8CDE38\n"
730 " LDR R0, [R7,#0x1C]\n"
731 " MOV R1, #1\n"
732 " BL sub_FF88DB8C\n"
733 " BL sub_FF81EB30\n"
734 " ADD SP, SP, #0x20\n"
735 " LDMFD SP!, {R4-R8,PC}\n"
736 "loc_FF8CCB24:\n"
737 " CMP R1, #0x2E\n"
738 " BNE loc_FF8CCB40\n"
739 " LDR R2, [R0,#0x8C]!\n"
740 " LDR R1, [R0,#4]\n"
741 " MOV R0, R1\n"
742 " BLX R2\n"
743 " B loc_FF8CD120\n"
744 "loc_FF8CCB40:\n"
745 " CMP R1, #0x27\n"
746 " BNE loc_FF8CCB90\n"
747 " LDR R0, [R7,#0x1C]\n"
748 " MOV R1, #0x80\n"
749 " BL sub_FF88DBC0\n"
750 " LDR R0, =0xFF8C8848\n"
751 " MOV R1, #0x80\n"
752 " BL sub_FF974434\n"
753 " LDR R0, [R7,#0x1C]\n"
754 " MOV R2, R8\n"
755 " MOV R1, #0x80\n"
756 " BL sub_FF88DACC\n"
757 " TST R0, #1\n"
758 " LDRNE R1, =0x1089\n"
759 " BNE loc_FF8CCC4C\n"
760 "loc_FF8CCB7C:\n"
761 " LDR R1, [SP,#0x1C]\n"
762 " LDR R0, [R1,#0x90]\n"
763 " LDR R1, [R1,#0x8C]\n"
764 " BLX R1\n"
765 " B loc_FF8CD120\n"
766 "loc_FF8CCB90:\n"
767 " CMP R1, #0x28\n"
768 " BNE loc_FF8CCBD8\n"
769 " ADD R1, SP, #0xC\n"
770 " BL sub_FF8CCA38\n"
771 " LDR R0, [R7,#0x1C]\n"
772 " MOV R1, #0x100\n"
773 " BL sub_FF88DBC0\n"
774 " LDR R0, =0xFF8C8858\n"
775 " MOV R1, #0x100\n"
776 " BL sub_FF974DC4\n"
777 " LDR R0, [R7,#0x1C]\n"
778 " MOV R2, R8\n"
779 " MOV R1, #0x100\n"
780 " BL sub_FF88DACC\n"
781 " TST R0, #1\n"
782 " BEQ loc_FF8CCB7C\n"
783 " LDR R1, =0x1093\n"
784 " B loc_FF8CCC4C\n"
785 "loc_FF8CCBD8:\n"
786 " CMP R1, #0x29\n"
787 " BNE loc_FF8CCBF0\n"
788 "loc_FF8CCBE0:\n"
789 " LDR R0, [SP,#0x1C]\n"
790 " ADD R1, SP, #0xC\n"
791 " BL sub_FF8CCA38\n"
792 " B loc_FF8CCB7C\n"
793 "loc_FF8CCBF0:\n"
794 " CMP R1, #0x2C\n"
795 " BNE loc_FF8CCC08\n"
796 " BL sub_FF8BA634\n"
797 " BL sub_FF8BB250\n"
798 " BL sub_FF8BADBC\n"
799 " B loc_FF8CCB7C\n"
800 "loc_FF8CCC08:\n"
801 " CMP R1, #0x2D\n"
802 " BNE loc_FF8CCC58\n"
803 " LDR R0, [R7,#0x1C]\n"
804 " MOV R1, #4\n"
805 " BL sub_FF88DBC0\n"
806 " LDR R1, =0xFF8C8878\n"
807 " LDR R0, =0xFFFFF400\n"
808 " MOV R2, #4\n"
809 " BL sub_FF8BA0B0\n"
810 " BL sub_FF8BA338\n"
811 " LDR R0, [R7,#0x1C]\n"
812 " MOV R2, R8\n"
813 " MOV R1, #4\n"
814 " BL sub_FF88D9E8\n"
815 " TST R0, #1\n"
816 " BEQ loc_FF8CCB7C\n"
817 " LDR R1, =0x10BB\n"
818 "loc_FF8CCC4C:\n"
819 " LDR R0, =0xFF8C8F48\n"
820 " BL sub_FF81EB78\n"
821 " B loc_FF8CCB7C\n"
822 "loc_FF8CCC58:\n"
823 " LDR R0, [SP,#0x1C]\n"
824 " MOV R4, #1\n"
825 " LDR R1, [R0]\n"
826 " CMP R1, #0x12\n"
827 " CMPNE R1, #0x13\n"
828 " BNE loc_FF8CCCC8\n"
829 " LDR R1, [R0,#0x7C]\n"
830 " ADD R1, R1, R1,LSL#1\n"
831 " ADD R1, R0, R1,LSL#2\n"
832 " SUB R1, R1, #8\n"
833 " LDMIA R1, {R2-R4}\n"
834 " STMIA R6, {R2-R4}\n"
835 " BL sub_FF8CB1C0\n"
836 " LDR R0, [SP,#0x1C]\n"
837 " LDR R1, [R0,#0x7C]\n"
838 " LDR R3, [R0,#0x8C]\n"
839 " LDR R2, [R0,#0x90]\n"
840 " ADD R0, R0, #4\n"
841 " BLX R3\n"
842 " LDR R0, [SP,#0x1C]\n"
843 " BL sub_FF8CE240\n"
844 " LDR R0, [SP,#0x1C]\n"
845 " LDR R1, [R0,#0x7C]\n"
846 " LDR R3, [R0,#0x94]\n"
847 " LDR R2, [R0,#0x98]\n"
848 " ADD R0, R0, #4\n"
849 " BLX R3\n"
850 " B loc_FF8CD05C\n"
851 "loc_FF8CCCC8:\n"
852 " CMP R1, #0x14\n"
853 " CMPNE R1, #0x15\n"
854 " CMPNE R1, #0x16\n"
855 " CMPNE R1, #0x17\n"
856 " BNE loc_FF8CCD80\n"
857 " ADD R3, SP, #0xC\n"
858 " MOV R2, SP\n"
859 " ADD R1, SP, #0x10\n"
860 " BL sub_FF8CB42C\n"
861 " CMP R0, #1\n"
862 " MOV R4, R0\n"
863 " CMPNE R4, #5\n"
864 " BNE loc_FF8CCD1C\n"
865 " LDR R0, [SP,#0x1C]\n"
866 " MOV R2, R4\n"
867 " LDR R1, [R0,#0x7C]!\n"
868 " LDR R12, [R0,#0x10]!\n"
869 " LDR R3, [R0,#4]\n"
870 " MOV R0, SP\n"
871 " BLX R12\n"
872 " B loc_FF8CCD54\n"
873 "loc_FF8CCD1C:\n"
874 " LDR R0, [SP,#0x1C]\n"
875 " CMP R4, #2\n"
876 " LDR R3, [R0,#0x90]\n"
877 " CMPNE R4, #6\n"
878 " BNE loc_FF8CCD68\n"
879 " LDR R12, [R0,#0x8C]\n"
880 " MOV R0, SP\n"
881 " MOV R2, R4\n"
882 " MOV R1, #1\n"
883 " BLX R12\n"
884 " LDR R0, [SP,#0x1C]\n"
885 " MOV R2, SP\n"
886 " ADD R1, SP, #0x10\n"
887 " BL sub_FF8CC784\n"
888 "loc_FF8CCD54:\n"
889 " LDR R0, [SP,#0x1C]\n"
890 " LDR R2, [SP,#0xC]\n"
891 " MOV R1, R4\n"
892 " BL sub_FF8CC9D8\n"
893 " B loc_FF8CD05C\n"
894 "loc_FF8CCD68:\n"
895 " LDR R1, [R0,#0x7C]\n"
896 " LDR R12, [R0,#0x8C]\n"
897 " ADD R0, R0, #4\n"
898 " MOV R2, R4\n"
899 " BLX R12\n"
900 " B loc_FF8CD05C\n"
901 "loc_FF8CCD80:\n"
902 " CMP R1, #0x23\n"
903 " CMPNE R1, #0x24\n"
904 " BNE loc_FF8CCDCC\n"
905 " LDR R1, [R0,#0x7C]\n"
906 " ADD R1, R1, R1,LSL#1\n"
907 " ADD R1, R0, R1,LSL#2\n"
908 " SUB R1, R1, #8\n"
909 " LDMIA R1, {R2-R4}\n"
910 " STMIA R6, {R2-R4}\n"
911 " BL sub_FF8CA234\n"
912 " LDR R0, [SP,#0x1C]\n"
913 " LDR R1, [R0,#0x7C]\n"
914 " LDR R3, [R0,#0x8C]\n"
915 " LDR R2, [R0,#0x90]\n"
916 " ADD R0, R0, #4\n"
917 " BLX R3\n"
918 " LDR R0, [SP,#0x1C]\n"
919 " BL sub_FF8CA680\n"
920 " B loc_FF8CD05C\n"
921 "loc_FF8CCDCC:\n"
922 " ADD R1, R0, #4\n"
923 " LDMIA R1, {R2,R3,R12}\n"
924 " STMIA R6, {R2,R3,R12}\n"
925 " LDR R1, [R0]\n"
926 " CMP R1, #0x26\n"
927 " ADDLS PC, PC, R1,LSL#2\n"
928 " B loc_FF8CD03C\n"
929 "loc_FF8CCDE8:\n"
930 " B loc_FF8CCE84\n"
931 "loc_FF8CCDEC:\n"
932 " B loc_FF8CCE84\n"
933 "loc_FF8CCDF0:\n"
934 " B loc_FF8CCE8C\n"
935 "loc_FF8CCDF4:\n"
936 " B loc_FF8CCE94\n"
937 "loc_FF8CCDF8:\n"
938 " B loc_FF8CCE94\n"
939 "loc_FF8CCDFC:\n"
940 " B loc_FF8CCE94\n"
941 "loc_FF8CCE00:\n"
942 " B loc_FF8CCE84\n"
943 "loc_FF8CCE04:\n"
944 " B loc_FF8CCE8C\n"
945 "loc_FF8CCE08:\n"
946 " B loc_FF8CCE94\n"
947 "loc_FF8CCE0C:\n"
948 " B loc_FF8CCE94\n"
949 "loc_FF8CCE10:\n"
950 " B loc_FF8CCEAC\n"
951 "loc_FF8CCE14:\n"
952 " B loc_FF8CCEAC\n"
953 "loc_FF8CCE18:\n"
954 " B loc_FF8CD028\n"
955 "loc_FF8CCE1C:\n"
956 " B loc_FF8CD030\n"
957 "loc_FF8CCE20:\n"
958 " B loc_FF8CD030\n"
959 "loc_FF8CCE24:\n"
960 " B loc_FF8CD030\n"
961 "loc_FF8CCE28:\n"
962 " B loc_FF8CD030\n"
963 "loc_FF8CCE2C:\n"
964 " B loc_FF8CD038\n"
965 "loc_FF8CCE30:\n"
966 " B loc_FF8CD03C\n"
967 "loc_FF8CCE34:\n"
968 " B loc_FF8CD03C\n"
969 "loc_FF8CCE38:\n"
970 " B loc_FF8CD03C\n"
971 "loc_FF8CCE3C:\n"
972 " B loc_FF8CD03C\n"
973 "loc_FF8CCE40:\n"
974 " B loc_FF8CD03C\n"
975 "loc_FF8CCE44:\n"
976 " B loc_FF8CD03C\n"
977 "loc_FF8CCE48:\n"
978 " B loc_FF8CCE9C\n"
979 "loc_FF8CCE4C:\n"
980 " B loc_FF8CCEA4\n"
981 "loc_FF8CCE50:\n"
982 " B loc_FF8CCEA4\n"
983 "loc_FF8CCE54:\n"
984 " B loc_FF8CCEB8\n"
985 "loc_FF8CCE58:\n"
986 " B loc_FF8CCEB8\n"
987 "loc_FF8CCE5C:\n"
988 " B loc_FF8CCEC0\n"
989 "loc_FF8CCE60:\n"
990 " B loc_FF8CCEF8\n"
991 "loc_FF8CCE64:\n"
992 " B loc_FF8CCFA0\n"
993 "loc_FF8CCE68:\n"
994 " B loc_FF8CCFD8\n"
995 "loc_FF8CCE6C:\n"
996 " B loc_FF8CD010\n"
997 "loc_FF8CCE70:\n"
998 " B loc_FF8CD010\n"
999 "loc_FF8CCE74:\n"
1000 " B loc_FF8CD03C\n"
1001 "loc_FF8CCE78:\n"
1002 " B loc_FF8CD03C\n"
1003 "loc_FF8CCE7C:\n"
1004 " B loc_FF8CD018\n"
1005 "loc_FF8CCE80:\n"
1006 " B loc_FF8CD020\n"
1007 "loc_FF8CCE84:\n"
1008 " BL sub_FF8C8D88\n"
1009 " B loc_FF8CD03C\n"
1010 "loc_FF8CCE8C:\n"
1011 " BL sub_FF8C9078\n"
1012 " B loc_FF8CD03C\n"
1013 "loc_FF8CCE94:\n"
1014 " BL sub_FF8C92E0\n"
1015 " B loc_FF8CD03C\n"
1016 "loc_FF8CCE9C:\n"
1017 " BL sub_FF8C9594\n"
1018 " B loc_FF8CD03C\n"
1019 "loc_FF8CCEA4:\n"
1020 " BL sub_FF8C97AC\n"
1021 " B loc_FF8CD03C\n"
1022 "loc_FF8CCEAC:\n"
1023
1024 " BL sub_FF8C9AD0_my\n"
1025
1026 " MOV R4, #0\n"
1027 " B loc_FF8CD03C\n"
1028 "loc_FF8CCEB8:\n"
1029 " BL sub_FF8C9C18\n"
1030 " B loc_FF8CD03C\n"
1031 "loc_FF8CCEC0:\n"
1032 " LDRH R1, [R0,#4]\n"
1033 " STRH R1, [SP,#0x10]\n"
1034 " LDRH R1, [R5,#2]\n"
1035 " STRH R1, [SP,#0x12]\n"
1036 " LDRH R1, [R5,#4]\n"
1037 " STRH R1, [SP,#0x14]\n"
1038 " LDRH R1, [R5,#6]\n"
1039 " STRH R1, [SP,#0x16]\n"
1040 " LDRH R1, [R0,#0xC]\n"
1041 " STRH R1, [SP,#0x18]\n"
1042 " LDRH R1, [R5,#0xA]\n"
1043 " STRH R1, [SP,#0x1A]\n"
1044 " BL sub_FF8CDF38\n"
1045 " B loc_FF8CD03C\n"
1046 "loc_FF8CCEF8:\n"
1047 " LDRH R1, [R0,#4]\n"
1048 " STRH R1, [SP,#0x10]\n"
1049 " LDRH R1, [R5,#2]\n"
1050 " STRH R1, [SP,#0x12]\n"
1051 " LDRH R1, [R5,#4]\n"
1052 " STRH R1, [SP,#0x14]\n"
1053 " LDRH R1, [R5,#6]\n"
1054 " STRH R1, [SP,#0x16]\n"
1055 " LDRH R1, [R0,#8]\n"
1056 " STRH R1, [SP,#0x18]\n"
1057 " LDRH R1, [R5,#0xA]\n"
1058 " STRH R1, [SP,#0x1A]\n"
1059 " BL sub_FF8CE040\n"
1060 " B loc_FF8CD03C\n"
1061
1062
1063 "loc_FF8CCFA0:\n"
1064 " LDRH R1, [R5]\n"
1065 " STRH R1, [SP,#0x10]\n"
1066 " LDRH R1, [R5,#6]\n"
1067 " STRH R1, [SP,#0x12]\n"
1068 " LDRH R1, [R5,#4]\n"
1069 " STRH R1, [SP,#0x14]\n"
1070 " LDRH R1, [R5,#6]\n"
1071 " STRH R1, [SP,#0x16]\n"
1072 " LDRH R1, [R0,#8]\n"
1073 " STRH R1, [SP,#0x18]\n"
1074 " LDRH R1, [R5,#0xA]\n"
1075 " STRH R1, [SP,#0x1A]\n"
1076 " BL sub_FF8CE0F4\n"
1077 " B loc_FF8CD03C\n"
1078 "loc_FF8CCFD8:\n"
1079 " LDRH R1, [R5]\n"
1080 " STRH R1, [SP,#0x10]\n"
1081 " LDRH R1, [R5,#2]\n"
1082 " STRH R1, [SP,#0x12]\n"
1083 " LDRH R1, [R5,#4]\n"
1084 " STRH R1, [SP,#0x14]\n"
1085 " LDRH R1, [R5,#6]\n"
1086 " STRH R1, [SP,#0x16]\n"
1087 " LDRH R1, [R0,#0xC]\n"
1088 " STRH R1, [SP,#0x18]\n"
1089 " LDRH R1, [R5,#0xA]\n"
1090 " STRH R1, [SP,#0x1A]\n"
1091 " BL sub_FF8CE19C\n"
1092 " B loc_FF8CD03C\n"
1093
1094 "loc_FF8CD010:\n"
1095 " BL sub_FF8CA00C\n"
1096 " B loc_FF8CD03C\n"
1097 "loc_FF8CD018:\n"
1098 " BL sub_FF8CA784\n"
1099 " B loc_FF8CD03C\n"
1100 "loc_FF8CD020:\n"
1101 " BL sub_FF8CAA20\n"
1102 " B loc_FF8CD03C\n"
1103 "loc_FF8CD028:\n"
1104 " BL sub_FF8CAC00\n"
1105 " B loc_FF8CD03C\n"
1106 "loc_FF8CD030:\n"
1107 " BL sub_FF8CADBC\n"
1108 " B loc_FF8CD03C\n"
1109 "loc_FF8CD038:\n"
1110 " BL sub_FF8CAFB8\n"
1111 "loc_FF8CD03C:\n"
1112 " LDR R0, [SP,#0x1C]\n"
1113 " LDR R1, [R0,#0x7C]\n"
1114 " LDR R3, [R0,#0x8C]\n"
1115 " LDR R2, [R0,#0x90]\n"
1116 " ADD R0, R0, #4\n"
1117 " BLX R3\n"
1118 " CMP R4, #1\n"
1119 " BNE loc_FF8CD0A4\n"
1120 "loc_FF8CD05C:\n"
1121 " LDR R0, [SP,#0x1C]\n"
1122 " MOV R2, #0xC\n"
1123 " LDR R1, [R0,#0x7C]\n"
1124 " ADD R1, R1, R1,LSL#1\n"
1125 " ADD R0, R0, R1,LSL#2\n"
1126 " SUB R4, R0, #8\n"
1127 " LDR R0, =0x58054\n"
1128 " ADD R1, SP, #0x10\n"
1129 " BL sub_FFB872F4\n"
1130 " LDR R0, =0x58060\n"
1131 " MOV R2, #0xC\n"
1132 " ADD R1, SP, #0x10\n"
1133 " BL sub_FFB872F4\n"
1134 " LDR R0, =0x5806C\n"
1135 " MOV R2, #0xC\n"
1136 " MOV R1, R4\n"
1137 " BL sub_FFB872F4\n"
1138 " B loc_FF8CD120\n"
1139 "loc_FF8CD0A4:\n"
1140 " LDR R0, [SP,#0x1C]\n"
1141 " MOV R3, #1\n"
1142 " LDR R0, [R0]\n"
1143 " CMP R0, #0xB\n"
1144 " BNE loc_FF8CD0EC\n"
1145 " MOV R2, #0\n"
1146 " STRD R2, [SP]\n"
1147 " MOV R2, #1\n"
1148 " MOV R1, #1\n"
1149 " MOV R0, #0\n"
1150 " BL sub_FF8C8B68\n"
1151 " MOV R3, #1\n"
1152 " MOV R2, #0\n"
1153 " STRD R2, [SP]\n"
1154 " MOV R2, #1\n"
1155 " MOV R1, #1\n"
1156 " MOV R0, #0\n"
1157 " B loc_FF8CD11C\n"
1158 "loc_FF8CD0EC:\n"
1159 " MOV R2, #1\n"
1160 " STRD R2, [SP]\n"
1161 " MOV R3, #1\n"
1162 " MOV R1, #1\n"
1163 " MOV R0, #1\n"
1164 " BL sub_FF8C8B68\n"
1165 " MOV R3, #1\n"
1166 " MOV R2, #1\n"
1167 " MOV R1, #1\n"
1168 " MOV R0, #1\n"
1169 " STR R3, [SP]\n"
1170 " STR R3, [SP,#4]\n"
1171 "loc_FF8CD11C:\n"
1172 " BL sub_FF8C8CD0\n"
1173 "loc_FF8CD120:\n"
1174 " LDR R0, [SP,#0x1C]\n"
1175 " BL sub_FF8CDE38\n"
1176 " B loc_FF8CCAA8\n"
1177 );
1178 }
1179
1180 void __attribute__((naked,noinline)) sub_FF8C9AD0_my() {
1181 asm volatile (
1182 " STMFD SP!, {R4-R8,LR}\n"
1183 " LDR R7, =0x4C6C\n"
1184 " MOV R4, R0\n"
1185 " LDR R0, [R7,#0x1C]\n"
1186 " MOV R1, #0x3E\n"
1187 " BL sub_FF88DBC0\n"
1188 " LDRSH R0, [R4,#4]\n"
1189 " MOV R2, #0\n"
1190 " MOV R1, #0\n"
1191 " BL sub_FF8C88CC\n"
1192 " MOV R5, R0\n"
1193 " LDRSH R0, [R4,#6]\n"
1194 " BL sub_FF8C89DC\n"
1195 " LDRSH R0, [R4,#8]\n"
1196 " BL sub_FF8C8A34\n"
1197 " LDRSH R0, [R4,#0xA]\n"
1198 " BL sub_FF8C8A8C\n"
1199 " LDRSH R0, [R4,#0xC]\n"
1200 " MOV R1, #0\n"
1201 " BL sub_FF8C8AE4\n"
1202 " MOV R6, R0\n"
1203 " LDRSH R0, [R4,#0xE]\n"
1204 " BL sub_FF8CDED8\n"
1205 " LDR R0, [R4]\n"
1206 " LDR R8, =0x5806C\n"
1207 " CMP R0, #0xB\n"
1208 " MOVEQ R5, #0\n"
1209 " MOVEQ R6, #0\n"
1210 " BEQ loc_FF8C9B6C\n"
1211 " CMP R5, #1\n"
1212 " BNE loc_FF8C9B6C\n"
1213 " LDRSH R0, [R4,#4]\n"
1214 " LDR R1, =0xFF8C8838\n"
1215 " MOV R2, #2\n"
1216 " BL sub_FF974780\n"
1217 " STRH R0, [R4,#4]\n"
1218 " MOV R0, #0\n"
1219 " STR R0, [R7,#0x28]\n"
1220 " B loc_FF8C9B74\n"
1221 "loc_FF8C9B6C:\n"
1222 " LDRH R0, [R8]\n"
1223 " STRH R0, [R4,#4]\n"
1224 "loc_FF8C9B74:\n"
1225 " CMP R6, #1\n"
1226 " LDRNEH R0, [R8,#8]\n"
1227 " BNE loc_FF8C9B90\n"
1228 " LDRSH R0, [R4,#0xC]\n"
1229 " LDR R1, =0xFF8C88BC\n"
1230 " MOV R2, #0x20\n"
1231 " BL sub_FF8CDEF4\n"
1232 "loc_FF8C9B90:\n"
1233 " STRH R0, [R4,#0xC]\n"
1234 " LDRSH R0, [R4,#6]\n"
1235
1236 " BL sub_FF8BA3A4_my\n"
1237
1238 "B sub_FF8C9B9C\n"
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276 );
1277 }
1278
1279
1280
1281 void __attribute__((naked,noinline)) sub_FF8BA3A4_my() {
1282 asm volatile (
1283 " STMFD SP!, {R4-R6,LR}\n"
1284 " LDR R5, =0x4934\n"
1285 " MOV R4, R0\n"
1286 " LDR R0, [R5,#4]\n"
1287 " CMP R0, #1\n"
1288 " LDRNE R1, =0x146\n"
1289 " LDRNE R0, =0xFF8BA1A8\n"
1290 " BLNE sub_FF81EB78\n"
1291 " CMN R4, #0xC00\n"
1292 " LDREQSH R4, [R5,#2]\n"
1293 " CMN R4, #0xC00\n"
1294 " MOVEQ R1, #0x14C\n"
1295 " LDREQ R0, =0xFF8BA1A8\n"
1296 " STRH R4, [R5,#2]\n"
1297 " BLEQ sub_FF81EB78\n"
1298 " MOV R0, R4\n"
1299 " BL apex2us\n"
1300 " MOV R4, R0\n"
1301 " BL sub_FF90667C\n"
1302 " MOV R0, R4\n"
1303 " BL sub_FF910AF8\n"
1304 " TST R0, #1\n"
1305 " LDRNE R1, =0x151\n"
1306 " LDMNEFD SP!, {R4-R6,LR}\n"
1307 " LDRNE R0, =0xFF8BA1A8\n"
1308 " BNE sub_FF81EB78\n"
1309 " LDMFD SP!, {R4-R6,PC}\n"
1310
1311 );
1312 }