This source file includes following definitions.
- capt_seq_task
- sub_FF9425F4_my
- sub_FF8733D0_my
- exp_drv_task
- sub_FF8B07B4_my
- sub_FF8A2F60_my
1 #include "lolevel.h"
2 #include "platform.h"
3 #include "core.h"
4 #include "conf.h"
5
6 static long *nrflag = (long*)0x6718;
7
8 #include "../../../generic/capt_seq.c"
9
10
11
12
13 void __attribute__((naked,noinline)) capt_seq_task() {
14 asm volatile (
15 " STMFD SP!, {R3-R9,LR} \n"
16 " LDR R6, =0x2988 \n"
17 " LDR R4, =0x37B08 \n"
18 " MOV R9, #1 \n"
19 " MOV R7, #0 \n"
20 "loc_FF872FF4:\n"
21 " LDR R0, [R6,#4] \n"
22 " MOV R2, #0 \n"
23 " MOV R1, SP \n"
24 " BL sub_FF837DC8 \n"
25 " TST R0, #1 \n"
26 " BEQ loc_FF873020 \n"
27 " LDR R1, =0x5B4 \n"
28 " LDR R0, =0xFF872B70 \n"
29 " BL sub_FF81E88C \n"
30 " BL sub_FF81E844 \n"
31 " LDMFD SP!, {R3-R9,PC} \n"
32 "loc_FF873020:\n"
33 " LDR R0, [SP] \n"
34 " LDR R1, [R0] \n"
35 " CMP R1, #0x1D \n"
36 " ADDLS PC, PC, R1,LSL#2 \n"
37 " B loc_FF8732AC \n"
38
39 "loc_FF873034: B loc_FF8730AC \n"
40 "loc_FF873038: B loc_FF873110 \n"
41 "loc_FF87303C: B loc_FF87314C \n"
42 "loc_FF873040: B loc_FF873160 \n"
43 "loc_FF873044: B loc_FF873158 \n"
44 "loc_FF873048: B loc_FF873168 \n"
45 "loc_FF87304C: B loc_FF873170 \n"
46 "loc_FF873050: B loc_FF873178 \n"
47 "loc_FF873054: B loc_FF8731D0 \n"
48 "loc_FF873058: B loc_FF8731F8 \n"
49 "loc_FF87305C: B loc_FF8731DC \n"
50 "loc_FF873060: B loc_FF8731E8 \n"
51 "loc_FF873064: B loc_FF8731F0 \n"
52 "loc_FF873068: B loc_FF873200 \n"
53 "loc_FF87306C: B loc_FF873208 \n"
54 "loc_FF873070: B loc_FF873210 \n"
55 "loc_FF873074: B loc_FF873218 \n"
56 "loc_FF873078: B loc_FF873220 \n"
57 "loc_FF87307C: B loc_FF87322C \n"
58 "loc_FF873080: B loc_FF873234 \n"
59 "loc_FF873084: B loc_FF87323C \n"
60 "loc_FF873088: B loc_FF873244 \n"
61 "loc_FF87308C: B loc_FF87324C \n"
62 "loc_FF873090: B loc_FF873258 \n"
63 "loc_FF873094: B loc_FF873260 \n"
64 "loc_FF873098: B loc_FF873268 \n"
65 "loc_FF87309C: B loc_FF873270 \n"
66 "loc_FF8730A0: B loc_FF873278 \n"
67 "loc_FF8730A4: B loc_FF873284 \n"
68 "loc_FF8730A8: B loc_FF8732B8 \n"
69
70 "loc_FF8730AC:\n"
71 " BL sub_FF873938 \n"
72 " BL shooting_expo_param_override\n"
73 " BL sub_FF870E28 \n"
74
75
76
77 "MOV R0, #0\n"
78 "STR R0, [R4,#0x24]\n"
79
80 " LDR R0, [R4,#0x24] \n"
81 " CMP R0, #0 \n"
82 " BEQ loc_FF8732B8 \n"
83 " BL sub_FF872850 \n"
84 " MOV R5, R0 \n"
85 " LDR R0, [R4,#0x24] \n"
86 " CMP R0, #0 \n"
87 " BEQ loc_FF8730F4 \n"
88 " MOV R0, #0xC \n"
89 " BL sub_FF877A7C \n"
90 " TST R0, #1 \n"
91 " STRNE R9, [R6,#0x10] \n"
92 " LDRNE R0, [R5,#8] \n"
93 " ORRNE R0, R0, #0x40000000 \n"
94 " STRNE R0, [R5,#8] \n"
95 " BNE loc_FF8732B8 \n"
96
97 "loc_FF8730F4:\n"
98 " MOV R0, R5 \n"
99 " BL sub_FF872AF4 \n"
100 " MOV R0, R5 \n"
101
102
103 " BL sub_FF9425F4_my \n"
104
105 " TST R0, #1 \n"
106 " STRNE R9, [R6,#0x10] \n"
107 " B loc_FF8732B8 \n"
108
109 "loc_FF873110:\n"
110 " LDR R0, [R4,#0x24] \n"
111 " CMP R0, #0 \n"
112 " BNE loc_FF87313C \n"
113 " MOV R0, #0xC \n"
114 " BL sub_FF877A7C \n"
115 " TST R0, #1 \n"
116 " LDRNE R0, [SP] \n"
117 " MOVNE R1, #1 \n"
118 " LDRNE R2, [R0,#0xC] \n"
119 " MOVNE R0, #1 \n"
120 " BNE loc_FF8731C8 \n"
121
122 "loc_FF87313C:\n"
123 " LDR R0, [SP] \n"
124
125 " BL sub_FF8733D0_my \n"
126
127 "loc_FF873144:\n"
128 " STR R7, [R4,#0x24] \n"
129 " B loc_FF8732B8 \n"
130
131 "loc_FF87314C:\n"
132 " MOV R0, #1 \n"
133 " BL sub_FF873B8C \n"
134 " B loc_FF8732B8 \n"
135
136 "loc_FF873158:\n"
137 " BL sub_FF873578 \n"
138 " B loc_FF873144 \n"
139
140 "loc_FF873160:\n"
141 " BL sub_FF873918 \n"
142 " B loc_FF873144 \n"
143
144 "loc_FF873168:\n"
145 " BL sub_FF873920 \n"
146 " B loc_FF8732B8 \n"
147
148 "loc_FF873170:\n"
149 " BL sub_FF873AAC \n"
150 " B loc_FF8731D4 \n"
151
152 "loc_FF873178:\n"
153 " LDR R5, [R0,#0xC] \n"
154 " BL sub_FF873928 \n"
155 " MOV R0, R5 \n"
156 " BL sub_FF94140C \n"
157 " TST R0, #1 \n"
158 " MOV R8, R0 \n"
159 " BNE loc_FF8731B8 \n"
160 " BL sub_FF884B34 \n"
161 " STR R0, [R5,#0x18] \n"
162 " MOV R0, R5 \n"
163 " BL sub_FF94250C \n"
164 " MOV R0, R5 \n"
165 " BL sub_FF942908 \n"
166 " MOV R8, R0 \n"
167 " LDR R0, [R5,#0x18] \n"
168 " BL sub_FF884D38 \n"
169 "loc_FF8731B8:\n"
170 " BL sub_FF873918 \n"
171 " MOV R2, R5 \n"
172 " MOV R1, #9 \n"
173 " MOV R0, R8 \n"
174 "loc_FF8731C8:\n"
175 " BL sub_FF871314 \n"
176 " B loc_FF8732B8 \n"
177
178 "loc_FF8731D0:\n"
179 " BL sub_FF873B0C \n"
180 "loc_FF8731D4:\n"
181 " BL sub_FF870E28 \n"
182 " B loc_FF8732B8 \n"
183 "loc_FF8731DC:\n"
184 " LDR R0, [R4,#0x54] \n"
185 " BL sub_FF873F18 \n"
186 " B loc_FF8732B8 \n"
187 "loc_FF8731E8:\n"
188 " BL sub_FF8741CC \n"
189 " B loc_FF8732B8 \n"
190 "loc_FF8731F0:\n"
191 " BL sub_FF874260 \n"
192 " B loc_FF8732B8 \n"
193 "loc_FF8731F8:\n"
194 " BL sub_FF873918 \n"
195 " B loc_FF8732B8 \n"
196 "loc_FF873200:\n"
197 " BL sub_FF941624 \n"
198 " B loc_FF8732B8 \n"
199 "loc_FF873208:\n"
200 " BL sub_FF941838 \n"
201 " B loc_FF8732B8 \n"
202 "loc_FF873210:\n"
203 " BL sub_FF9418D0 \n"
204 " B loc_FF8732B8 \n"
205 "loc_FF873218:\n"
206 " BL sub_FF9419A0 \n"
207 " B loc_FF8732B8 \n"
208 "loc_FF873220:\n"
209 " MOV R0, #0 \n"
210 " BL sub_FF941BF0 \n"
211 " B loc_FF8732B8 \n"
212 "loc_FF87322C:\n"
213 " BL sub_FF941D40 \n"
214 " B loc_FF8732B8 \n"
215 "loc_FF873234:\n"
216 " BL sub_FF941DD0 \n"
217 " B loc_FF8732B8 \n"
218 "loc_FF87323C:\n"
219 " BL sub_FF941E90 \n"
220 " B loc_FF8732B8 \n"
221 "loc_FF873244:\n"
222 " BL sub_FF873D04 \n"
223 " B loc_FF8732B8 \n"
224 "loc_FF87324C:\n"
225 " BL sub_FF873DA4 \n"
226 " BL sub_FF835F18 \n"
227 " B loc_FF8732B8 \n"
228 "loc_FF873258:\n"
229 " BL sub_FF941A6C \n"
230 " B loc_FF8732B8 \n"
231 "loc_FF873260:\n"
232 " BL sub_FF941AD8 \n"
233 " B loc_FF8732B8 \n"
234 "loc_FF873268:\n"
235 " BL sub_FF87622C \n"
236 " B loc_FF8732B8 \n"
237 "loc_FF873270:\n"
238 " BL sub_FF876294 \n"
239 " B loc_FF8732B8 \n"
240 "loc_FF873278:\n"
241 " BL sub_FF8762F0 \n"
242 " BL sub_FF8762B0 \n"
243 " B loc_FF8732B8 \n"
244 "loc_FF873284:\n"
245 " MOV R0, #1 \n"
246 " BL sub_FF94314C \n"
247 " MOV R0, #1 \n"
248 " BL sub_FF94325C \n"
249 " LDRH R0, [R4,#0x98] \n"
250 " CMP R0, #4 \n"
251 " BNE loc_FF8732B8 \n"
252 " BL sub_FF876294 \n"
253 " BL sub_FF8766D0 \n"
254 " B loc_FF8732B8 \n"
255
256 "loc_FF8732AC:\n"
257 " LDR R1, =0x709 \n"
258 " LDR R0, =0xFF872B70 \n"
259 " BL sub_FF81E88C \n"
260
261 "loc_FF8732B8:\n"
262 " LDR R0, [SP] \n"
263 " LDR R1, [R0,#4] \n"
264 " LDR R0, [R6] \n"
265 " BL sub_FF87C838 \n"
266 " LDR R5, [SP] \n"
267 " LDR R0, [R5,#8] \n"
268 " CMP R0, #0 \n"
269 " LDREQ R1, =0x132 \n"
270 " LDREQ R0, =0xFF872B70 \n"
271 " BLEQ sub_FF81E88C \n"
272 " STR R7, [R5,#8] \n"
273 " B loc_FF872FF4 \n"
274 );
275 }
276
277
278
279
280
281 void __attribute__((naked,noinline)) sub_FF9425F4_my(){
282 asm volatile(
283 "STMFD SP!, {R0-R8,LR}\n"
284 "MOV R4, R0\n"
285 "BL sub_FF943448\n"
286 "MVN R1, #0\n"
287 "BL sub_FF87C86C\n"
288 "LDR R5, =0x6718\n"
289 "LDR R0, [R5,#0xC]\n"
290 "CMP R0, #0\n"
291 "BNE loc_FF942644\n"
292 "MOV R1, #1\n"
293 "MOV R0, #0\n"
294 "BL sub_FF838610\n"
295 "STR R0, [R5,#0xC]\n"
296 "MOV R3, #0\n"
297 "STR R3, [SP]\n"
298 "LDR R3, =0xFF941F80\n"
299 "LDR R0, =0xFF942870\n"
300 "MOV R2, #0x400\n"
301 "MOV R1, #0x17\n"
302 "BL sub_FF8385DC\n"
303 "loc_FF942644:\n"
304 "MOV R2, #4\n"
305 "ADD R1, SP, #0x08\n"
306 "MOV R0, #0x8A\n"
307 "BL sub_FF8849A4\n"
308 "TST R0, #1\n"
309 "LDRNE R1, =0x3C5\n"
310 "LDRNE R0, =0xFF942218\n"
311 "BLNE sub_FF81E88C\n"
312 "LDR R6, =0x37BCC\n"
313 "LDR R8, =0x37B08\n"
314 "LDRSH R2, [R6,#0xC]\n"
315 "LDRSH R1, [R6,#0xE]\n"
316 "LDR R0, [R8,#0x8C]\n"
317 "BL sub_FF90B5C0\n"
318 "BL sub_FF85BC98\n"
319 "LDR R3, =0x6720\n"
320 "STRH R0, [R4,#0xA4]\n"
321 "SUB R2, R3, #4\n"
322 "STRD R2, [SP]\n"
323 "MOV R1, R0\n"
324 "LDRH R0, [R8,#0x5C]\n"
325 "LDRSH R2, [R6,#0xC]\n"
326 "SUB R3, R3, #8\n"
327 "BL sub_FF944A8C\n"
328
329 "BL wait_until_remote_button_is_released\n"
330 "BL capt_seq_hook_set_nr\n"
331
332 "B sub_FF9426A4\n"
333 );
334 }
335
336
337
338
339
340
341 void __attribute__((naked,noinline)) sub_FF8733D0_my(){
342 asm volatile(
343 "STMFD SP!, {R4-R6,LR}\n"
344 "LDR R4, [R0,#0xC]\n"
345 "LDR R6, =0x37B08\n"
346 "LDR R0, [R4,#8]\n"
347 "MOV R5, #0\n"
348 "ORR R0, R0, #1\n"
349 "STR R0, [R4,#8]\n"
350 "LDR R0, [R6,#0x24]\n"
351 "CMP R0, #0\n"
352 "MOVEQ R0, #2\n"
353 "BLEQ sub_FF86F508\n"
354 "BL sub_FF873928\n"
355 "LDR R0, [R6,#0x24]\n"
356 "CMP R0, #0\n"
357 "BNE loc_FF873498\n"
358 "MOV R0, #0\n"
359 "BL sub_FF94314C\n"
360 "MOV R0, #0\n"
361 "BL sub_FF94325C\n"
362 "MOV R0, R4\n"
363 "BL sub_FF873CAC\n"
364 "MOV R0, R4\n"
365 "BL sub_FF94105C\n"
366 "CMP R0, #0\n"
367 "BEQ loc_FF873460\n"
368 "BL sub_FF94318C\n"
369 "BL sub_FF9432A0\n"
370 "BL sub_FF9432F0\n"
371 "MOV R0, R4\n"
372 "BL sub_FF941140\n"
373 "TST R0, #1\n"
374 "MOVNE R2, R4\n"
375 "LDMNEFD SP!, {R4-R6,LR}\n"
376 "MOVNE R1, #1\n"
377 "BNE sub_FF871314\n"
378 "B loc_FF873474\n"
379 "loc_FF873460:\n"
380 "MOV R0, R4\n"
381 "BL sub_FF9410DC\n"
382 "BL sub_FF94318C\n"
383 "BL sub_FF9432A0\n"
384 "BL sub_FF9432F0\n"
385 "loc_FF873474:\n"
386 "MOV R0, R4\n"
387 "BL sub_FF872AF4\n"
388 "MOV R0, R4\n"
389 "BL sub_FF94250C\n"
390 "BL sub_FF942F84\n"
391 "MOV R0, R4\n"
392
393
394 "BL sub_FF9425F4_my \n"
395
396 "MOV R5, R0\n"
397 "BL capt_seq_hook_raw_here\n"
398 "B loc_FF8734A8\n"
399
400
401 "loc_FF873498:\n"
402 "LDR R0, =0x2988\n"
403 "LDR R0, [R0,#0x10]\n"
404 "CMP R0, #0\n"
405 "MOVNE R5, #0x1D\n"
406
407 "loc_FF8734A8:\n"
408 "BL sub_FF876294\n"
409 "BL sub_FF8762DC\n"
410 "BL sub_FF87631C\n"
411 "MOV R2, R4\n"
412 "MOV R1, #1\n"
413 "MOV R0, R5\n"
414 "BL sub_FF871314\n"
415 "BL sub_FF9428AC\n"
416 "CMP R0, #0\n"
417 "LDRNE R0, [R4,#8]\n"
418 "ORRNE R0, R0, #0x2000\n"
419 "STRNE R0, [R4,#8]\n"
420 "LDMFD SP!, {R4-R6,PC}\n"
421 ) ;
422 }
423
424
425
426
427
428 void __attribute__((naked,noinline)) exp_drv_task() {
429 asm volatile(
430 "STMFD SP!, {R4-R8,LR}\n"
431 "SUB SP, SP, #0x20\n"
432 "LDR R8, =0xBB8\n"
433 "LDR R7, =0x3C80\n"
434 "LDR R5, =0x3C760\n"
435 "MOV R0, #0\n"
436 "ADD R6, SP, #0x10\n"
437 "STR R0, [SP, #0x0C]\n"
438 "loc_FF8B2FF0:\n"
439 "LDR R0, [R7,#0x20]\n"
440 "MOV R2, #0\n"
441 "ADD R1, SP, #0x1C\n"
442 "BL sub_FF837DC8\n"
443 "LDR R0, [SP, #0x0C]\n"
444 "CMP R0, #1\n"
445 "BNE loc_FF8B303C\n"
446 "LDR R0, [SP,#0x1C]\n"
447 "LDR R0, [R0]\n"
448 "CMP R0, #0x13\n"
449 "CMPNE R0, #0x14\n"
450 "CMPNE R0, #0x15\n"
451 "CMPNE R0, #0x16\n"
452 "BEQ loc_FF8B3158\n"
453 "CMP R0, #0x28\n"
454 "BEQ loc_FF8B3130\n"
455 "ADD R1, SP, #0x0C\n"
456 "MOV R0, #0\n"
457 "BL sub_FF8B2F80\n"
458 "loc_FF8B303C:\n"
459 "LDR R0, [SP,#0x1C]\n"
460 "LDR R1, [R0]\n"
461 "CMP R1, #0x2D\n"
462 "BNE loc_FF8B306C\n"
463 "LDR R0, [SP,#0x1C]\n"
464 "BL sub_FF8B4240\n"
465 "LDR R0, [R7,#0x1C]\n"
466 "MOV R1, #1\n"
467 "BL sub_FF87C838\n"
468 "BL sub_FF81E844\n"
469 "ADD SP, SP, #0x20\n"
470 "LDMFD SP!, {R4-R8,PC}\n"
471 "loc_FF8B306C:\n"
472 "CMP R1, #0x2C\n"
473 "BNE loc_FF8B3088\n"
474 "LDR R2, [R0,#0x8C]!\n"
475 "LDR R1, [R0,#4]\n"
476 "MOV R0, R1\n"
477 "BLX R2\n"
478 "B loc_FF8B3580\n"
479 "loc_FF8B3088:\n"
480 "CMP R1, #0x26\n"
481 "BNE loc_FF8B30D8\n"
482 "LDR R0, [R7,#0x1C]\n"
483 "MOV R1, #0x80\n"
484 "BL sub_FF87C86C\n"
485 "LDR R0, =0xFF8AF6E0\n"
486 "MOV R1, #0x80\n"
487 "BL sub_FF93641C\n"
488 "LDR R0, [R7,#0x1C]\n"
489 "MOV R2, R8\n"
490 "MOV R1, #0x80\n"
491 "BL sub_FF87C778\n"
492 "TST R0, #1\n"
493 "LDRNE R1, =0xE54\n"
494 "BNE loc_FF8B311C\n"
495 "loc_FF8B30C4:\n"
496 "LDR R1, [SP,#0x1C]\n"
497 "LDR R0, [R1,#0x90]\n"
498 "LDR R1, [R1,#0x8C]\n"
499 "BLX R1\n"
500 "B loc_FF8B3580\n"
501 "loc_FF8B30D8:\n"
502 "CMP R1, #0x27\n"
503 "BNE loc_FF8B3128\n"
504 "ADD R1, SP, #0xC\n"
505 "BL sub_FF8B2F80\n"
506 "LDR R0, [R7,#0x1C]\n"
507 "MOV R1, #0x100\n"
508 "BL sub_FF87C86C\n"
509 "LDR R0, =0xFF8AF6F0\n"
510 "MOV R1, #0x100\n"
511 "BL sub_FF9366A4\n"
512 "LDR R0, [R7,#0x1C]\n"
513 "MOV R2, R8\n"
514 "MOV R1, #0x100\n"
515 "BL sub_FF87C778\n"
516 "TST R0, #1\n"
517 "BEQ loc_FF8B30C4\n"
518 "LDR R1, =0xE5E\n"
519 "loc_FF8B311C:\n"
520 "LDR R0, =0xFF8AFD54\n"
521 "BL sub_FF81E88C\n"
522 "B loc_FF8B30C4\n"
523 "loc_FF8B3128:\n"
524 "CMP R1, #0x28\n"
525 "BNE loc_FF8B3140\n"
526 "loc_FF8B3130:\n"
527 "LDR R0, [SP,#0x1C]\n"
528 "ADD R1, SP, #0x0C\n"
529 "BL sub_FF8B2F80\n"
530 "B loc_FF8B30C4\n"
531 "loc_FF8B3140:\n"
532 "CMP R1, #0x2B\n"
533 "BNE loc_FF8B3158\n"
534 "BL sub_FF8A31F0\n"
535 "BL sub_FF8A3E14\n"
536 "BL sub_FF8A3968\n"
537 "B loc_FF8B30C4\n"
538 "loc_FF8B3158:\n"
539 "LDR R0, [SP,#0x1C]\n"
540 "MOV R4, #1\n"
541 "LDR R1, [R0]\n"
542 "CMP R1, #0x11\n"
543 "CMPNE R1, #0x12\n"
544 "BNE loc_FF8B31C8\n"
545 "LDR R1, [R0,#0x7C]\n"
546 "ADD R1, R1, R1,LSL#1\n"
547 "ADD R1, R0, R1,LSL#2\n"
548 "SUB R1, R1, #8\n"
549 "LDMIA R1, {R2-R4}\n"
550 "STMIA R6, {R2-R4}\n"
551 "BL sub_FF8B1894\n"
552 "LDR R0, [SP,#0x1C]\n"
553 "LDR R1, [R0,#0x7C]\n"
554 "LDR R3, [R0,#0x8C]\n"
555 "LDR R2, [R0,#0x90]\n"
556 "ADD R0, R0, #4\n"
557 "BLX R3\n"
558 "LDR R0, [SP,#0x1C]\n"
559 "BL sub_FF8B4600\n"
560 "LDR R0, [SP,#0x1C]\n"
561 "LDR R1, [R0,#0x7C]\n"
562 "LDR R3, [R0,#0x94]\n"
563 "LDR R2, [R0,#0x98]\n"
564 "ADD R0, R0, #4\n"
565 "BLX R3\n"
566 "B loc_FF8B34C0\n"
567 "loc_FF8B31C8:\n"
568 "CMP R1, #0x13\n"
569 "CMPNE R1, #0x14\n"
570 "CMPNE R1, #0x15\n"
571 "CMPNE R1, #0x16\n"
572 "BNE loc_FF8B3280\n"
573 "ADD R3, SP, #0x0C\n"
574 "MOV R2, SP\n"
575 "ADD R1, SP, #0x10\n"
576 "BL sub_FF8B1B7C\n"
577 "CMP R0, #1\n"
578 "MOV R4, R0\n"
579 "CMPNE R4, #5\n"
580 "BNE loc_FF8B321C\n"
581 "LDR R0, [SP,#0x1C]\n"
582 "MOV R2, R4\n"
583 "LDR R1, [R0,#0x7C]!\n"
584 "LDR R12, [R0,#0x10]!\n"
585 "LDR R3, [R0,#4]\n"
586 "MOV R0, SP\n"
587 "BLX R12\n"
588 "B loc_FF8B3254\n"
589 "loc_FF8B321C:\n"
590 "LDR R0, [SP,#0x1C]\n"
591 "CMP R4, #2\n"
592 "LDR R3, [R0,#0x90]\n"
593 "CMPNE R4, #6\n"
594 "BNE loc_FF8B3268\n"
595 "LDR R12, [R0,#0x8C]\n"
596 "MOV R0, SP\n"
597 "MOV R2, R4\n"
598 "MOV R1, #1\n"
599 "BLX R12\n"
600 "LDR R0, [SP,#0x1C]\n"
601 "MOV R2, SP\n"
602 "ADD R1, SP, #0x10\n"
603 "BL sub_FF8B2C94\n"
604 "loc_FF8B3254:\n"
605 "LDR R0, [SP,#0x1C]\n"
606 "LDR R2, [SP,#0x0D]\n"
607 "MOV R1, R4\n"
608 "BL sub_FF8B2F20\n"
609 "B loc_FF8B34C0\n"
610 "loc_FF8B3268:\n"
611 "LDR R1, [R0,#0x7C]\n"
612 "LDR R12, [R0,#0x8C]\n"
613 "ADD R0, R0, #4\n"
614 "MOV R2, R4\n"
615 "BLX R12\n"
616 "B loc_FF8B34C0\n"
617 "loc_FF8B3280:\n"
618 "CMP R1, #0x22\n"
619 "CMPNE R1, #0x23\n"
620 "BNE loc_FF8B32CC\n"
621 "LDR R1, [R0,#0x7C]\n"
622 "ADD R1, R1, R1,LSL#1\n"
623 "ADD R1, R0, R1,LSL#2\n"
624 "SUB R1, R1, #8\n"
625 "LDMIA R1, {R2-R4}\n"
626 "STMIA R6, {R2-R4}\n"
627 "BL sub_FF8B0DE4\n"
628 "LDR R0, [SP,#0x1C]\n"
629 "LDR R1, [R0,#0x7C]\n"
630 "LDR R3, [R0,#0x8C]\n"
631 "LDR R2, [R0,#0x90]\n"
632 "ADD R0, R0, #4\n"
633 "BLX R3\n"
634 "LDR R0, [SP,#0x1C]\n"
635 "BL sub_FF8B10D8\n"
636 "B loc_FF8B34C0\n"
637 "loc_FF8B32CC:\n"
638 "ADD R1, R0, #4\n"
639 "LDMIA R1, {R2,R3,R12}\n"
640 "STMIA R6, {R2,R3,R12}\n"
641 "LDR R1, [R0]\n"
642 "CMP R1, #0x25\n"
643 "ADDLS PC, PC, R1,LSL#2\n"
644 "B loc_FF8B34A0\n"
645
646 "loc_FF8B32E8: B loc_FF8B3380\n"
647 "loc_FF8B32EC: B loc_FF8B3380\n"
648 "loc_FF8B32F0: B loc_FF8B3388\n"
649 "loc_FF8B32F4: B loc_FF8B3390\n"
650 "loc_FF8B32F8: B loc_FF8B3390\n"
651 "loc_FF8B32FC: B loc_FF8B3390\n"
652 "loc_FF8B3300: B loc_FF8B3380\n"
653 "loc_FF8B3304: B loc_FF8B3388\n"
654 "loc_FF8B3308: B loc_FF8B3390\n"
655 "loc_FF8B330C: B loc_FF8B3390\n"
656 "loc_FF8B3310: B loc_FF8B33A8\n"
657 "loc_FF8B3314: B loc_FF8B33A8\n"
658 "loc_FF8B3318: B loc_FF8B3494\n"
659 "loc_FF8B331C: B loc_FF8B349C\n"
660 "loc_FF8B3320: B loc_FF8B349C\n"
661 "loc_FF8B3324: B loc_FF8B349C\n"
662 "loc_FF8B3328: B loc_FF8B349C\n"
663 "loc_FF8B332C: B loc_FF8B34A0\n"
664 "loc_FF8B3330: B loc_FF8B34A0\n"
665 "loc_FF8B3334: B loc_FF8B34A0\n"
666 "loc_FF8B3338: B loc_FF8B34A0\n"
667 "loc_FF8B333C: B loc_FF8B34A0\n"
668 "loc_FF8B3340: B loc_FF8B34A0\n"
669 "loc_FF8B3344: B loc_FF8B3398\n"
670 "loc_FF8B3348: B loc_FF8B33A0\n"
671 "loc_FF8B334C: B loc_FF8B33A0\n"
672 "loc_FF8B3350: B loc_FF8B33B4\n"
673 "loc_FF8B3354: B loc_FF8B33B4\n"
674 "loc_FF8B3358: B loc_FF8B33BC\n"
675 "loc_FF8B335C: B loc_FF8B33EC\n"
676 "loc_FF8B3360: B loc_FF8B341C\n"
677 "loc_FF8B3364: B loc_FF8B344C\n"
678 "loc_FF8B3368: B loc_FF8B347C\n"
679 "loc_FF8B336C: B loc_FF8B347C\n"
680 "loc_FF8B3370: B loc_FF8B34A0\n"
681 "loc_FF8B3374: B loc_FF8B34A0\n"
682 "loc_FF8B3378: B loc_FF8B3484\n"
683 "loc_FF8B337C: B loc_FF8B348C\n"
684
685
686 "loc_FF8B3380:\n"
687 "BL sub_FF8AFBF8\n"
688 "B loc_FF8B34A0\n"
689
690 "loc_FF8B3388:\n"
691 "BL sub_FF8AFE80\n"
692 "B loc_FF8B34A0\n"
693
694 "loc_FF8B3390:\n"
695 "BL sub_FF8B0088\n"
696 "B loc_FF8B34A0\n"
697
698 "loc_FF8B3398:\n"
699 "BL sub_FF8B0300\n"
700 "B loc_FF8B34A0\n"
701
702 "loc_FF8B33A0:\n"
703 "BL sub_FF8B04F8\n"
704 "B loc_FF8B34A0\n"
705
706 "loc_FF8B33A8:\n"
707
708 "BL sub_FF8B07B4_my\n"
709
710 "MOV R4, #0\n"
711 "B loc_FF8B34A0\n"
712
713 "loc_FF8B33B4:\n"
714 "BL sub_FF8B08F4\n"
715 "B loc_FF8B34A0\n"
716
717 "loc_FF8B33BC:\n"
718 "LDRH R1, [R0,#4]\n"
719 "STRH R1, [SP,#0x10]\n"
720 "LDRH R1, [R5,#2]\n"
721 "STRH R1, [SP,#0x12]\n"
722 "LDRH R1, [R5,#4]\n"
723 "STRH R1, [SP,#0x14]\n"
724 "LDRH R1, [R5,#6]\n"
725 "STRH R1, [SP,#0x16]\n"
726 "LDRH R1, [R0,#0xC]\n"
727 "STRH R1, [SP,#0x18]\n"
728 "BL sub_FF8B42B4\n"
729 "B loc_FF8B34A0\n"
730
731 "loc_FF8B33EC:\n"
732 "LDRH R1, [R0,#4]\n"
733 "STRH R1, [SP,#0x10]\n"
734 "LDRH R1, [R5,#2]\n"
735 "STRH R1, [SP,#0x12]\n"
736 "LDRH R1, [R5,#4]\n"
737 "STRH R1, [SP,#0x14]\n"
738 "LDRH R1, [R5,#6]\n"
739 "STRH R1, [SP,#0x16]\n"
740 "LDRH R1, [R5,#8]\n"
741 "STRH R1, [SP,#0x18]\n"
742 "BL sub_FF8B4418\n"
743 "B loc_FF8B34A0\n"
744
745 "loc_FF8B341C:\n"
746 "LDRH R1, [R5]\n"
747 "STRH R1, [SP,#0x10]\n"
748 "LDRH R1, [R0,#6]\n"
749 "STRH R1, [SP,#0x12]\n"
750 "LDRH R1, [R5,#4]\n"
751 "STRH R1, [SP,#0x14]\n"
752 "LDRH R1, [R5,#6]\n"
753 "STRH R1, [SP,#0x16]\n"
754 "LDRH R1, [R5,#8]\n"
755 "STRH R1, [SP,#0x18]\n"
756 "BL sub_FF8B44C4\n"
757 "B loc_FF8B34A0\n"
758
759 "loc_FF8B344C:\n"
760 "LDRH R1, [R5]\n"
761 "STRH R1, [SP,#0x10]\n"
762 "LDRH R1, [R5,#2]\n"
763 "STRH R1, [SP,#0x12]\n"
764 "LDRH R1, [R5,#4]\n"
765 "STRH R1, [SP,#0x14]\n"
766 "LDRH R1, [R5,#6]\n"
767 "STRH R1, [SP,#0x16]\n"
768 "LDRH R1, [R0,#0xC]\n"
769 "STRH R1, [SP,#0x18]\n"
770 "BL sub_FF8B4564\n"
771 "B loc_FF8B34A0\n"
772
773 "loc_FF8B347C:\n"
774 "BL sub_FF8B0C3C\n"
775 "B loc_FF8B34A0\n"
776
777 "loc_FF8B3484:\n"
778 "BL sub_FF8B11DC\n"
779 "B loc_FF8B34A0\n"
780
781 "loc_FF8B348C:\n"
782 "BL sub_FF8B1418\n"
783 "B loc_FF8B34A0\n"
784
785 "loc_FF8B3494:\n"
786 "BL sub_FF8B1594\n"
787 "B loc_FF8B34A0\n"
788
789 "loc_FF8B349C:\n"
790 "BL sub_FF8B1730\n"
791
792 "loc_FF8B34A0:\n"
793 "LDR R0, [SP,#0x1C]\n"
794 "LDR R1, [R0,#0x7C]\n"
795 "LDR R3, [R0,#0x8C]\n"
796 "LDR R2, [R0,#0x90]\n"
797 "ADD R0, R0, #4\n"
798 "BLX R3\n"
799 "CMP R4, #1\n"
800 "BNE loc_FF8B3508\n"
801
802 "loc_FF8B34C0:\n"
803 "LDR R0, [SP,#0x1C]\n"
804 "MOV R2, #0xC\n"
805 "LDR R1, [R0,#0x7C]\n"
806 "ADD R1, R1, R1,LSL#1\n"
807 "ADD R0, R0, R1,LSL#2\n"
808 "SUB R4, R0, #8\n"
809 "LDR R0, =0x3C760\n"
810 "ADD R1, SP, #0x10\n"
811 "BL sub_FFB079A4\n"
812 "LDR R0, =0x3C76C\n"
813 "MOV R2, #0xC\n"
814 "ADD R1, SP, #0x10\n"
815 "BL sub_FFB079A4\n"
816 "LDR R0, =0x3C778\n"
817 "MOV R2, #0xC\n"
818 "MOV R1, R4\n"
819 "BL sub_FFB079A4\n"
820 "B loc_FF8B3580\n"
821 "loc_FF8B3508:\n"
822 "LDR R0, [SP,#0x1C]\n"
823 "LDR R0, [R0]\n"
824 "CMP R0, #0xB\n"
825 "BNE loc_FF8B3550\n"
826 "MOV R3, #0\n"
827 "STR R3, [SP]\n"
828 "MOV R3, #1\n"
829 "MOV R2, #1\n"
830 "MOV R1, #1\n"
831 "MOV R0, #0\n"
832 "BL sub_FF8AFA00\n"
833 "MOV R3, #0\n"
834 "STR R3, [SP]\n"
835 "MOV R3, #1\n"
836 "MOV R2, #1\n"
837 "MOV R1, #1\n"
838 "MOV R0, #0\n"
839 "B loc_FF8B357C\n"
840 "loc_FF8B3550:\n"
841 "MOV R3, #1\n"
842 "MOV R2, #1\n"
843 "MOV R1, #1\n"
844 "MOV R0, #1\n"
845 "STR R3, [SP]\n"
846 "BL sub_FF8AFA00\n"
847 "MOV R3, #1\n"
848 "MOV R2, #1\n"
849 "MOV R1, #1\n"
850 "MOV R0, #1\n"
851 "STR R3, [SP]\n"
852
853 "loc_FF8B357C:\n"
854 "BL sub_FF8AFB40\n"
855
856 "loc_FF8B3580:\n"
857 "LDR R0, [SP,#0x1C]\n"
858 "BL sub_FF8B4240\n"
859 "B loc_FF8B2FF0\n"
860 );
861 }
862
863
864
865
866
867 void __attribute__((naked,noinline)) sub_FF8B07B4_my(){
868 asm volatile(
869 "STMFD SP!, {R4-R8,LR}\n"
870 "LDR R7, =0x3C80\n"
871 "MOV R4, R0\n"
872 "LDR R0, [R7,#0x1C]\n"
873 "MOV R1, #0x3E\n"
874 "BL sub_FF87C86C\n"
875 "LDRSH R0, [R4,#4]\n"
876 "MOV R2, #0\n"
877 "MOV R1, #0\n"
878 "BL sub_FF8AF764\n"
879 "MOV R6, R0\n"
880 "LDRSH R0, [R4,#6]\n"
881 "BL sub_FF8AF874\n"
882 "LDRSH R0, [R4,#8]\n"
883 "BL sub_FF8AF8CC\n"
884 "LDRSH R0, [R4,#0xA]\n"
885 "BL sub_FF8AF924\n"
886 "LDRSH R0, [R4,#0xC]\n"
887 "MOV R1, #0\n"
888 "BL sub_FF8AF97C\n"
889 "MOV R5, R0\n"
890 "LDR R0, [R4]\n"
891 "LDR R8, =0x3C778\n"
892 "CMP R0, #0xB\n"
893 "MOVEQ R6, #0\n"
894 "MOVEQ R5, #0\n"
895 "BEQ loc_FF8B0848\n"
896 "CMP R6, #1\n"
897 "BNE loc_FF8B0848\n"
898 "LDRSH R0, [R4,#4]\n"
899 "LDR R1, =0xFF8AF6D0\n"
900 "MOV R2, #2\n"
901 "BL sub_FF936570\n"
902 "STRH R0, [R4,#4]\n"
903 "MOV R0, #0\n"
904 "STR R0, [R7,#0x28]\n"
905 "B loc_FF8B0850\n"
906 "loc_FF8B0848:\n"
907 "LDRH R0, [R8]\n"
908 "STRH R0, [R4,#4]\n"
909 "loc_FF8B0850:\n"
910 "CMP R5, #1\n"
911 "LDRNEH R0, [R8,#8]\n"
912 "BNE loc_FF8B086C\n"
913 "LDRSH R0, [R4,#0xC]\n"
914 "LDR R1, =0xFF8AF754\n"
915 "MOV R2, #0x20\n"
916 "BL sub_FF8B4270\n"
917 "loc_FF8B086C:\n"
918 "STRH R0, [R4,#0xC]\n"
919 "LDRSH R0, [R4,#6]\n"
920
921
922 "BL sub_FF8A2F60_my\n"
923
924 "LDRSH R0, [R4,#8]\n"
925 "MOV R1, #1\n"
926 "BL sub_FF8A36B0\n"
927 "MOV R1, #0\n"
928 "ADD R0, R4, #8\n"
929 "BL sub_FF8A3738\n"
930 "LDRSH R0, [R4,#0xE]\n"
931 "BL sub_FF8AB224\n"
932 "LDR R4, =0xBB8\n"
933 "CMP R6, #1\n"
934 "BNE loc_FF8B08C4\n"
935 "LDR R0, [R7,#0x1C]\n"
936 "MOV R2, R4\n"
937 "MOV R1, #2\n"
938 "BL sub_FF87C778\n"
939 "TST R0, #1\n"
940 "SUBNE R1, R4, #0x620\n"
941 "LDRNE R0, =0xFF8AFD54\n"
942 "BLNE sub_FF81E88C\n"
943 "loc_FF8B08C4:\n"
944 "CMP R5, #1\n"
945 "LDMNEFD SP!, {R4-R8,PC}\n"
946 "LDR R0, [R7,#0x1C]\n"
947 "MOV R2, R4\n"
948 "MOV R1, #0x20\n"
949 "BL sub_FF87C778\n"
950 "TST R0, #1\n"
951 "LDRNE R1, =0x59D\n"
952 "LDRNE R0, =0xFF8AFD54\n"
953 "LDMNEFD SP!, {R4-R8,LR}\n"
954 "BNE sub_FF81E88C\n"
955 "LDMFD SP!, {R4-R8,PC}\n"
956 );
957 }
958
959
960
961
962
963 void __attribute__((naked,noinline)) sub_FF8A2F60_my(){
964 asm volatile(
965 "STMFD SP!, {R4-R6,LR}\n"
966 "LDR R5, =0x3998\n"
967 "MOV R4, R0\n"
968 "LDR R0, [R5,#4]\n"
969 "CMP R0, #1\n"
970 "LDRNE R1, =0x146\n"
971 "LDRNE R0, =0xFF8A2D64\n"
972 "BLNE sub_FF81E88C\n"
973 "CMN R4, #0xC00\n"
974 "LDREQSH R4, [R5,#2]\n"
975 "CMN R4, #0xC00\n"
976 "MOVEQ R1, #0x14C\n"
977 "LDREQ R0, =0xFF8A2D64\n"
978 "STRH R4, [R5,#2]\n"
979 "BLEQ sub_FF81E88C\n"
980 "MOV R0, R4\n"
981
982
983 "BL apex2us\n"
984
985 "MOV R4, R0\n"
986
987 "MOV R0, R4\n"
988 "BL sub_FF8DB7D4\n"
989 "TST R0, #1\n"
990 "LDRNE R1, =0x151\n"
991 "LDMNEFD SP!, {R4-R6,LR}\n"
992 "LDRNE R0, =0xFF8A2D64\n"
993 "BNE sub_FF81E88C\n"
994 "LDMFD SP!, {R4-R6,PC}\n"
995 );
996 }
997
998