This source file includes following definitions.
- hangdebug
- blinko
- capt_seq_task
- sub_FF962364_my
- sub_FF87C648_my
- exp_drv_task
- sub_FF8BEC40_my
- sub_FF8B152C_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4 #include "conf.h"
5
6 static long *nrflag = (long*)0x7910;
7
8 #include "../../../generic/capt_seq.c"
9
10 void __attribute__((naked,noinline)) hangdebug() {
11 debug_led(1);
12 while(1);
13 }
14
15 void __attribute__((naked,noinline)) blinko(void) {
16 int i;
17
18 *((volatile int *) 0xC02200B6) = 0x46;
19 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); }
20
21 *((volatile int *) 0xC02200B6) = 0x44;
22 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); }
23
24 *((volatile int *) 0xC02200B6) = 0x46;
25 for (i=0; i<0x200000; i++) { asm volatile ( "nop\n" ); }
26
27 *((volatile int *) 0xC02200B6) = 0x44;
28 for (i=0; i<0x900000; i++) { asm volatile ( "nop\n" ); }
29
30 }
31
32 void __attribute__((naked,noinline)) capt_seq_task() {
33
34 asm volatile (
35
36 "STMFD SP!, {R3-R9,LR}\n"
37 "LDR R6, =0x2D50\n"
38 "LDR R4, =0x3894C\n"
39 "MOV R9, #1\n"
40 "MOV R7, #0\n"
41
42 "loc_FF87CD54:\n"
43 "LDR R0, [R6,#4]\n"
44 "MOV R2, #0\n"
45 "MOV R1, SP\n"
46 "BL sub_FF838318\n"
47 "TST R0, #1\n"
48 "BEQ loc_FF87CD80\n"
49 "LDR R1, =0x5B4\n"
50 "LDR R0, =0xFF87C518\n"
51 "BL sub_FF81E88C\n"
52 "BL sub_FF81E844\n"
53 "LDMFD SP!, {R3-R9,PC}\n"
54
55
56 "loc_FF87CD80:\n"
57 "LDR R0, [SP]\n"
58 "LDR R1, [R0]\n"
59 "CMP R1, #0x22\n"
60 "ADDLS PC, PC, R1,LSL#2\n"
61 "B loc_FF87D084\n"
62
63 "loc_FF87CD94: B loc_FF87CE20\n"
64 "loc_FF87CD98: B loc_FF87CE8C\n"
65 "loc_FF87CD9C: B loc_FF87CEC8\n"
66 "loc_FF87CDA0: B loc_FF87CEE8\n"
67 "loc_FF87CDA4: B loc_FF87CEE0\n"
68 "loc_FF87CDA8: B loc_FF87CEF0\n"
69 "loc_FF87CDAC: B loc_FF87CEF8\n"
70 "loc_FF87CDB0: B loc_FF87CF00\n"
71 "loc_FF87CDB4: B loc_FF87CF58\n"
72 "loc_FF87CDB8: B loc_FF87CF80\n"
73 "loc_FF87CDBC: B loc_FF87CF64\n"
74 "loc_FF87CDC0: B loc_FF87CF70\n"
75 "loc_FF87CDC4: B loc_FF87CF78\n"
76 "loc_FF87CDC8: B loc_FF87CF88\n"
77 "loc_FF87CDCC: B loc_FF87CF90\n"
78 "loc_FF87CDD0: B loc_FF87CF98\n"
79 "loc_FF87CDD4: B loc_FF87CFA0\n"
80 "loc_FF87CDD8: B loc_FF87CFA8\n"
81 "loc_FF87CDDC: B loc_FF87CFB0\n"
82 "loc_FF87CDE0: B loc_FF87CFB8\n"
83 "loc_FF87CDE4: B loc_FF87CFC0\n"
84 "loc_FF87CDE8: B loc_FF87CFC8\n"
85 "loc_FF87CDEC: B loc_FF87CFD0\n"
86 "loc_FF87CDF0: B loc_FF87CFDC\n"
87 "loc_FF87CDF4: B loc_FF87CFE4\n"
88 "loc_FF87CDF8: B loc_FF87CFF0\n"
89 "loc_FF87CDFC: B loc_FF87CFF8\n"
90 "loc_FF87CE00: B loc_FF87D028\n"
91 "loc_FF87CE04: B loc_FF87D030\n"
92 "loc_FF87CE08: B loc_FF87D038\n"
93 "loc_FF87CE0C: B loc_FF87D040\n"
94 "loc_FF87CE10: B loc_FF87D048\n"
95 "loc_FF87CE14: B loc_FF87D050\n"
96 "loc_FF87CE18: B loc_FF87D05C\n"
97 "loc_FF87CE1C: B loc_FF87D090\n"
98
99 "loc_FF87CE20:\n"
100 "BL sub_FF87D6A8\n"
101 "BL shooting_expo_param_override\n"
102 "BL sub_FF87A4E0\n"
103
104
105 "MOV R0, #0\n"
106 "STR R0, [R4,#0x24]\n"
107
108 "LDR R0, [R4,#0x24]\n"
109 "CMP R0, #0\n"
110 "BEQ loc_FF87D090\n"
111 "BL sub_FF87C1F0\n"
112 "MOV R5, R0\n"
113 "LDR R0, [R4,#0x24]\n"
114 "CMP R0, #0\n"
115 "BEQ loc_FF87CE68\n"
116 "MOV R0, #0xC\n"
117 "BL sub_FF882154\n"
118 "TST R0, #1\n"
119 "STRNE R9, [R6,#0x10]\n"
120 "LDRNE R0, [R5,#8]\n"
121 "ORRNE R0, R0, #0x40000000\n"
122 "STRNE R0, [R5,#8]\n"
123 "BNE loc_FF87D090\n"
124 "loc_FF87CE68:\n"
125 "MOV R0, R5\n"
126 "BL sub_FF961AC8\n"
127 "MOV R0, R5\n"
128 "BL sub_FF87C5D0\n"
129 "MOV R0, R5\n"
130 "BL sub_FF962364_my\n"
131
132 "BL capt_seq_hook_raw_here\n"
133 "TST R0, #1\n"
134 "STRNE R9, [R6,#0x10]\n"
135 "B loc_FF87D090\n"
136 "loc_FF87CE8C:\n"
137 "LDR R0, [R4,#0x24]\n"
138 "CMP R0, #0\n"
139 "BNE loc_FF87CEB8\n"
140 "MOV R0, #0xC\n"
141 "BL sub_FF882154\n"
142 "TST R0, #1\n"
143 "LDRNE R0, [SP]\n"
144 "MOVNE R1, #1\n"
145 "LDRNE R2, [R0,#0xC]\n"
146 "MOVNE R0, #1\n"
147 "BNE loc_FF87CF50\n"
148 "loc_FF87CEB8:\n"
149 "LDR R0, [SP]\n"
150
151 "BL sub_FF87C648_my\n"
152 "loc_FF87CEC0:\n"
153 "STR R7, [R4,#0x24]\n"
154 "B loc_FF87D090\n"
155 "loc_FF87CEC8:\n"
156 "MOV R0, #1\n"
157 "BL sub_FF87D958\n"
158 "LDR R0, [R4,#0xC]\n"
159 "CMP R0, #0\n"
160 "BLNE sub_FF87E444\n"
161 "B loc_FF87D090\n"
162 "loc_FF87CEE0:\n"
163 "BL sub_FF87D358\n"
164 "B loc_FF87CEC0\n"
165 "loc_FF87CEE8:\n"
166 "BL sub_FF87D688\n"
167 "B loc_FF87CEC0\n"
168 "loc_FF87CEF0:\n"
169 "BL sub_FF87D690\n"
170 "B loc_FF87D090\n"
171 "loc_FF87CEF8:\n"
172 "BL sub_FF87D848\n"
173 "B loc_FF87CF5C\n"
174 "loc_FF87CF00:\n"
175 "LDR R5, [R0,#0xC]\n"
176 "BL sub_FF87D698\n"
177 "MOV R0, R5\n"
178 "BL sub_FF960B0C\n"
179 "TST R0, #1\n"
180 "MOV R8, R0\n"
181 "BNE loc_FF87CF40\n"
182 "BL sub_FF88F46C\n"
183 "STR R0, [R5,#0x18]\n"
184 "MOV R0, R5\n"
185 "BL sub_FF96227C\n"
186 "MOV R0, R5\n"
187 "BL sub_FF962674\n"
188 "MOV R8, R0\n"
189 "LDR R0, [R5,#0x18]\n"
190 "BL sub_FF88F670\n"
191 "loc_FF87CF40:\n"
192 "BL sub_FF87D688\n"
193 "MOV R2, R5\n"
194 "MOV R1, #9\n"
195 "MOV R0, R8\n"
196 "loc_FF87CF50:\n"
197 "BL sub_FF87AA74\n"
198 "B loc_FF87D090\n"
199 "loc_FF87CF58:\n"
200 "BL sub_FF87D8D8\n"
201 "loc_FF87CF5C:\n"
202 "BL sub_FF87A4E0\n"
203 "B loc_FF87D090\n"
204 "loc_FF87CF64:\n"
205 "LDR R0, [R4,#0x54]\n"
206 "BL sub_FF87DF5C\n"
207 "B loc_FF87D090\n"
208 "loc_FF87CF70:\n"
209 "BL sub_FF87E204\n"
210 "B loc_FF87D090\n"
211 "loc_FF87CF78:\n"
212 "BL sub_FF87E294\n"
213 "B loc_FF87D090\n"
214 "loc_FF87CF80:\n"
215 "BL sub_FF87D688\n"
216 "B loc_FF87D090\n"
217 "loc_FF87CF88:\n"
218 "BL sub_FF960D38\n"
219 "B loc_FF87D090\n"
220 "loc_FF87CF90:\n"
221 "BL sub_FF960F90\n"
222 "B loc_FF87D090\n"
223 "loc_FF87CF98:\n"
224 "BL sub_FF961030\n"
225 "B loc_FF87D090\n"
226 "loc_FF87CFA0:\n"
227 "BL sub_FF961164\n"
228 "B loc_FF87D090\n"
229 "loc_FF87CFA8:\n"
230 "BL sub_FF961234\n"
231 "B loc_FF87D090\n"
232 "loc_FF87CFB0:\n"
233 "MOV R0, #0\n"
234 "B loc_FF87CFD4\n"
235 "loc_FF87CFB8:\n"
236 "BL sub_FF96180C\n"
237 "B loc_FF87D090\n"
238 "loc_FF87CFC0:\n"
239 "BL sub_FF96189C\n"
240 "B loc_FF87D090\n"
241 "loc_FF87CFC8:\n"
242 "BL sub_FF96195C\n"
243 "B loc_FF87D090\n"
244 "loc_FF87CFD0:\n"
245 "MOV R0, #1\n"
246 "loc_FF87CFD4:\n"
247 "BL sub_FF9616CC\n"
248 "B loc_FF87D090\n"
249 "loc_FF87CFDC:\n"
250 "BL sub_FF87DB74\n"
251 "B loc_FF87D090\n"
252 "loc_FF87CFE4:\n"
253 "BL sub_FF87DC14\n"
254 "BL sub_FF87D1B8\n"
255 "B loc_FF87D090\n"
256 "loc_FF87CFF0:\n"
257 "BL sub_FF9614F4\n"
258 "B loc_FF87D090\n"
259 "loc_FF87CFF8:\n"
260 "MOV R2, #2\n"
261 "ADD R1, R4, #0x6A\n"
262 "MOV R0, #0x6F\n"
263 "BL sub_FF88F2DC\n"
264 "TST R0, #1\n"
265 "LDRNE R1, =0x6AB\n"
266 "LDRNE R0, =0xFF87C518\n"
267 "BLNE sub_FF81E88C\n"
268 "LDRH R0, [R4,#0x6A]\n"
269 "CMP R0, #1\n"
270 "BLEQ sub_FF9614E8\n"
271 "B loc_FF87D090\n"
272 "loc_FF87D028:\n"
273 "BL sub_FF961620\n"
274 "B loc_FF87D090\n"
275 "loc_FF87D030:\n"
276 "BL sub_FF87C4A8\n"
277 "B loc_FF87D090\n"
278 "loc_FF87D038:\n"
279 "BL sub_FF835E64\n"
280 "B loc_FF87D090\n"
281 "loc_FF87D040:\n"
282 "BL sub_FF880584\n"
283 "B loc_FF87D090\n"
284 "loc_FF87D048:\n"
285 "BL sub_FF8805EC\n"
286 "B loc_FF87D090\n"
287 "loc_FF87D050:\n"
288 "BL sub_FF880648\n"
289 "BL sub_FF880608\n"
290 "B loc_FF87D090\n"
291 "loc_FF87D05C:\n"
292 "MOV R0, #1\n"
293 "BL sub_FF962EBC\n"
294 "MOV R0, #1\n"
295 "BL sub_FF962FCC\n"
296 "LDRH R0, [R4,#0xA8]\n"
297 "CMP R0, #4\n"
298 "BNE loc_FF87D090\n"
299 "BL sub_FF8805EC\n"
300 "BL sub_FF880A34\n"
301 "B loc_FF87D090\n"
302 "loc_FF87D084:\n"
303 "LDR R1, =0x709\n"
304 "LDR R0, =0xFF87C518\n"
305 "BL sub_FF81E88C\n"
306 "loc_FF87D090:\n"
307 "LDR R0, [SP]\n"
308 "LDR R1, [R0,#4]\n"
309 "LDR R0, [R6]\n"
310 "BL sub_FF88712C\n"
311 "LDR R5, [SP]\n"
312 "LDR R0, [R5,#8]\n"
313 "CMP R0, #0\n"
314 "LDREQ R1, =0x132\n"
315 "LDREQ R0, =0xFF87C518\n"
316 "BLEQ sub_FF81E88C\n"
317 "STR R7, [R5,#8]\n"
318 "B loc_FF87CD54\n"
319
320
321 );
322 }
323
324
325
326
327
328 void __attribute__((naked,noinline)) sub_FF962364_my(){
329
330 asm volatile(
331 "STMFD SP!, {R0-R8,LR}\n"
332 "MOV R4, R0\n"
333 "BL sub_FF9631B8\n"
334 "LDR R1, =0xFFFFFFFF\n"
335 "BL sub_FF887160\n"
336 "LDR R5, =0x7910\n"
337 "LDR R0, [R5,#0xC]\n"
338 "CMP R0, #0\n"
339 "BNE loc_FF9623B4\n"
340 "MOV R1, #1\n"
341 "MOV R0, #0\n"
342 "BL sub_FF838B60\n"
343 "STR R0, [R5,#0xC]\n"
344 "MOV R3, #0\n"
345 "STR R3, [SP]\n"
346 "LDR R3, =0xFF961CF0\n"
347 "LDR R0, =0xFF9625DC\n"
348 "MOV R2, #0x400\n"
349 "MOV R1, #0x17\n"
350 "BL sub_FF838B2C\n"
351 "loc_FF9623B4:\n"
352 "MOV R2, #4\n"
353 "ADD R1, SP, #8\n"
354 "MOV R0, #0x8A\n"
355 "BL sub_FF88F2DC\n"
356 "TST R0, #1\n"
357 "LDRNE R1, =0x3C5\n"
358 "LDRNE R0, =0xFF961F88\n"
359 "BLNE sub_FF81E88C\n"
360 "LDR R8, =0x38A20\n"
361 "LDR R7, =0x3894C\n"
362 "LDRSH R1, [R8,#0xE]\n"
363 "LDR R0, [R7,#0x9C]\n"
364 "BL sub_FF925240\n"
365 "BL sub_FF8626D0\n"
366 "LDR R3, =0x7918\n"
367 "STRH R0, [R4,#0xA4]\n"
368 "SUB R2, R3, #4\n"
369 "STRD R2, [SP]\n"
370 "MOV R1, R0\n"
371 "LDRH R0, [R7,#0x64]\n"
372 "LDRSH R2, [R8,#0xC]\n"
373 "SUB R3, R3, #8\n"
374 "BL sub_FF96481C\n"
375 "BL wait_until_remote_button_is_released\n"
376 "BL capt_seq_hook_set_nr\n"
377 "B sub_FF962410\n"
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 void __attribute__((naked,noinline)) sub_FF87C648_my(){
406 asm volatile(
407 "STMFD SP!, {R3-R9,LR}\n"
408 "LDR R4, [R0,#0xC]\n"
409 "LDR R5, =0x3894C\n"
410 "LDR R0, [R4,#8]\n"
411 "LDR R6, =0x820A\n"
412 "ORR R0, R0, #1\n"
413 "STR R0, [R4,#8]\n"
414 "LDRH R0, [R5]\n"
415 "LDR R8, =0x2D50\n"
416 "MOV R7, #0\n"
417 "CMP R0, R6\n"
418 "BEQ loc_FF87C6EC\n"
419 "LDRH R0, [R5,#0xA6]\n"
420 "CMP R0, #3\n"
421 "BEQ loc_FF87C74C\n"
422 "LDR R0, [R4,#0xC]\n"
423 "CMP R0, #1\n"
424 "BLS loc_FF87C6F8\n"
425 "LDRH R0, [R5,#0xA4]\n"
426 "CMP R0, #0\n"
427 "BNE loc_FF87C74C\n"
428 "LDRH R0, [R5,#0xA0]\n"
429 "CMP R0, #2\n"
430 "BNE loc_FF87C704\n"
431 "BL sub_FF87DCC4\n"
432 "LDRH R0, [R5]\n"
433 "CMP R0, R6\n"
434 "BEQ loc_FF87C6EC\n"
435 "LDRH R0, [R5,#0xA6]\n"
436 "CMP R0, #3\n"
437 "BEQ loc_FF87C74C\n"
438 "LDR R0, [R4,#0xC]\n"
439 "CMP R0, #1\n"
440 "BLS loc_FF87C6F8\n"
441 "LDRH R0, [R5,#0xA4]\n"
442 "CMP R0, #0\n"
443 "BNE loc_FF87C74C\n"
444 "LDRH R0, [R5,#0xA0]\n"
445 "CMP R0, #2\n"
446 "BEQ loc_FF87C730\n"
447 "B loc_FF87C704\n"
448 "loc_FF87C6EC:\n"
449 "LDRH R0, [R5,#0xA6]\n"
450 "CMP R0, #3\n"
451 "BEQ loc_FF87C74C\n"
452 "loc_FF87C6F8:\n"
453 "LDRH R0, [R5,#0xA4]\n"
454 "CMP R0, #0\n"
455 "BNE loc_FF87C74C\n"
456 "loc_FF87C704:\n"
457 "LDRH R0, [R5,#0xA0]\n"
458 "CMP R0, #1\n"
459 "BNE loc_FF87C74C\n"
460 "LDRH R0, [R5]\n"
461 "CMP R0, R6\n"
462 "LDRNE R0, [R4,#0xC]\n"
463 "CMPNE R0, #1\n"
464 "BLS loc_FF87C74C\n"
465 "LDR R0, [R4,#0x10]\n"
466 "CMP R0, #1\n"
467 "BNE loc_FF87C74C\n"
468 "loc_FF87C730:\n"
469 "LDR R3, =0x269\n"
470 "LDR R2, =0xEA60\n"
471 "STR R3, [SP]\n"
472 "LDR R0, [R8]\n"
473 "LDR R3, =0xFF87C518\n"
474 "MOV R1, #0x40000000\n"
475 "BL sub_FF8824D4\n"
476 "loc_FF87C74C:\n"
477 "BL sub_FF87C4A8\n"
478 "LDR R0, [R5,#0x24]\n"
479 "CMP R0, #0\n"
480 "MOVEQ R0, #2\n"
481 "BLEQ sub_FF876154\n"
482 "BL sub_FF87D698\n"
483 "LDR R0, [R5,#0x24]\n"
484 "CMP R0, #0\n"
485 "BNE loc_FF87C818\n"
486 "MOV R0, #0\n"
487 "BL sub_FF962EBC\n"
488 "MOV R0, #0\n"
489 "BL sub_FF962FCC\n"
490 "MOV R0, R4\n"
491 "BL sub_FF961AC8\n"
492 "MOV R0, R4\n"
493 "BL sub_FF87DAF0\n"
494 "MOV R0, R4\n"
495 "BL sub_FF9606C0\n"
496 "CMP R0, #0\n"
497 "BEQ loc_FF87C7CC\n"
498 "BL sub_FF962EFC\n"
499 "BL sub_FF963010\n"
500 "BL sub_FF963060\n"
501 "MOV R0, R4\n"
502 "BL sub_FF960838\n"
503 "TST R0, #1\n"
504 "MOVNE R2, R4\n"
505 "LDMNEFD SP!, {R3-R9,LR}\n"
506 "MOVNE R1, #1\n"
507 "BNE sub_FF87AA74\n"
508 "B loc_FF87C7F4\n"
509 "loc_FF87C7CC:\n"
510 "LDR R0, [R5,#0xC]\n"
511 "CMP R0, #0\n"
512 "BEQ loc_FF87C7E0\n"
513 "BL sub_FF87E3C8\n"
514 "BL sub_FF877A24\n"
515 "loc_FF87C7E0:\n"
516 "MOV R0, R4\n"
517 "BL sub_FF9607A4\n"
518 "BL sub_FF962EFC\n"
519 "BL sub_FF963010\n"
520 "BL sub_FF963060\n"
521 "loc_FF87C7F4:\n"
522 "MOV R0, R4\n"
523 "BL sub_FF87C5D0\n"
524 "MOV R0, R4\n"
525 "BL sub_FF96227C\n"
526 "BL sub_FF962CF4\n"
527 "MOV R0, R4\n"
528 "BL sub_FF962364_my\n"
529 "MOV R7, R0\n"
530 "BL capt_seq_hook_raw_here\n"
531 "B loc_FF87C824\n"
532 "loc_FF87C818:\n"
533 "LDR R0, [R8,#0x10]\n"
534 "CMP R0, #0\n"
535 "MOVNE R7, #0x1D\n"
536 "loc_FF87C824:\n"
537 "BL sub_FF8805EC\n"
538 "BL sub_FF880634\n"
539 "BL sub_FF880674\n"
540 "MOV R2, R4\n"
541 "MOV R1, #1\n"
542 "MOV R0, R7\n"
543 "BL sub_FF87AA74\n"
544 "BL sub_FF962618\n"
545 "CMP R0, #0\n"
546 "LDRNE R0, [R4,#8]\n"
547 "ORRNE R0, R0, #0x2000\n"
548 "STRNE R0, [R4,#8]\n"
549 "LDR R0, [R4,#0x1C]\n"
550 "CMP R0, #0\n"
551 "BLNE sub_FF877A3C\n"
552 "LDRH R0, [R5,#0xA6]\n"
553 "CMP R0, #3\n"
554 "BEQ locret_FF87C888\n"
555 "LDRH R0, [R5,#0xA4]\n"
556 "CMP R0, #0\n"
557 "LDREQH R0, [R5,#0xA0]\n"
558 "CMPEQ R0, #2\n"
559 "MOVEQ R0, R4\n"
560 "LDMEQFD SP!, {R3-R9,LR}\n"
561 "BEQ sub_FF87DD18\n"
562 "locret_FF87C888:\n"
563 "LDMFD SP!, {R3-R9,PC}\n"
564
565 );
566 }
567
568
569
570
571
572 void __attribute__((naked,noinline)) exp_drv_task(){
573
574
575
576 asm volatile(
577 "STMFD SP!, {R4-R8,LR}\n"
578 "SUB SP, SP, #0x20\n"
579 "LDR R8, =0xBB8\n"
580 "LDR R7, =0x4658\n"
581 "LDR R5, =0x3D90C\n"
582 "MOV R0, #0\n"
583 "ADD R6, SP, #0x10\n"
584 "STR R0, [SP,#0xC]\n"
585 "loc_FF8C1450:\n"
586 "LDR R0, [R7,#0x20]\n"
587 "MOV R2, #0\n"
588 "ADD R1, SP, #0x1C\n"
589 "BL sub_FF838318\n"
590 "LDR R0, [SP,#0xC]\n"
591 "CMP R0, #1\n"
592 "BNE loc_FF8C149C\n"
593 "LDR R0, [SP,#0x1C]\n"
594 "LDR R0, [R0]\n"
595 "CMP R0, #0x13\n"
596 "CMPNE R0, #0x14\n"
597 "CMPNE R0, #0x15\n"
598 "CMPNE R0, #0x16\n"
599 "BEQ loc_FF8C15B8\n"
600 "CMP R0, #0x28\n"
601 "BEQ loc_FF8C1590\n"
602 "ADD R1, SP, #0xC\n"
603 "MOV R0, #0\n"
604 "BL sub_FF8C13E0\n"
605 "loc_FF8C149C:\n"
606 "LDR R0, [SP,#0x1C]\n"
607 "LDR R1, [R0]\n"
608 "CMP R1, #0x2D\n"
609 "BNE loc_FF8C14CC\n"
610 "LDR R0, [SP,#0x1C]\n"
611 "BL sub_FF8C2698\n"
612 "LDR R0, [R7,#0x1C]\n"
613 "MOV R1, #1\n"
614 "BL sub_FF88712C\n"
615 "BL sub_FF81E844\n"
616 "ADD SP, SP, #0x20\n"
617 "LDMFD SP!, {R4-R8,PC}\n"
618 "loc_FF8C14CC:\n"
619 "CMP R1, #0x2C\n"
620 "BNE loc_FF8C14E8\n"
621 "LDR R2, [R0,#0x8C]!\n"
622 "LDR R1, [R0,#4]\n"
623 "MOV R0, R1\n"
624 "BLX R2\n"
625 "B loc_FF8C19E0\n"
626 "loc_FF8C14E8:\n"
627 "CMP R1, #0x26\n"
628 "BNE loc_FF8C1538\n"
629 "LDR R0, [R7,#0x1C]\n"
630 "MOV R1, #0x80\n"
631 "BL sub_FF887160\n"
632 "LDR R0, =0xFF8BDB6C\n"
633 "MOV R1, #0x80\n"
634 "BL sub_FF9516F0\n"
635 "LDR R0, [R7,#0x1C]\n"
636 "MOV R2, R8\n"
637 "MOV R1, #0x80\n"
638 "BL sub_FF88706C\n"
639 "TST R0, #1\n"
640 "LDRNE R1, =0xE54\n"
641 "BNE loc_FF8C157C\n"
642 "loc_FF8C1524:\n"
643 "LDR R1, [SP,#0x1C]\n"
644 "LDR R0, [R1,#0x90]\n"
645 "LDR R1, [R1,#0x8C]\n"
646 "BLX R1\n"
647 "B loc_FF8C19E0\n"
648 "loc_FF8C1538:\n"
649 "CMP R1, #0x27\n"
650 "BNE loc_FF8C1588\n"
651 "ADD R1, SP, #0xC\n"
652 "BL sub_FF8C13E0\n"
653 "LDR R0, [R7,#0x1C]\n"
654 "MOV R1, #0x100\n"
655 "BL sub_FF887160\n"
656 "LDR R0, =0xFF8BDB7C\n"
657 "MOV R1, #0x100\n"
658 "BL sub_FF95207C\n"
659 "LDR R0, [R7,#0x1C]\n"
660 "MOV R2, R8\n"
661 "MOV R1, #0x100\n"
662 "BL sub_FF88706C\n"
663 "TST R0, #1\n"
664 "BEQ loc_FF8C1524\n"
665 "LDR R1, =0xE5E\n"
666 "loc_FF8C157C:\n"
667 "LDR R0, =0xFF8BE1E0\n"
668 "BL sub_FF81E88C\n"
669 "B loc_FF8C1524\n"
670 "loc_FF8C1588:\n"
671 "CMP R1, #0x28\n"
672 "BNE loc_FF8C15A0\n"
673 "loc_FF8C1590:\n"
674 "LDR R0, [SP,#0x1C]\n"
675 "ADD R1, SP, #0xC\n"
676 "BL sub_FF8C13E0\n"
677 "B loc_FF8C1524\n"
678 "loc_FF8C15A0:\n"
679 "CMP R1, #0x2B\n"
680 "BNE loc_FF8C15B8\n"
681 "BL sub_FF8B17BC\n"
682 "BL sub_FF8B23E0\n"
683 "BL sub_FF8B1F34\n"
684 "B loc_FF8C1524\n"
685 "loc_FF8C15B8:\n"
686 "LDR R0, [SP,#0x1C]\n"
687 "MOV R4, #1\n"
688 "LDR R1, [R0]\n"
689 "CMP R1, #0x11\n"
690 "CMPNE R1, #0x12\n"
691 "BNE loc_FF8C1628\n"
692 "LDR R1, [R0,#0x7C]\n"
693 "ADD R1, R1, R1,LSL#1\n"
694 "ADD R1, R0, R1,LSL#2\n"
695 "SUB R1, R1, #8\n"
696 "LDMIA R1, {R2-R4}\n"
697 "STMIA R6, {R2-R4}\n"
698 "BL sub_FF8BFD48\n"
699 "LDR R0, [SP,#0x1C]\n"
700 "LDR R1, [R0,#0x7C]\n"
701 "LDR R3, [R0,#0x8C]\n"
702 "LDR R2, [R0,#0x90]\n"
703 "ADD R0, R0, #4\n"
704 "BLX R3\n"
705 "LDR R0, [SP,#0x1C]\n"
706 "BL sub_FF8C2A5C\n"
707 "LDR R0, [SP,#0x1C]\n"
708 "LDR R1, [R0,#0x7C]\n"
709 "LDR R3, [R0,#0x94]\n"
710 "LDR R2, [R0,#0x98]\n"
711 "ADD R0, R0, #4\n"
712 "BLX R3\n"
713 "B loc_FF8C1920\n"
714 "loc_FF8C1628:\n"
715 "CMP R1, #0x13\n"
716 "CMPNE R1, #0x14\n"
717 "CMPNE R1, #0x15\n"
718 "CMPNE R1, #0x16\n"
719 "BNE loc_FF8C16E0\n"
720 "ADD R3, SP, #0xC\n"
721 "MOV R2, SP\n"
722 "ADD R1, SP, #0x10\n"
723 "BL sub_FF8C0030\n"
724 "CMP R0, #1\n"
725 "MOV R4, R0\n"
726 "CMPNE R4, #5\n"
727 "BNE loc_FF8C167C\n"
728 "LDR R0, [SP,#0x1C]\n"
729 "MOV R2, R4\n"
730 "LDR R1, [R0,#0x7C]!\n"
731 "LDR R12, [R0,#0x10]!\n"
732 "LDR R3, [R0,#4]\n"
733 "MOV R0, SP\n"
734 "BLX R12\n"
735 "B loc_FF8C16B4\n"
736 "loc_FF8C167C:\n"
737 "LDR R0, [SP,#0x1C]\n"
738 "CMP R4, #2\n"
739 "LDR R3, [R0,#0x90]\n"
740 "CMPNE R4, #6\n"
741 "BNE loc_FF8C16C8\n"
742 "LDR R12, [R0,#0x8C]\n"
743 "MOV R0, SP\n"
744 "MOV R2, R4\n"
745 "MOV R1, #1\n"
746 "BLX R12\n"
747 "LDR R0, [SP,#0x1C]\n"
748 "MOV R2, SP\n"
749 "ADD R1, SP, #0x10\n"
750 "BL sub_FF8C10E8\n"
751 "loc_FF8C16B4:\n"
752 "LDR R0, [SP,#0x1C]\n"
753 "LDR R2, [SP,#0xC]\n"
754 "MOV R1, R4\n"
755 "BL sub_FF8C1380\n"
756 "B loc_FF8C1920\n"
757 "loc_FF8C16C8:\n"
758 "LDR R1, [R0,#0x7C]\n"
759 "LDR R12, [R0,#0x8C]\n"
760 "ADD R0, R0, #4\n"
761 "MOV R2, R4\n"
762 "BLX R12\n"
763 "B loc_FF8C1920\n"
764 "loc_FF8C16E0:\n"
765 "CMP R1, #0x22\n"
766 "CMPNE R1, #0x23\n"
767 "BNE loc_FF8C172C\n"
768 "LDR R1, [R0,#0x7C]\n"
769 "ADD R1, R1, R1,LSL#1\n"
770 "ADD R1, R0, R1,LSL#2\n"
771 "SUB R1, R1, #8\n"
772 "LDMIA R1, {R2-R4}\n"
773 "STMIA R6, {R2-R4}\n"
774 "BL sub_FF8BF28C\n"
775 "LDR R0, [SP,#0x1C]\n"
776 "LDR R1, [R0,#0x7C]\n"
777 "LDR R3, [R0,#0x8C]\n"
778 "LDR R2, [R0,#0x90]\n"
779 "ADD R0, R0, #4\n"
780 "BLX R3\n"
781 "LDR R0, [SP,#0x1C]\n"
782 "BL sub_FF8BF58C\n"
783 "B loc_FF8C1920\n"
784 "loc_FF8C172C:\n"
785 "ADD R1, R0, #4\n"
786 "LDMIA R1, {R2,R3,R12}\n"
787 "STMIA R6, {R2,R3,R12}\n"
788 "LDR R1, [R0]\n"
789 "CMP R1, #0x25\n"
790 "ADDLS PC, PC, R1,LSL#2\n"
791 "B loc_FF8C1900\n"
792
793
794 "loc_FF8C1748: B loc_FF8C17E0\n"
795 "loc_FF8C174C: B loc_FF8C17E0\n"
796 "loc_FF8C1750: B loc_FF8C17E8\n"
797 "loc_FF8C1754: B loc_FF8C17F0\n"
798 "loc_FF8C1758: B loc_FF8C17F0\n"
799 "loc_FF8C175C: B loc_FF8C17F0\n"
800 "loc_FF8C1760: B loc_FF8C17E0\n"
801 "loc_FF8C1764: B loc_FF8C17E8\n"
802 "loc_FF8C1768: B loc_FF8C17F0\n"
803 "loc_FF8C176C: B loc_FF8C17F0\n"
804 "loc_FF8C1770: B loc_FF8C1808\n"
805 "loc_FF8C1774: B loc_FF8C1808\n"
806 "loc_FF8C1778: B loc_FF8C18F4\n"
807 "loc_FF8C177C: B loc_FF8C18FC\n"
808 "loc_FF8C1780: B loc_FF8C18FC\n"
809 "loc_FF8C1784: B loc_FF8C18FC\n"
810 "loc_FF8C1788: B loc_FF8C18FC\n"
811 "loc_FF8C178C: B loc_FF8C1900\n"
812
813
814 "loc_FF8C1790: B loc_FF8C1900\n"
815 "loc_FF8C1794: B loc_FF8C1900\n"
816 "loc_FF8C1798: B loc_FF8C1900\n"
817 "loc_FF8C179C: B loc_FF8C1900\n"
818 "loc_FF8C17A0: B loc_FF8C1900\n"
819 "loc_FF8C17A4: B loc_FF8C17F8\n"
820 "loc_FF8C17A8: B loc_FF8C1800\n"
821 "loc_FF8C17AC: B loc_FF8C1800\n"
822 "loc_FF8C17B0: B loc_FF8C1814\n"
823 "loc_FF8C17B4: B loc_FF8C1814\n"
824 "loc_FF8C17B8: B loc_FF8C181C\n"
825 "loc_FF8C17BC: B loc_FF8C181C\n"
826 "loc_FF8C17C0: B loc_FF8C187C\n"
827 "loc_FF8C17C4: B loc_FF8C18AC\n"
828 "loc_FF8C17C8: B loc_FF8C18DC\n"
829 "loc_FF8C17CC: B loc_FF8C18DC\n"
830 "loc_FF8C17D0: B loc_FF8C1900\n"
831 "loc_FF8C17D4: B loc_FF8C1900\n"
832 "loc_FF8C17D8: B loc_FF8C18E4\n"
833 "loc_FF8C17DC: B loc_FF8C18EC\n"
834
835 "loc_FF8C17E0:\n"
836 "BL sub_FF8BE084\n"
837 "B loc_FF8C1900\n"
838 "loc_FF8C17E8:\n"
839 "BL sub_FF8BE30C\n"
840 "B loc_FF8C1900\n"
841 "loc_FF8C17F0:\n"
842 "BL sub_FF8BE514\n"
843 "B loc_FF8C1900\n"
844 "loc_FF8C17F8:\n"
845 "BL sub_FF8BE78C\n"
846 "B loc_FF8C1900\n"
847 "loc_FF8C1800:\n"
848 "BL sub_FF8BE984\n"
849 "B loc_FF8C1900\n"
850 "loc_FF8C1808:\n"
851
852 "BL sub_FF8BEC40_my\n"
853 "MOV R4, #0\n"
854 "B loc_FF8C1900\n"
855 "loc_FF8C1814:\n"
856 "BL sub_FF8BED80\n"
857 "B loc_FF8C1900\n"
858 "loc_FF8C181C:\n"
859 "LDRH R1, [R0,#4]\n"
860 "STRH R1, [SP,#0x10]\n"
861 "LDRH R1, [R5,#2]\n"
862 "STRH R1, [SP,#0x12]\n"
863 "LDRH R1, [R5,#4]\n"
864 "STRH R1, [SP,#0x14]\n"
865 "LDRH R1, [R5,#6]\n"
866 "STRH R1, [SP,#0x16]\n"
867 "LDRH R1, [R0,#0xC]\n"
868 "STRH R1, [SP,#0x18]\n"
869 "BL sub_FF8C270C\n"
870 "B loc_FF8C1900\n"
871 "loc_FF8C184C:\n"
872 "LDRH R1, [R0,#4]\n"
873 "STRH R1, [SP,#0x10]\n"
874 "LDRH R1, [R5,#2]\n"
875 "STRH R1, [SP,#0x12]\n"
876 "LDRH R1, [R5,#4]\n"
877 "STRH R1, [SP,#0x14]\n"
878 "LDRH R1, [R5,#6]\n"
879 "STRH R1, [SP,#0x16]\n"
880 "LDRH R1, [R5,#8]\n"
881 "STRH R1, [SP,#0x18]\n"
882 "BL sub_FF8C2874\n"
883 "B loc_FF8C1900\n"
884 "loc_FF8C187C:\n"
885 "LDRH R1, [R5]\n"
886 "STRH R1, [SP,#0x10]\n"
887 "LDRH R1, [R0,#6]\n"
888 "STRH R1, [SP,#0x12]\n"
889 "LDRH R1, [R5,#4]\n"
890 "STRH R1, [SP,#0x14]\n"
891 "LDRH R1, [R5,#6]\n"
892 "STRH R1, [SP,#0x16]\n"
893 "LDRH R1, [R5,#8]\n"
894 "STRH R1, [SP,#0x18]\n"
895 "BL sub_FF8C2920\n"
896 "B loc_FF8C1900\n"
897 "loc_FF8C18AC:\n"
898 "LDRH R1, [R5]\n"
899 "STRH R1, [SP,#0x10]\n"
900 "LDRH R1, [R5,#2]\n"
901 "STRH R1, [SP,#0x12]\n"
902 "LDRH R1, [R5,#4]\n"
903 "STRH R1, [SP,#0x14]\n"
904 "LDRH R1, [R5,#6]\n"
905 "STRH R1, [SP,#0x16]\n"
906 "LDRH R1, [R0,#0xC]\n"
907 "STRH R1, [SP,#0x18]\n"
908 "BL sub_FF8C29C0\n"
909 "B loc_FF8C1900\n"
910 "loc_FF8C18DC:\n"
911 "BL sub_FF8BF0C8\n"
912 "B loc_FF8C1900\n"
913 "loc_FF8C18E4:\n"
914 "BL sub_FF8BF690\n"
915 "B loc_FF8C1900\n"
916 "loc_FF8C18EC:\n"
917 "BL sub_FF8BF8CC\n"
918 "B loc_FF8C1900\n"
919 "loc_FF8C18F4:\n"
920 "BL sub_FF8BFA48\n"
921 "B loc_FF8C1900\n"
922 "loc_FF8C18FC:\n"
923 "BL sub_FF8BFBE4\n"
924 "loc_FF8C1900:\n"
925 "LDR R0, [SP,#0x1C]\n"
926 "LDR R1, [R0,#0x7C]\n"
927 "LDR R3, [R0,#0x8C]\n"
928 "LDR R2, [R0,#0x90]\n"
929 "ADD R0, R0, #4\n"
930 "BLX R3\n"
931 "CMP R4, #1\n"
932 "BNE loc_FF8C1968\n"
933 "loc_FF8C1920:\n"
934 "LDR R0, [SP,#0x1C]\n"
935 "MOV R2, #0xC\n"
936 "LDR R1, [R0,#0x7C]\n"
937 "ADD R1, R1, R1,LSL#1\n"
938 "ADD R0, R0, R1,LSL#2\n"
939 "SUB R4, R0, #8\n"
940 "LDR R0, =0x3D90C\n"
941 "ADD R1, SP, #0x10\n"
942 "BL sub_FFB366B4\n"
943 "LDR R0, =0x3D918\n"
944 "MOV R2, #0xC\n"
945 "ADD R1, SP, #0x10\n"
946 "BL sub_FFB366B4\n"
947 "LDR R0, =0x3D924\n"
948 "MOV R2, #0xC\n"
949 "MOV R1, R4\n"
950 "BL sub_FFB366B4\n"
951 "B loc_FF8C19E0\n"
952 "loc_FF8C1968:\n"
953 "LDR R0, [SP,#0x1C]\n"
954 "LDR R0, [R0]\n"
955 "CMP R0, #0xB\n"
956 "BNE loc_FF8C19B0\n"
957 "MOV R3, #0\n"
958 "STR R3, [SP]\n"
959 "MOV R3, #1\n"
960 "MOV R2, #1\n"
961 "MOV R1, #1\n"
962 "MOV R0, #0\n"
963 "BL sub_FF8BDE8C\n"
964 "MOV R3, #0\n"
965 "STR R3, [SP]\n"
966 "MOV R3, #1\n"
967 "MOV R2, #1\n"
968 "MOV R1, #1\n"
969 "MOV R0, #0\n"
970 "B loc_FF8C19CC\n"
971 "loc_FF8C19B0:\n"
972 "MOV R3, #1\n"
973 "MOV R2, #1\n"
974 "MOV R1, #1\n"
975 "MOV R0, #1\n"
976 "STR R3, [SP]\n"
977 "BL sub_FF8BDE8C\n"
978 "MOV R3, #1\n"
979 "MOV R2, #1\n"
980 "MOV R1, #1\n"
981 "MOV R0, #1\n"
982 "STR R3, [SP]\n"
983 "loc_FF8C19CC:\n"
984 "BL sub_FF8BDFCC\n"
985 "loc_FF8C19E0:\n"
986 "LDR R0, [SP,#0x1C]\n"
987 "BL sub_FF8C2698\n"
988 "B loc_FF8C1450\n"
989
990
991 );
992 }
993
994
995 void __attribute__((naked,noinline)) sub_FF8BEC40_my(){
996
997 asm volatile(
998 "STMFD SP!, {R4-R8,LR}\n"
999 "LDR R7, =0x4658\n"
1000 "MOV R4, R0\n"
1001 "LDR R0, [R7,#0x1C]\n"
1002 "MOV R1, #0x3E\n"
1003 "BL sub_FF887160\n"
1004 "LDRSH R0, [R4,#4]\n"
1005 "MOV R2, #0\n"
1006 "MOV R1, #0\n"
1007 "BL sub_FF8BDBF0\n"
1008 "MOV R6, R0\n"
1009 "LDRSH R0, [R4,#6]\n"
1010 "BL sub_FF8BDD00\n"
1011 "LDRSH R0, [R4,#8]\n"
1012 "BL sub_FF8BDD58\n"
1013 "LDRSH R0, [R4,#0xA]\n"
1014 "BL sub_FF8BDDB0\n"
1015 "LDRSH R0, [R4,#0xC]\n"
1016 "MOV R1, #0\n"
1017 "BL sub_FF8BDE08\n"
1018 "MOV R5, R0\n"
1019 "LDR R0, [R4]\n"
1020 "LDR R8, =0x3D924\n"
1021 "CMP R0, #0xB\n"
1022 "MOVEQ R6, #0\n"
1023 "MOVEQ R5, #0\n"
1024 "BEQ loc_FF8BECD4\n"
1025 "CMP R6, #1\n"
1026 "BNE loc_FF8BECD4\n"
1027 "LDRSH R0, [R4,#4]\n"
1028 "LDR R1, =0xFF8BDB5C\n"
1029 "MOV R2, #2\n"
1030 "BL sub_FF951A38\n"
1031 "STRH R0, [R4,#4]\n"
1032 "MOV R0, #0\n"
1033 "STR R0, [R7,#0x28]\n"
1034 "B loc_FF8BECDC\n"
1035
1036 "loc_FF8BECD4:\n"
1037 "LDRH R0, [R8]\n"
1038 "STRH R0, [R4,#4]\n"
1039 "loc_FF8BECDC:\n"
1040 "CMP R5, #1\n"
1041 "LDRNEH R0, [R8,#8]\n"
1042 "BNE loc_FF8BECF8\n"
1043 "LDRSH R0, [R4,#0xC]\n"
1044 "LDR R1, =0xFF8BDBE0\n"
1045 "MOV R2, #0x20\n"
1046 "BL sub_FF8C26C8\n"
1047 "loc_FF8BECF8:\n"
1048 "STRH R0, [R4,#0xC]\n"
1049 "LDRSH R0, [R4,#6]\n"
1050
1051 "BL sub_FF8B152C_my\n"
1052 "LDRSH R0, [R4,#8]\n"
1053 "MOV R1, #1\n"
1054 "BL sub_FF8B1C7C\n"
1055 "MOV R1, #0\n"
1056 "ADD R0, R4, #8\n"
1057 "BL sub_FF8B1D04\n"
1058 "LDRSH R0, [R4,#0xE]\n"
1059 "BL sub_FF8B96A8\n"
1060 "LDR R4, =0xBB8\n"
1061 "CMP R6, #1\n"
1062 "BNE loc_FF8BED50\n"
1063 "LDR R0, [R7,#0x1C]\n"
1064 "MOV R2, R4\n"
1065 "MOV R1, #2\n"
1066 "BL sub_FF88706C\n"
1067 "TST R0, #1\n"
1068 "SUBNE R1, R4, #0x620\n"
1069 "LDRNE R0, =0xFF8BE1E0\n"
1070 "BLNE sub_FF81E88C\n"
1071 "loc_FF8BED50:\n"
1072 "CMP R5, #1\n"
1073 "LDMNEFD SP!, {R4-R8,PC}\n"
1074 "LDR R0, [R7,#0x1C]\n"
1075 "MOV R2, R4\n"
1076 "MOV R1, #0x20\n"
1077 "BL sub_FF88706C\n"
1078 "TST R0, #1\n"
1079 "LDRNE R1, =0x59D\n"
1080 "LDRNE R0, =0xFF8BE1E0\n"
1081 "LDMNEFD SP!, {R4-R8,LR}\n"
1082 "BNE sub_FF81E88C\n"
1083 "LDMFD SP!, {R4-R8,PC}\n"
1084
1085 );
1086 }
1087
1088 void __attribute__((naked,noinline)) sub_FF8B152C_my(){
1089
1090 asm volatile(
1091 "STMFD SP!, {R4-R6,LR}\n"
1092 "LDR R5, =0x4370\n"
1093 "MOV R4, R0\n"
1094 "LDR R0, [R5,#4]\n"
1095 "CMP R0, #1\n"
1096 "LDRNE R1, =0x146\n"
1097 "LDRNE R0, =0xFF8B1330\n"
1098 "BLNE sub_FF81E88C\n"
1099 "CMN R4, #0xC00\n"
1100 "LDREQSH R4, [R5,#2]\n"
1101 "CMN R4, #0xC00\n"
1102 "MOVEQ R1, #0x14C\n"
1103 "LDREQ R0, =0xFF8B1330\n"
1104 "STRH R4, [R5,#2]\n"
1105 "BLEQ sub_FF81E88C\n"
1106 "MOV R0, R4\n"
1107
1108 "BL apex2us\n"
1109 "MOV R4, R0\n"
1110
1111 "MOV R0, R4\n"
1112 "BL sub_FF8F3308\n"
1113 "TST R0, #1\n"
1114 "LDRNE R1, =0x151\n"
1115 "LDMNEFD SP!, {R4-R6,LR}\n"
1116 "LDRNE R0, =0xFF8B1330\n"
1117 "BNE sub_FF81E88C\n"
1118 "LDMFD SP!, {R4-R6,PC}\n"
1119
1120 );
1121 }