This source file includes following definitions.
- capt_seq_task
- sub_FF942438_my
- sub_FF873380_my
- exp_drv_task
- sub_FF8B0764_my
- sub_FF8A2F10_my
1
2 #include "lolevel.h"
3 #include "platform.h"
4 #include "core.h"
5 #include "conf.h"
6
7 static long *nrflag = (long*)0x6718;
8
9 #include "../../../generic/capt_seq.c"
10
11
12
13
14 void __attribute__((naked,noinline)) capt_seq_task() {
15 asm volatile (
16 " STMFD SP!, {R3-R9,LR}\n"
17 " LDR R6, =0x2988\n"
18 " LDR R4, =0x37B08\n"
19 " MOV R9, #1\n"
20 " MOV R7, #0\n"
21 "loc_FF872FA4:\n"
22 " LDR R0, [R6,#4]\n"
23 " MOV R2, #0\n"
24 " MOV R1, SP\n"
25 " BL sub_FF837DC8\n"
26 " TST R0, #1\n"
27 " BEQ loc_FF872FD0\n"
28 " LDR R1, =0x5B4\n"
29 " LDR R0, =0xFF872B20\n"
30 " BL sub_FF81E88C\n"
31 " BL sub_FF81E844\n"
32 " LDMFD SP!, {R3-R9,PC}\n"
33 "loc_FF872FD0:\n"
34 " LDR R0, [SP]\n"
35 " LDR R1, [R0]\n"
36 " CMP R1, #0x1D\n"
37 " ADDLS PC, PC, R1,LSL#2\n"
38 " B loc_FF87325C\n"
39
40 "loc_FF872FE4: B loc_FF87305C\n"
41 "loc_FF872FE8: B loc_FF8730C0\n"
42 "loc_FF872FEC: B loc_FF8730FC\n"
43 "loc_FF872FF0: B loc_FF873110\n"
44 "loc_FF872FF4: B loc_FF873108\n"
45 "loc_FF872FF8: B loc_FF873118\n"
46 "loc_FF872FFC: B loc_FF873120\n"
47 "loc_FF873000: B loc_FF873128\n"
48 "loc_FF873004: B loc_FF873180\n"
49 "loc_FF873008: B loc_FF8731A8\n"
50 "loc_FF87300C: B loc_FF87318C\n"
51 "loc_FF873010: B loc_FF873198\n"
52 "loc_FF873014: B loc_FF8731A0\n"
53 "loc_FF873018: B loc_FF8731B0\n"
54 "loc_FF87301C: B loc_FF8731B8\n"
55 "loc_FF873020: B loc_FF8731C0\n"
56 "loc_FF873024: B loc_FF8731C8\n"
57 "loc_FF873028: B loc_FF8731D0\n"
58 "loc_FF87302C: B loc_FF8731DC\n"
59 "loc_FF873030: B loc_FF8731E4\n"
60 "loc_FF873034: B loc_FF8731EC\n"
61 "loc_FF873038: B loc_FF8731F4\n"
62 "loc_FF87303C: B loc_FF8731FC\n"
63 "loc_FF873040: B loc_FF873208\n"
64 "loc_FF873044: B loc_FF873210\n"
65 "loc_FF873048: B loc_FF873218\n"
66 "loc_FF87304C: B loc_FF873220\n"
67 "loc_FF873050: B loc_FF873228\n"
68 "loc_FF873054: B loc_FF873234\n"
69 "loc_FF873058: B loc_FF873268\n"
70
71 "loc_FF87305C:\n"
72 " BL sub_FF8738E8\n"
73 " BL shooting_expo_param_override\n"
74 " BL sub_FF870DD8\n"
75
76
77
78 " MOV R0, #0\n"
79 " STR R0, [R4,#0x24]\n"
80
81 " LDR R0, [R4,#0x24]\n"
82 " CMP R0, #0\n"
83 " BEQ loc_FF873268\n"
84 " BL sub_FF872800\n"
85 " MOV R5, R0\n"
86 " LDR R0, [R4,#0x24]\n"
87 " CMP R0, #0\n"
88 " BEQ loc_FF8730A4\n"
89 " MOV R0, #0xC\n"
90 " BL sub_FF877A2C\n"
91 " TST R0, #1\n"
92 " STRNE R9, [R6,#0x10]\n"
93 " LDRNE R0, [R5,#8]\n"
94 " ORRNE R0, R0, #0x40000000\n"
95 " STRNE R0, [R5,#8]\n"
96 " BNE loc_FF873268\n"
97
98 "loc_FF8730A4:\n"
99 " MOV R0, R5\n"
100 " BL sub_FF872AA4\n"
101 " MOV R0, R5\n"
102
103
104 " BL sub_FF942438_my\n"
105
106 " TST R0, #1\n"
107 " STRNE R9, [R6,#0x10]\n"
108 " B loc_FF873268\n"
109
110 "loc_FF8730C0:\n"
111 " LDR R0, [R4,#0x24]\n"
112 " CMP R0, #0\n"
113 " BNE loc_FF8730EC\n"
114 " MOV R0, #0xC\n"
115 " BL sub_FF877A2C\n"
116 " TST R0, #1\n"
117 " LDRNE R0, [SP]\n"
118 " MOVNE R1, #1\n"
119 " LDRNE R2, [R0,#0xC]\n"
120 " MOVNE R0, #1\n"
121 " BNE loc_FF873178\n"
122
123 "loc_FF8730EC:\n"
124 " LDR R0, [SP]\n"
125
126 " BL sub_FF873380_my\n"
127
128 "loc_FF8730F4:\n"
129 " STR R7, [R4,#0x24]\n"
130 " B loc_FF873268\n"
131
132 "loc_FF8730FC:\n"
133 " MOV R0, #1\n"
134 " BL sub_FF873B3C\n"
135 " B loc_FF873268\n"
136
137 "loc_FF873108:\n"
138 " BL sub_FF873528\n"
139 " B loc_FF8730F4\n"
140
141 "loc_FF873110:\n"
142 " BL sub_FF8738C8\n"
143 " B loc_FF8730F4\n"
144
145 "loc_FF873118:\n"
146 " BL sub_FF8738D0\n"
147 " B loc_FF873268\n"
148
149 "loc_FF873120:\n"
150 " BL sub_FF873A5C\n"
151 " B loc_FF873184\n"
152
153 "loc_FF873128:\n"
154 " LDR R5, [R0,#0xC]\n"
155 " BL sub_FF8738D8\n"
156 " MOV R0, R5\n"
157 " BL sub_FF941250\n"
158 " TST R0, #1\n"
159 " MOV R8, R0\n"
160 " BNE loc_FF873168\n"
161 " BL sub_FF884AE4\n"
162 " STR R0, [R5,#0x18]\n"
163 " MOV R0, R5\n"
164 " BL sub_FF942350\n"
165 " MOV R0, R5\n"
166 " BL sub_FF94274C\n"
167 " MOV R8, R0\n"
168 " LDR R0, [R5,#0x18]\n"
169 " BL sub_FF884CE8\n"
170 "loc_FF873168:\n"
171 " BL sub_FF8738C8\n"
172 " MOV R2, R5\n"
173 " MOV R1, #9\n"
174 " MOV R0, R8\n"
175 "loc_FF873178:\n"
176 " BL sub_FF8712C4\n"
177 " B loc_FF873268\n"
178
179 "loc_FF873180:\n"
180 " BL sub_FF873ABC\n"
181 "loc_FF873184:\n"
182 " BL sub_FF870DD8\n"
183 " B loc_FF873268\n"
184 "loc_FF87318C:\n"
185 " LDR R0, [R4,#0x54]\n"
186 " BL sub_FF873EC8\n"
187 " B loc_FF873268\n"
188 "loc_FF873198:\n"
189 " BL sub_FF87417C\n"
190 " B loc_FF873268\n"
191 "loc_FF8731A0:\n"
192 " BL sub_FF874210\n"
193 " B loc_FF873268\n"
194 "loc_FF8731A8:\n"
195 " BL sub_FF8738C8\n"
196 " B loc_FF873268\n"
197 "loc_FF8731B0:\n"
198 " BL sub_FF941468\n"
199 " B loc_FF873268\n"
200 "loc_FF8731B8:\n"
201 " BL sub_FF94167C\n"
202 " B loc_FF873268\n"
203 "loc_FF8731C0:\n"
204 " BL sub_FF941714\n"
205 " B loc_FF873268\n"
206 "loc_FF8731C8:\n"
207 " BL sub_FF9417E4\n"
208 " B loc_FF873268\n"
209 "loc_FF8731D0:\n"
210 " MOV R0, #0\n"
211 " BL sub_FF941A34\n"
212 " B loc_FF873268\n"
213 "loc_FF8731DC:\n"
214 " BL sub_FF941B84\n"
215 " B loc_FF873268\n"
216 "loc_FF8731E4:\n"
217 " BL sub_FF941C14\n"
218 " B loc_FF873268\n"
219 "loc_FF8731EC:\n"
220 " BL sub_FF941CD4\n"
221 " B loc_FF873268\n"
222 "loc_FF8731F4:\n"
223 " BL sub_FF873CB4\n"
224 " B loc_FF873268\n"
225 "loc_FF8731FC:\n"
226 " BL sub_FF873D54\n"
227 " BL sub_FF835F18\n"
228 " B loc_FF873268\n"
229 "loc_FF873208:\n"
230 " BL sub_FF9418B0\n"
231 " B loc_FF873268\n"
232 "loc_FF873210:\n"
233 " BL sub_FF94191C\n"
234 " B loc_FF873268\n"
235 "loc_FF873218:\n"
236 " BL sub_FF8761DC\n"
237 " B loc_FF873268\n"
238 "loc_FF873220:\n"
239 " BL sub_FF876244\n"
240 " B loc_FF873268\n"
241 "loc_FF873228:\n"
242 " BL sub_FF8762A0\n"
243 " BL sub_FF876260\n"
244 " B loc_FF873268\n"
245 "loc_FF873234:\n"
246 " MOV R0, #1\n"
247 " BL sub_FF942F90\n"
248 " MOV R0, #1\n"
249 " BL sub_FF9430A0\n"
250 " LDRH R0, [R4,#0x98]\n"
251 " CMP R0, #4\n"
252 " BNE loc_FF873268\n"
253 " BL sub_FF876244\n"
254 " BL sub_FF876680\n"
255 " B loc_FF873268\n"
256
257 "loc_FF87325C:\n"
258 " LDR R1, =0x709\n"
259 " LDR R0, =0xFF872B20\n"
260 " BL sub_FF81E88C\n"
261
262 "loc_FF873268:\n"
263 " LDR R0, [SP]\n"
264 " LDR R1, [R0,#4]\n"
265 " LDR R0, [R6]\n"
266 " BL sub_FF87C7E8\n"
267 " LDR R5, [SP]\n"
268 " LDR R0, [R5,#8]\n"
269 " CMP R0, #0\n"
270 " LDREQ R1, =0x132\n"
271 " LDREQ R0, =0xFF872B20\n"
272 " BLEQ sub_FF81E88C\n"
273 " STR R7, [R5,#8]\n"
274 " B loc_FF872FA4\n"
275 );
276 }
277
278
279
280
281
282 void __attribute__((naked,noinline)) sub_FF942438_my(){
283 asm volatile(
284 " STMFD SP!, {R0-R8,LR}\n"
285 " MOV R4, R0\n"
286 " BL sub_FF94328C\n"
287 " MVN R1, #0\n"
288 " BL sub_FF87C81C\n"
289 " LDR R5, =0x6718\n"
290 " LDR R0, [R5,#0xC]\n"
291 " CMP R0, #0\n"
292 " BNE loc_FF942488\n"
293 " MOV R1, #1\n"
294 " MOV R0, #0\n"
295 " BL sub_FF838610\n"
296 " STR R0, [R5,#0xC]\n"
297 " MOV R3, #0\n"
298 " STR R3, [SP]\n"
299 " LDR R3, =0xFF941DC4\n"
300 " LDR R0, =0xFF9426B4\n"
301 " MOV R2, #0x400\n"
302 " MOV R1, #0x17\n"
303 " BL sub_FF8385DC\n"
304 "loc_FF942488:\n"
305 " MOV R2, #4\n"
306 " ADD R1, SP, #0x08\n"
307 " MOV R0, #0x8A\n"
308 " BL sub_FF884954\n"
309 " TST R0, #1\n"
310 " LDRNE R1, =0x3C5\n"
311 " LDRNE R0, =0xFF94205C\n"
312 " BLNE sub_FF81E88C\n"
313 " LDR R6, =0x37BCC\n"
314 " LDR R8, =0x37B08\n"
315 " LDRSH R2, [R6,#0xC]\n"
316 " LDRSH R1, [R6,#0xE]\n"
317 " LDR R0, [R8,#0x8C]\n"
318 " BL sub_FF90B570\n"
319 " BL sub_FF85BC98\n"
320 " LDR R3, =0x6720\n"
321 " STRH R0, [R4,#0xA4]\n"
322 " SUB R2, R3, #4\n"
323 " STRD R2, [SP]\n"
324 " MOV R1, R0\n"
325 " LDRH R0, [R8,#0x5C]\n"
326 " LDRSH R2, [R6,#0xC]\n"
327 " SUB R3, R3, #8\n"
328 " BL sub_FF9448D0\n"
329
330 "BL wait_until_remote_button_is_released\n"
331 "BL capt_seq_hook_set_nr\n"
332
333 " B sub_FF9424E8\n"
334 );
335 }
336
337
338
339
340
341
342 void __attribute__((naked,noinline)) sub_FF873380_my(){
343 asm volatile(
344 " STMFD SP!, {R4-R6,LR}\n"
345 " LDR R4, [R0,#0xC]\n"
346 " LDR R6, =0x37B08\n"
347 " LDR R0, [R4,#8]\n"
348 " MOV R5, #0\n"
349 " ORR R0, R0, #1\n"
350 " STR R0, [R4,#8]\n"
351 " LDR R0, [R6,#0x24]\n"
352 " CMP R0, #0\n"
353 " MOVEQ R0, #2\n"
354 " BLEQ sub_FF86F4B8\n"
355 " BL sub_FF8738D8\n"
356 " LDR R0, [R6,#0x24]\n"
357 " CMP R0, #0\n"
358 " BNE loc_FF873448\n"
359 " MOV R0, #0\n"
360 " BL sub_FF942F90\n"
361 " MOV R0, #0\n"
362 " BL sub_FF9430A0\n"
363 " MOV R0, R4\n"
364 " BL sub_FF873C5C\n"
365 " MOV R0, R4\n"
366 " BL sub_FF940EA0\n"
367 " CMP R0, #0\n"
368 " BEQ loc_FF873410\n"
369 " BL sub_FF942FD0\n"
370 " BL sub_FF9430E4\n"
371 " BL sub_FF943134\n"
372 " MOV R0, R4\n"
373 " BL sub_FF940F84\n"
374 " TST R0, #1\n"
375 " MOVNE R2, R4\n"
376 " LDMNEFD SP!, {R4-R6,LR}\n"
377 " MOVNE R1, #1\n"
378 " BNE sub_FF8712C4\n"
379 " B loc_FF873424\n"
380 "loc_FF873410:\n"
381 " MOV R0, R4\n"
382 " BL sub_FF940F20\n"
383 " BL sub_FF942FD0\n"
384 " BL sub_FF9430E4\n"
385 " BL sub_FF943134\n"
386 "loc_FF873424:\n"
387 " MOV R0, R4\n"
388 " BL sub_FF872AA4\n"
389 " MOV R0, R4\n"
390 " BL sub_FF942350\n"
391 " BL sub_FF942DC8\n"
392 " MOV R0, R4\n"
393
394
395 " BL sub_FF942438_my\n"
396
397 " MOV R5, R0\n"
398 " BL capt_seq_hook_raw_here\n"
399 " B loc_FF873458\n"
400
401
402 "loc_FF873448:\n"
403 " LDR R0, =0x2988\n"
404 " LDR R0, [R0,#0x10]\n"
405 " CMP R0, #0\n"
406 " MOVNE R5, #0x1D\n"
407
408 "loc_FF873458:\n"
409 " BL sub_FF876244\n"
410 " BL sub_FF87628C\n"
411 " BL sub_FF8762CC\n"
412 " MOV R2, R4\n"
413 " MOV R1, #1\n"
414 " MOV R0, R5\n"
415 " BL sub_FF8712C4\n"
416 " BL sub_FF9426F0\n"
417 " CMP R0, #0\n"
418 " LDRNE R0, [R4,#8]\n"
419 " ORRNE R0, R0, #0x2000\n"
420 " STRNE R0, [R4,#8]\n"
421 " LDMFD SP!, {R4-R6,PC}\n"
422 ) ;
423 }
424
425
426
427
428
429 void __attribute__((naked,noinline)) exp_drv_task() {
430 asm volatile(
431 " STMFD SP!, {R4-R8,LR}\n"
432 " SUB SP, SP, #0x20\n"
433 " LDR R8, =0xBB8\n"
434 " LDR R7, =0x3C80\n"
435 " LDR R5, =0x3C760\n"
436 " MOV R0, #0\n"
437 " ADD R6, SP, #0x10\n"
438 " STR R0, [SP,#0x0C]\n"
439 "loc_FF8B2FA0:\n"
440 " LDR R0, [R7,#0x20]\n"
441 " MOV R2, #0\n"
442 " ADD R1, SP, #0x1C\n"
443 " BL sub_FF837DC8\n"
444 " LDR R0, [SP,#0x0C]\n"
445 " CMP R0, #1\n"
446 " BNE loc_FF8B2FEC\n"
447 " LDR R0, [SP,#0x1C]\n"
448 " LDR R0, [R0]\n"
449 " CMP R0, #0x13\n"
450 " CMPNE R0, #0x14\n"
451 " CMPNE R0, #0x15\n"
452 " CMPNE R0, #0x16\n"
453 " BEQ loc_FF8B3108\n"
454 " CMP R0, #0x28\n"
455 " BEQ loc_FF8B30E0\n"
456 " ADD R1, SP, #0x0C\n"
457 " MOV R0, #0\n"
458 " BL sub_FF8B2F30\n"
459 "loc_FF8B2FEC:\n"
460 " LDR R0, [SP,#0x1C]\n"
461 " LDR R1, [R0]\n"
462 " CMP R1, #0x2D\n"
463 " BNE loc_FF8B301C\n"
464 " LDR R0, [SP,#0x1C]\n"
465 " BL sub_FF8B41F0\n"
466 " LDR R0, [R7,#0x1C]\n"
467 " MOV R1, #1\n"
468 " BL sub_FF87C7E8\n"
469 " BL sub_FF81E844\n"
470 " ADD SP, SP, #0x20\n"
471 " LDMFD SP!, {R4-R8,PC}\n"
472 "loc_FF8B301C:\n"
473 " CMP R1, #0x2C\n"
474 " BNE loc_FF8B3038\n"
475 " LDR R2, [R0,#0x8C]!\n"
476 " LDR R1, [R0,#4]\n"
477 " MOV R0, R1\n"
478 " BLX R2\n"
479 " B loc_FF8B3530\n"
480 "loc_FF8B3038:\n"
481 " CMP R1, #0x26\n"
482 " BNE loc_FF8B3088\n"
483 " LDR R0, [R7,#0x1C]\n"
484 " MOV R1, #0x80\n"
485 " BL sub_FF87C81C\n"
486 " LDR R0, =0xFF8AF690\n"
487 " MOV R1, #0x80\n"
488 " BL sub_FF936260\n"
489 " LDR R0, [R7,#0x1C]\n"
490 " MOV R2, R8\n"
491 " MOV R1, #0x80\n"
492 " BL sub_FF87C728\n"
493 " TST R0, #1\n"
494 " LDRNE R1, =0xE54\n"
495 " BNE loc_FF8B30CC\n"
496 "loc_FF8B3074:\n"
497 " LDR R1, [SP,#0x1C]\n"
498 " LDR R0, [R1,#0x90]\n"
499 " LDR R1, [R1,#0x8C]\n"
500 " BLX R1\n"
501 " B loc_FF8B3530\n"
502 "loc_FF8B3088:\n"
503 " CMP R1, #0x27\n"
504 " BNE loc_FF8B30D8\n"
505 " ADD R1, SP, #0xC\n"
506 " BL sub_FF8B2F30\n"
507 " LDR R0, [R7,#0x1C]\n"
508 " MOV R1, #0x100\n"
509 " BL sub_FF87C81C\n"
510 " LDR R0, =0xFF8AF6A0\n"
511 " MOV R1, #0x100\n"
512 " BL sub_FF9364E8\n"
513 " LDR R0, [R7,#0x1C]\n"
514 " MOV R2, R8\n"
515 " MOV R1, #0x100\n"
516 " BL sub_FF87C728\n"
517 " TST R0, #1\n"
518 " BEQ loc_FF8B3074\n"
519 " LDR R1, =0xE5E\n"
520 "loc_FF8B30CC:\n"
521 " LDR R0, =0xFF8AFD04\n"
522 " BL sub_FF81E88C\n"
523 " B loc_FF8B3074\n"
524 "loc_FF8B30D8:\n"
525 " CMP R1, #0x28\n"
526 " BNE loc_FF8B30F0\n"
527 "loc_FF8B30E0:\n"
528 " LDR R0, [SP,#0x1C]\n"
529 " ADD R1, SP, #0x0C\n"
530 " BL sub_FF8B2F30\n"
531 " B loc_FF8B3074\n"
532 "loc_FF8B30F0:\n"
533 " CMP R1, #0x2B\n"
534 " BNE loc_FF8B3108\n"
535 " BL sub_FF8A31A0\n"
536 " BL sub_FF8A3DC4\n"
537 " BL sub_FF8A3918\n"
538 " B loc_FF8B3074\n"
539 "loc_FF8B3108:\n"
540 " LDR R0, [SP,#0x1C]\n"
541 " MOV R4, #1\n"
542 " LDR R1, [R0]\n"
543 " CMP R1, #0x11\n"
544 " CMPNE R1, #0x12\n"
545 " BNE loc_FF8B3178\n"
546 " LDR R1, [R0,#0x7C]\n"
547 " ADD R1, R1, R1,LSL#1\n"
548 " ADD R1, R0, R1,LSL#2\n"
549 " SUB R1, R1, #8\n"
550 " LDMIA R1, {R2-R4}\n"
551 " STMIA R6, {R2-R4}\n"
552 " BL sub_FF8B1844\n"
553 " LDR R0, [SP,#0x1C]\n"
554 " LDR R1, [R0,#0x7C]\n"
555 " LDR R3, [R0,#0x8C]\n"
556 " LDR R2, [R0,#0x90]\n"
557 " ADD R0, R0, #4\n"
558 " BLX R3\n"
559 " LDR R0, [SP,#0x1C]\n"
560 " BL sub_FF8B45B0\n"
561 " LDR R0, [SP,#0x1C]\n"
562 " LDR R1, [R0,#0x7C]\n"
563 " LDR R3, [R0,#0x94]\n"
564 " LDR R2, [R0,#0x98]\n"
565 " ADD R0, R0, #4\n"
566 " BLX R3\n"
567 " B loc_FF8B3470\n"
568 "loc_FF8B3178:\n"
569 " CMP R1, #0x13\n"
570 " CMPNE R1, #0x14\n"
571 " CMPNE R1, #0x15\n"
572 " CMPNE R1, #0x16\n"
573 " BNE loc_FF8B3230\n"
574 " ADD R3, SP, #0x0C\n"
575 " MOV R2, SP\n"
576 " ADD R1, SP, #0x10\n"
577 " BL sub_FF8B1B2C\n"
578 " CMP R0, #1\n"
579 " MOV R4, R0\n"
580 " CMPNE R4, #5\n"
581 " BNE loc_FF8B31CC\n"
582 " LDR R0, [SP,#0x1C]\n"
583 " MOV R2, R4\n"
584 " LDR R1, [R0,#0x7C]!\n"
585 " LDR R12, [R0,#0x10]!\n"
586 " LDR R3, [R0,#4]\n"
587 " MOV R0, SP\n"
588 " BLX R12\n"
589 " B loc_FF8B3204\n"
590 "loc_FF8B31CC:\n"
591 " LDR R0, [SP,#0x1C]\n"
592 " CMP R4, #2\n"
593 " LDR R3, [R0,#0x90]\n"
594 " CMPNE R4, #6\n"
595 " BNE loc_FF8B3218\n"
596 " LDR R12, [R0,#0x8C]\n"
597 " MOV R0, SP\n"
598 " MOV R2, R4\n"
599 " MOV R1, #1\n"
600 " BLX R12\n"
601 " LDR R0, [SP,#0x1C]\n"
602 " MOV R2, SP\n"
603 " ADD R1, SP, #0x10\n"
604 " BL sub_FF8B2C44\n"
605 "loc_FF8B3204:\n"
606 " LDR R0, [SP,#0x1C]\n"
607 " LDR R2, [SP,#0x0C]\n"
608 " MOV R1, R4\n"
609 " BL sub_FF8B2ED0\n"
610 " B loc_FF8B3470\n"
611 "loc_FF8B3218:\n"
612 " LDR R1, [R0,#0x7C]\n"
613 " LDR R12, [R0,#0x8C]\n"
614 " ADD R0, R0, #4\n"
615 " MOV R2, R4\n"
616 " BLX R12\n"
617 " B loc_FF8B3470\n"
618 "loc_FF8B3230:\n"
619 " CMP R1, #0x22\n"
620 " CMPNE R1, #0x23\n"
621 " BNE loc_FF8B327C\n"
622 " LDR R1, [R0,#0x7C]\n"
623 " ADD R1, R1, R1,LSL#1\n"
624 " ADD R1, R0, R1,LSL#2\n"
625 " SUB R1, R1, #8\n"
626 " LDMIA R1, {R2-R4}\n"
627 " STMIA R6, {R2-R4}\n"
628 " BL sub_FF8B0D94\n"
629 " LDR R0, [SP,#0x1C]\n"
630 " LDR R1, [R0,#0x7C]\n"
631 " LDR R3, [R0,#0x8C]\n"
632 " LDR R2, [R0,#0x90]\n"
633 " ADD R0, R0, #4\n"
634 " BLX R3\n"
635 " LDR R0, [SP,#0x1C]\n"
636 " BL sub_FF8B1088\n"
637 " B loc_FF8B3470\n"
638 "loc_FF8B327C:\n"
639 " ADD R1, R0, #4\n"
640 " LDMIA R1, {R2,R3,R12}\n"
641 " STMIA R6, {R2,R3,R12}\n"
642 " LDR R1, [R0]\n"
643 " CMP R1, #0x25\n"
644 " ADDLS PC, PC, R1,LSL#2\n"
645 " B loc_FF8B3450\n"
646
647 "loc_FF8B3298: B loc_FF8B3330\n"
648 "loc_FF8B329C: B loc_FF8B3330\n"
649 "loc_FF8B32A0: B loc_FF8B3338\n"
650 "loc_FF8B32A4: B loc_FF8B3340\n"
651 "loc_FF8B32A8: B loc_FF8B3340\n"
652 "loc_FF8B32AC: B loc_FF8B3340\n"
653 "loc_FF8B32B0: B loc_FF8B3330\n"
654 "loc_FF8B32B4: B loc_FF8B3338\n"
655 "loc_FF8B32B8: B loc_FF8B3340\n"
656 "loc_FF8B32BC: B loc_FF8B3340\n"
657 "loc_FF8B32C0: B loc_FF8B3358\n"
658 "loc_FF8B32C4: B loc_FF8B3358\n"
659 "loc_FF8B32C8: B loc_FF8B3444\n"
660 "loc_FF8B32CC: B loc_FF8B344C\n"
661 "loc_FF8B32D0: B loc_FF8B344C\n"
662 "loc_FF8B32D4: B loc_FF8B344C\n"
663 "loc_FF8B32D8: B loc_FF8B344C\n"
664 "loc_FF8B32DC: B loc_FF8B3450\n"
665 "loc_FF8B32E0: B loc_FF8B3450\n"
666 "loc_FF8B32E4: B loc_FF8B3450\n"
667 "loc_FF8B32E8: B loc_FF8B3450\n"
668 "loc_FF8B32EC: B loc_FF8B3450\n"
669 "loc_FF8B32F0: B loc_FF8B3450\n"
670 "loc_FF8B32F4: B loc_FF8B3348\n"
671 "loc_FF8B32F8: B loc_FF8B3350\n"
672 "loc_FF8B32FC: B loc_FF8B3350\n"
673 "loc_FF8B3300: B loc_FF8B3364\n"
674 "loc_FF8B3304: B loc_FF8B3364\n"
675 "loc_FF8B3308: B loc_FF8B336C\n"
676 "loc_FF8B330C: B loc_FF8B339C\n"
677 "loc_FF8B3310: B loc_FF8B33CC\n"
678 "loc_FF8B3314: B loc_FF8B33FC\n"
679 "loc_FF8B3318: B loc_FF8B342C\n"
680 "loc_FF8B331C: B loc_FF8B342C\n"
681 "loc_FF8B3320: B loc_FF8B3450\n"
682 "loc_FF8B3324: B loc_FF8B3450\n"
683 "loc_FF8B3328: B loc_FF8B3434\n"
684 "loc_FF8B332C: B loc_FF8B343C\n"
685
686
687 "loc_FF8B3330:\n"
688 " BL sub_FF8AFBA8\n"
689 " B loc_FF8B3450\n"
690
691 "loc_FF8B3338:\n"
692 " BL sub_FF8AFE30\n"
693 " B loc_FF8B3450\n"
694
695 "loc_FF8B3340:\n"
696 " BL sub_FF8B0038\n"
697 " B loc_FF8B3450\n"
698
699 "loc_FF8B3348:\n"
700 " BL sub_FF8B02B0\n"
701 " B loc_FF8B3450\n"
702
703 "loc_FF8B3350:\n"
704 " BL sub_FF8B04A8\n"
705 " B loc_FF8B3450\n"
706
707 "loc_FF8B3358:\n"
708
709 " BL sub_FF8B0764_my\n"
710
711 " MOV R4, #0\n"
712 " B loc_FF8B3450\n"
713
714 "loc_FF8B3364:\n"
715 " BL sub_FF8B08A4\n"
716 " B loc_FF8B3450\n"
717
718 "loc_FF8B336C:\n"
719 " LDRH R1, [R0,#4]\n"
720 " STRH R1, [SP,#0x10]\n"
721 " LDRH R1, [R5,#2]\n"
722 " STRH R1, [SP,#0x12]\n"
723 " LDRH R1, [R5,#4]\n"
724 " STRH R1, [SP,#0x14]\n"
725 " LDRH R1, [R5,#6]\n"
726 " STRH R1, [SP,#0x16]\n"
727 " LDRH R1, [R0,#0xC]\n"
728 " STRH R1, [SP,#0x18]\n"
729 " BL sub_FF8B4264\n"
730 " B loc_FF8B3450\n"
731
732 "loc_FF8B339C:\n"
733 " LDRH R1, [R0,#4]\n"
734 " STRH R1, [SP,#0x10]\n"
735 " LDRH R1, [R5,#2]\n"
736 " STRH R1, [SP,#0x12]\n"
737 " LDRH R1, [R5,#4]\n"
738 " STRH R1, [SP,#0x14]\n"
739 " LDRH R1, [R5,#6]\n"
740 " STRH R1, [SP,#0x16]\n"
741 " LDRH R1, [R5,#8]\n"
742 " STRH R1, [SP,#0x18]\n"
743 " BL sub_FF8B43C8\n"
744 " B loc_FF8B3450\n"
745
746 "loc_FF8B33CC:\n"
747 " LDRH R1, [R5]\n"
748 " STRH R1, [SP,#0x10]\n"
749 " LDRH R1, [R0,#6]\n"
750 " STRH R1, [SP,#0x12]\n"
751 " LDRH R1, [R5,#4]\n"
752 " STRH R1, [SP,#0x14]\n"
753 " LDRH R1, [R5,#6]\n"
754 " STRH R1, [SP,#0x16]\n"
755 " LDRH R1, [R5,#8]\n"
756 " STRH R1, [SP,#0x18]\n"
757 " BL sub_FF8B4474\n"
758 " B loc_FF8B3450\n"
759
760 "loc_FF8B33FC:\n"
761 " LDRH R1, [R5]\n"
762 " STRH R1, [SP,#0x10]\n"
763 " LDRH R1, [R5,#2]\n"
764 " STRH R1, [SP,#0x12]\n"
765 " LDRH R1, [R5,#4]\n"
766 " STRH R1, [SP,#0x14]\n"
767 " LDRH R1, [R5,#6]\n"
768 " STRH R1, [SP,#0x16]\n"
769 " LDRH R1, [R0,#0xC]\n"
770 " STRH R1, [SP,#0x18]\n"
771 " BL sub_FF8B4514\n"
772 " B loc_FF8B3450\n"
773
774 "loc_FF8B342C:\n"
775 " BL sub_FF8B0BEC\n"
776 " B loc_FF8B3450\n"
777
778 "loc_FF8B3434:\n"
779 " BL sub_FF8B118C\n"
780 " B loc_FF8B3450\n"
781
782 "loc_FF8B343C:\n"
783 " BL sub_FF8B13C8\n"
784 " B loc_FF8B3450\n"
785
786 "loc_FF8B3444:\n"
787 " BL sub_FF8B1544\n"
788 " B loc_FF8B3450\n"
789
790 "loc_FF8B344C:\n"
791 " BL sub_FF8B16E0\n"
792
793 "loc_FF8B3450:\n"
794 " LDR R0, [SP,#0x1C]\n"
795 " LDR R1, [R0,#0x7C]\n"
796 " LDR R3, [R0,#0x8C]\n"
797 " LDR R2, [R0,#0x90]\n"
798 " ADD R0, R0, #4\n"
799 " BLX R3\n"
800 " CMP R4, #1\n"
801 " BNE loc_FF8B34B8\n"
802
803 "loc_FF8B3470:\n"
804 " LDR R0, [SP,#0x1C]\n"
805 " MOV R2, #0xC\n"
806 " LDR R1, [R0,#0x7C]\n"
807 " ADD R1, R1, R1,LSL#1\n"
808 " ADD R0, R0, R1,LSL#2\n"
809 " SUB R4, R0, #8\n"
810 " LDR R0, =0x3C760\n"
811 " ADD R1, SP, #0x10\n"
812 " BL sub_FFB077E8\n"
813 " LDR R0, =0x3C76C\n"
814 " MOV R2, #0xC\n"
815 " ADD R1, SP, #0x10\n"
816 " BL sub_FFB077E8\n"
817 " LDR R0, =0x3C778\n"
818 " MOV R2, #0xC\n"
819 " MOV R1, R4\n"
820 " BL sub_FFB077E8\n"
821 " B loc_FF8B3530\n"
822 "loc_FF8B34B8:\n"
823 " LDR R0, [SP,#0x1C]\n"
824 " LDR R0, [R0]\n"
825 " CMP R0, #0xB\n"
826 " BNE loc_FF8B3500\n"
827 " MOV R3, #0\n"
828 " STR R3, [SP]\n"
829 " MOV R3, #1\n"
830 " MOV R2, #1\n"
831 " MOV R1, #1\n"
832 " MOV R0, #0\n"
833 " BL sub_FF8AF9B0\n"
834 " MOV R3, #0\n"
835 " STR R3, [SP]\n"
836 " MOV R3, #1\n"
837 " MOV R2, #1\n"
838 " MOV R1, #1\n"
839 " MOV R0, #0\n"
840 " B loc_FF8B352C\n"
841 "loc_FF8B3500:\n"
842 " MOV R3, #1\n"
843 " MOV R2, #1\n"
844 " MOV R1, #1\n"
845 " MOV R0, #1\n"
846 " STR R3, [SP]\n"
847 " BL sub_FF8AF9B0\n"
848 " MOV R3, #1\n"
849 " MOV R2, #1\n"
850 " MOV R1, #1\n"
851 " MOV R0, #1\n"
852 " STR R3, [SP]\n"
853
854 "loc_FF8B352C:\n"
855 " BL sub_FF8AFAF0\n"
856
857 "loc_FF8B3530:\n"
858 " LDR R0, [SP,#0x1C]\n"
859 " BL sub_FF8B41F0\n"
860 " B loc_FF8B2FA0\n"
861 );
862 }
863
864
865
866
867
868 void __attribute__((naked,noinline)) sub_FF8B0764_my(){
869 asm volatile(
870 " STMFD SP!, {R4-R8,LR}\n"
871 " LDR R7, =0x3C80\n"
872 " MOV R4, R0\n"
873 " LDR R0, [R7,#0x1C]\n"
874 " MOV R1, #0x3E\n"
875 " BL sub_FF87C81C\n"
876 " LDRSH R0, [R4,#4]\n"
877 " MOV R2, #0\n"
878 " MOV R1, #0\n"
879 " BL sub_FF8AF714\n"
880 " MOV R6, R0\n"
881 " LDRSH R0, [R4,#6]\n"
882 " BL sub_FF8AF824\n"
883 " LDRSH R0, [R4,#8]\n"
884 " BL sub_FF8AF87C\n"
885 " LDRSH R0, [R4,#0xA]\n"
886 " BL sub_FF8AF8D4\n"
887 " LDRSH R0, [R4,#0xC]\n"
888 " MOV R1, #0\n"
889 " BL sub_FF8AF92C\n"
890 " MOV R5, R0\n"
891 " LDR R0, [R4]\n"
892 " LDR R8, =0x3C778\n"
893 " CMP R0, #0xB\n"
894 " MOVEQ R6, #0\n"
895 " MOVEQ R5, #0\n"
896 " BEQ loc_FF8B07F8\n"
897 " CMP R6, #1\n"
898 " BNE loc_FF8B07F8\n"
899 " LDRSH R0, [R4,#4]\n"
900 " LDR R1, =0xFF8AF680\n"
901 " MOV R2, #2\n"
902 " BL sub_FF9363B4\n"
903 " STRH R0, [R4,#4]\n"
904 " MOV R0, #0\n"
905 " STR R0, [R7,#0x28]\n"
906 " B loc_FF8B0800\n"
907 "loc_FF8B07F8:\n"
908 " LDRH R0, [R8]\n"
909 " STRH R0, [R4,#4]\n"
910 "loc_FF8B0800:\n"
911 " CMP R5, #1\n"
912 " LDRNEH R0, [R8,#8]\n"
913 " BNE loc_FF8B081C\n"
914 " LDRSH R0, [R4,#0xC]\n"
915 " LDR R1, =0xFF8AF704\n"
916 " MOV R2, #0x20\n"
917 " BL sub_FF8B4220\n"
918 "loc_FF8B081C:\n"
919 " STRH R0, [R4,#0xC]\n"
920 " LDRSH R0, [R4, #6] \n"
921
922
923 " BL sub_FF8A2F10_my\n"
924
925 " LDRSH R0, [R4,#8]\n"
926 " MOV R1, #1\n"
927 " BL sub_FF8A3660\n"
928 " MOV R1, #0\n"
929 " ADD R0, R4, #8\n"
930 " BL sub_FF8A36E8\n"
931 " LDRSH R0, [R4,#0xE]\n"
932 " BL sub_FF8AB1D4\n"
933 " LDR R4, =0xBB8\n"
934 " CMP R6, #1\n"
935 " BNE loc_FF8B0874\n"
936 " LDR R0, [R7,#0x1C]\n"
937 " MOV R2, R4\n"
938 " MOV R1, #2\n"
939 " BL sub_FF87C728\n"
940 " TST R0, #1\n"
941 " SUBNE R1, R4, #0x620\n"
942 " LDRNE R0, =0xFF8AFD04\n"
943 " BLNE sub_FF81E88C\n"
944 "loc_FF8B0874:\n"
945 " CMP R5, #1\n"
946 " LDMNEFD SP!, {R4-R8,PC}\n"
947 " LDR R0, [R7,#0x1C]\n"
948 " MOV R2, R4\n"
949 " MOV R1, #0x20\n"
950 " BL sub_FF87C728\n"
951 " TST R0, #1\n"
952 " LDRNE R1, =0x59D\n"
953 " LDRNE R0, =0xFF8AFD04\n"
954 " LDMNEFD SP!, {R4-R8,LR}\n"
955 " BNE sub_FF81E88C\n"
956 " LDMFD SP!, {R4-R8,PC}\n"
957 );
958 }
959
960
961
962
963
964 void __attribute__((naked,noinline)) sub_FF8A2F10_my(){
965 asm volatile(
966 " STMFD SP!, {R4-R6,LR}\n"
967 " LDR R5, =0x3998\n"
968 " MOV R4, R0\n"
969 " LDR R0, [R5,#4]\n"
970 " CMP R0, #1\n"
971 " LDRNE R1, =0x146\n"
972 " LDRNE R0, =0xFF8A2D14\n"
973 " BLNE sub_FF81E88C\n"
974 " CMN R4, #0xC00\n"
975 " LDREQSH R4, [R5,#2]\n"
976 " CMN R4, #0xC00\n"
977 " MOVEQ R1, #0x14C\n"
978 " LDREQ R0, =0xFF8A2D14\n"
979 " STRH R4, [R5,#2]\n"
980 " BLEQ sub_FF81E88C\n"
981 " MOV R0, R4\n"
982
983
984 " BL apex2us\n"
985
986 " MOV R4, R0\n"
987
988 " MOV R0, R4\n"
989 " BL sub_FF8DB784\n"
990 " TST R0, #1\n"
991 " LDRNE R1, =0x151\n"
992 " LDMNEFD SP!, {R4-R6,LR}\n"
993 " LDRNE R0, =0xFF8A2D14\n"
994 " BNE sub_FF81E88C\n"
995 " LDMFD SP!, {R4-R6,PC}\n"
996 );
997 }
998
999