source: branches/release-1_0/platform/s90/sub/100c/capt_seq.c @ 1519

Revision 888, 32.4 KB checked in by reyalp, 3 years ago (diff)

add s90 from err99 in 3 posts starting at http://chdk.setepontos.com/index.php/topic,650.msg49290.html#msg49290

  • Property svn:eol-style set to native
Line 
1#include "lolevel.h"
2#include "platform.h"
3#include "core.h"
4
5static long *nrflag = (long*)0x7FD0; /* S90 above "aShuttersoundta" usage @FF966918 @101a */
6
7#include "../../../generic/capt_seq.c"
8
9void __attribute__((naked,noinline)) capt_seq_task() {
10 asm volatile (
11        "STMFD   SP!, {R3-R9,LR}\n"
12        "LDR     R6, =0x2C58\n"
13        "LDR     R4, =0x39F60\n"
14        "MOV     R9, #1\n"
15        "MOV     R7, #0\n"
16"loc_FF87A21C:\n"
17        "LDR     R0, [R6,#4]\n"
18        "MOV     R2, #0\n"
19        "MOV     R1, SP\n"
20        "BL      sub_FF8382FC\n"
21        "TST     R0, #1\n"
22        "BEQ     loc_FF87A248\n"
23        "LDR     R1, =0x5B3\n"
24        "LDR     R0, =0xFF879A2C\n"
25        "BL      sub_FF81E88C\n"
26        "BL      sub_FF81E844\n"
27        "LDMFD   SP!, {R3-R9,PC}\n"
28"loc_FF87A248:\n"
29        "LDR     R0, [SP]\n"
30        "LDR     R1, [R0]\n"
31        "CMP     R1, #0x21\n"
32        "ADDLS   PC, PC, R1,LSL#2\n"
33        "B       loc_FF87A50C\n"
34"loc_FF87A25C:\n"
35        "B       loc_FF87A2E4\n"
36"loc_FF87A260:\n"
37        "B       loc_FF87A350\n"
38"loc_FF87A264:\n"
39        "B       loc_FF87A38C\n"
40"loc_FF87A268:\n"
41        "B       loc_FF87A3A0\n"
42"loc_FF87A26C:\n"
43        "B       loc_FF87A398\n"
44"loc_FF87A270:\n"
45        "B       loc_FF87A3A8\n"
46"loc_FF87A274:\n"
47        "B       loc_FF87A3B0\n"
48"loc_FF87A278:\n"
49        "B       loc_FF87A3B8\n"
50"loc_FF87A27C:\n"
51        "B       loc_FF87A410\n"
52"loc_FF87A280:\n"
53        "B       loc_FF87A438\n"
54"loc_FF87A284:\n"
55        "B       loc_FF87A41C\n"
56"loc_FF87A288:\n"
57        "B       loc_FF87A428\n"
58"loc_FF87A28C:\n"
59        "B       loc_FF87A430\n"
60"loc_FF87A290:\n"
61        "B       loc_FF87A440\n"
62"loc_FF87A294:\n"
63        "B       loc_FF87A448\n"
64"loc_FF87A298:\n"
65        "B       loc_FF87A450\n"
66"loc_FF87A29C:\n"
67        "B       loc_FF87A458\n"
68"loc_FF87A2A0:\n"
69        "B       loc_FF87A460\n"
70"loc_FF87A2A4:\n"
71        "B       loc_FF87A468\n"
72"loc_FF87A2A8:\n"
73        "B       loc_FF87A470\n"
74"loc_FF87A2AC:\n"
75        "B       loc_FF87A478\n"
76"loc_FF87A2B0:\n"
77        "B       loc_FF87A480\n"
78"loc_FF87A2B4:\n"
79        "B       loc_FF87A488\n"
80"loc_FF87A2B8:\n"
81        "B       loc_FF87A494\n"
82"loc_FF87A2BC:\n"
83        "B       loc_FF87A49C\n"
84"loc_FF87A2C0:\n"
85        "B       loc_FF87A4A8\n"
86"loc_FF87A2C4:\n"
87        "B       loc_FF87A4B0\n"
88"loc_FF87A2C8:\n"
89        "B       loc_FF87A4B8\n"
90"loc_FF87A2CC:\n"
91        "B       loc_FF87A4C0\n"
92"loc_FF87A2D0:\n"
93        "B       loc_FF87A4C8\n"
94"loc_FF87A2D4:\n"
95        "B       loc_FF87A4D0\n"
96"loc_FF87A2D8:\n"
97        "B       loc_FF87A4D8\n"
98"loc_FF87A2DC:\n"
99        "B       loc_FF87A4E4\n"
100"loc_FF87A2E0:\n"
101        "B       loc_FF87A518\n"
102"loc_FF87A2E4:\n"
103        "BL      sub_FF87AB20\n"
104                "BL      shooting_expo_param_override\n"  // +
105        "BL      sub_FF877B70\n"
106
107// copied over from SX10 don't know if we need it yet
108//  this code added to avoid some incorrect behavior if overrides are used.
109//  but it can cause some unexpected side effects. In this case, remove this code!
110                 "MOV     R0, #0\n"
111                 "STR     R0, [R4,#0x24]\n"  // fixes overrides  behavior at short shutter press
112 //  end of my code
113
114        "LDR     R0, [R4,#0x24]\n"
115        "CMP     R0, #0\n"
116        "BEQ     loc_FF87A518\n"
117        "BL      sub_FF879700\n"
118        "MOV     R5, R0\n"
119        "LDR     R0, [R4,#0x24]\n"
120        "CMP     R0, #0\n"
121        "BEQ     loc_FF87A32C\n"
122        "MOV     R0, #0xC\n"
123        "BL      sub_FF87F92C\n"
124        "TST     R0, #1\n"
125        "STRNE   R9, [R6,#0x10]\n"
126        "LDRNE   R0, [R5,#8]\n"
127        "ORRNE   R0, R0, #0x40000000\n"
128        "STRNE   R0, [R5,#8]\n"
129        "BNE     loc_FF87A518\n"
130"loc_FF87A32C:\n"
131        "MOV     R0, R5\n"
132        "BL      sub_FF966014\n"
133        "MOV     R0, R5\n"
134        "BL      sub_FF879AE0\n"
135        "MOV     R0, R5\n"
136        //"BL      sub_FF9668B0\n"
137                "BL      sub_FF9668B0_my\n" // -------------->
138                "BL      capt_seq_hook_raw_here\n"      // +
139        "TST     R0, #1\n"
140        "STRNE   R9, [R6,#0x10]\n"
141        "B       loc_FF87A518\n"
142"loc_FF87A350:\n"
143        "LDR     R0, [R4,#0x24]\n"
144        "CMP     R0, #0\n"
145        "BNE     loc_FF87A37C\n"
146        "MOV     R0, #0xC\n"
147        "BL      sub_FF87F92C\n"
148        "TST     R0, #1\n"
149        "LDRNE   R0, [SP]\n"
150        "MOVNE   R1, #1\n"
151        "LDRNE   R2, [R0,#0xC]\n"
152        "MOVNE   R0, #1\n"
153        "BNE     loc_FF87A408\n"
154"loc_FF87A37C:\n"
155        "LDR     R0, [SP]\n"
156        //"BL      sub_FF879B58\n" // - capt_seq_hook ist called in this subroutine
157                "BL      sub_FF879B58_my\n" // ------------------->
158"loc_FF87A384:\n"
159        "STR     R7, [R4,#0x24]\n"
160        "B       loc_FF87A518\n"
161"loc_FF87A38C:\n"
162        "MOV     R0, #1\n"
163        "BL      sub_FF87AD74\n"
164        "B       loc_FF87A518\n"
165"loc_FF87A398:\n"
166        "BL      sub_FF87A7D0\n"
167        "B       loc_FF87A384\n"
168"loc_FF87A3A0:\n"
169        "BL      sub_FF87AB00\n"
170        "B       loc_FF87A384\n"
171"loc_FF87A3A8:\n"
172        "BL      sub_FF87AB08\n"
173        "B       loc_FF87A518\n"
174"loc_FF87A3B0:\n"
175        "BL      sub_FF87AC94\n"
176        "B       loc_FF87A414\n"
177"loc_FF87A3B8:\n"
178        "LDR     R5, [R0,#0xC]\n"
179        "BL      sub_FF87AB10\n"
180        "MOV     R0, R5\n"
181        "BL      sub_FF9654A0\n"
182        "TST     R0, #1\n"
183        "MOV     R8, R0\n"
184        "BNE     loc_FF87A3F8\n"
185        "BL      sub_FF88CBF4\n"
186        "STR     R0, [R5,#0x18]\n"
187        "MOV     R0, R5\n"
188        "BL      sub_FF9667C8\n"
189        "MOV     R0, R5\n"
190        "BL      sub_FF966BC8\n"
191        "MOV     R8, R0\n"
192        "LDR     R0, [R5,#0x18]\n"
193        "BL      sub_FF88CE08\n"
194"loc_FF87A3F8:\n"
195        "BL      sub_FF87AB00\n"
196        "MOV     R2, R5\n"
197        "MOV     R1, #9\n"
198        "MOV     R0, R8\n"
199"loc_FF87A408:\n"
200        "BL      sub_FF8780D8\n"
201        "B       loc_FF87A518\n"
202"loc_FF87A410:\n"
203        "BL      sub_FF87ACF4\n"
204"loc_FF87A414:\n"
205        "BL      sub_FF877B70\n"
206        "B       loc_FF87A518\n"
207"loc_FF87A41C:\n"
208        "LDR     R0, [R4,#0x54]\n"
209        "BL      sub_FF87B5D4\n"
210        "B       loc_FF87A518\n"
211"loc_FF87A428:\n"
212        "BL      sub_FF87B888\n"
213        "B       loc_FF87A518\n"
214"loc_FF87A430:\n"
215        "BL      sub_FF87B91C\n"
216        "B       loc_FF87A518\n"
217"loc_FF87A438:\n"
218        "BL      sub_FF87AB00\n"
219        "B       loc_FF87A518\n"
220"loc_FF87A440:\n"
221        "BL      sub_FF9656BC\n"
222        "B       loc_FF87A518\n"
223"loc_FF87A448:\n"
224        "BL      sub_FF9658D0\n"
225        "B       loc_FF87A518\n"
226"loc_FF87A450:\n"
227        "BL      sub_FF965958\n"
228        "B       loc_FF87A518\n"
229"loc_FF87A458:\n"
230        "BL      sub_FF965A48\n"
231        "B       loc_FF87A518\n"
232"loc_FF87A460:\n"
233        "BL      sub_FF965B3C\n"
234        "B       loc_FF87A518\n"
235"loc_FF87A468:\n"
236        "MOV     R0, #0\n"
237        "B       loc_FF87A48C\n"
238"loc_FF87A470:\n"
239        "BL      sub_FF965D58\n"
240        "B       loc_FF87A518\n"
241"loc_FF87A478:\n"
242        "BL      sub_FF965DE8\n"
243        "B       loc_FF87A518\n"
244"loc_FF87A480:\n"
245        "BL      sub_FF965EA8\n"
246        "B       loc_FF87A518\n"
247"loc_FF87A488:\n"
248        "MOV     R0, #1\n"
249"loc_FF87A48C:\n"
250        "BL      sub_FF965C08\n"
251        "B       loc_FF87A518\n"
252"loc_FF87A494:\n"
253        "BL      sub_FF87AF5C\n"
254        "B       loc_FF87A518\n"
255"loc_FF87A49C:\n"
256        "BL      sub_FF87AFFC\n"
257        "BL      sub_FF87A640\n"
258        "B       loc_FF87A518\n"
259"loc_FF87A4A8:\n"
260        "BL      sub_FF87B370\n"
261        "B       loc_FF87A518\n"
262"loc_FF87A4B0:\n"
263        "BL      sub_FF87B48C\n"
264        "B       loc_FF87A518\n"
265"loc_FF87A4B8:\n"
266        "BL      sub_FF8799B8\n"
267        "B       loc_FF87A518\n"
268"loc_FF87A4C0:\n"
269        "BL      sub_FF835FDC\n"
270        "B       loc_FF87A518\n"
271"loc_FF87A4C8:\n"
272        "BL      sub_FF87DCDC\n"
273        "B       loc_FF87A518\n"
274"loc_FF87A4D0:\n"
275        "BL      sub_FF87DD44\n"
276        "B       loc_FF87A518\n"
277"loc_FF87A4D8:\n"
278        "BL      sub_FF87DDA0\n"
279        "BL      sub_FF87DD60\n"
280        "B       loc_FF87A518\n"
281"loc_FF87A4E4:\n"
282        "MOV     R0, #1\n"
283        "BL      sub_FF967430\n"
284        "MOV     R0, #1\n"
285        "BL      sub_FF967540\n"
286        "LDRH    R0, [R4,#0xA0]\n"
287        "CMP     R0, #4\n"
288        "BNE     loc_FF87A518\n"
289        "BL      sub_FF87DD44\n"
290        "BL      sub_FF87E18C\n"
291        "B       loc_FF87A518\n"
292"loc_FF87A50C:\n"
293        "LDR     R1, =0x708\n"
294        "LDR     R0, =0xFF879A2C\n"
295        "BL      sub_FF81E88C\n"
296"loc_FF87A518:\n"
297        "LDR     R0, [SP]\n"
298        "LDR     R1, [R0,#4]\n"
299        "LDR     R0, [R6]\n"
300        "BL      sub_FF8848E0\n"
301        "LDR     R5, [SP]\n"
302        "LDR     R0, [R5,#8]\n"
303        "CMP     R0, #0\n"
304        "LDREQ   R1, =0x131\n"
305        "LDREQ   R0, =0xFF879A2C\n"
306        "BLEQ    sub_FF81E88C\n"
307        "STR     R7, [R5,#8]\n"
308        "B       loc_FF87A21C\n"
309 );
310}
311
312
313void __attribute__((naked,noinline)) sub_FF879B58_my() {
314 asm volatile (
315"STMFD   SP!, {R3-R9,LR}\n"
316        "LDR     R4, [R0,#0xC]\n"
317        "LDR     R5, =0x39F60\n"
318        "LDR     R0, [R4,#8]\n"
319        "LDR     R6, =0x420A\n"
320        "ORR     R0, R0, #1\n"
321        "STR     R0, [R4,#8]\n"
322        "LDRH    R0, [R5]\n"
323        "LDR     R8, =0x2C58\n"
324        "MOV     R7, #0\n"
325        "CMP     R0, R6\n"
326        "BEQ     loc_FF879BFC\n"
327        "LDRH    R0, [R5,#0x9E]\n"
328        "CMP     R0, #3\n"
329        "BEQ     loc_FF879C5C\n"
330        "LDR     R0, [R4,#0xC]\n"
331        "CMP     R0, #1\n"
332        "BLS     loc_FF879C08\n"
333        "LDRH    R0, [R5,#0x9C]\n"
334        "CMP     R0, #0\n"
335        "BNE     loc_FF879C5C\n"
336        "LDRH    R0, [R5,#0x98]\n"
337        "CMP     R0, #2\n"
338        "BNE     loc_FF879C14\n"
339        "BL      sub_FF87B0AC\n"
340        "LDRH    R0, [R5]\n"
341        "CMP     R0, R6\n"
342        "BEQ     loc_FF879BFC\n"
343        "LDRH    R0, [R5,#0x9E]\n"
344        "CMP     R0, #3\n"
345        "BEQ     loc_FF879C5C\n"
346        "LDR     R0, [R4,#0xC]\n"
347        "CMP     R0, #1\n"
348        "BLS     loc_FF879C08\n"
349        "LDRH    R0, [R5,#0x9C]\n"
350        "CMP     R0, #0\n"
351        "BNE     loc_FF879C5C\n"
352        "LDRH    R0, [R5,#0x98]\n"
353        "CMP     R0, #2\n"
354        "BEQ     loc_FF879C40\n"
355        "B       loc_FF879C14\n"
356"loc_FF879BFC:\n"
357        "LDRH    R0, [R5,#0x9E]\n"
358        "CMP     R0, #3\n"
359        "BEQ     loc_FF879C5C\n"
360"loc_FF879C08:\n"
361        "LDRH    R0, [R5,#0x9C]\n"
362        "CMP     R0, #0\n"
363        "BNE     loc_FF879C5C\n"
364"loc_FF879C14:\n"
365        "LDRH    R0, [R5,#0x98]\n"
366        "CMP     R0, #1\n"
367        "BNE     loc_FF879C5C\n"
368        "LDRH    R0, [R5]\n"
369        "CMP     R0, R6\n"
370        "LDRNE   R0, [R4,#0xC]\n"
371        "CMPNE   R0, #1\n"
372        "BLS     loc_FF879C5C\n"
373        "LDR     R0, [R4,#0x10]\n"
374        "CMP     R0, #1\n"
375        "BNE     loc_FF879C5C\n"
376"loc_FF879C40:\n"
377        "MOV     R3, #0x268\n"
378        "STR     R3, [SP]\n"
379        "LDR     R0, [R8]\n"
380        "LDR     R2, =0xEA60\n"
381        //"ADR     R3, 0xFF879A2C\n"
382                "LDR     R3, =0xFF879A2C\n"
383        "MOV     R1, #0x40000000\n"
384        "BL      sub_FF87FC8C\n"
385"loc_FF879C5C:\n"
386        "BL      sub_FF8799B8\n"
387        "LDR     R0, [R5,#0x24]\n"
388        "CMP     R0, #0\n"
389        "MOVEQ   R0, #2\n"
390        "BLEQ    sub_FF8762DC\n"
391        "BL      sub_FF87AB10\n"
392        "LDR     R0, [R5,#0x24]\n"
393        "CMP     R0, #0\n"
394        "BNE     loc_FF879D14\n"
395        "MOV     R0, #0\n"
396        "BL      sub_FF967430\n"
397        "MOV     R0, #0\n"
398        "BL      sub_FF967540\n"
399        "MOV     R0, R4\n"
400        "BL      sub_FF966014\n"
401        "MOV     R0, R4\n"
402        "BL      sub_FF87AED8\n"
403        "MOV     R0, R4\n"
404        "BL      sub_FF965090\n"
405        "CMP     R0, #0\n"
406        "BEQ     loc_FF879CDC\n"
407        "BL      sub_FF967470\n"
408        "BL      sub_FF967584\n"
409        "BL      sub_FF9675D4\n"
410        "MOV     R0, R4\n"
411        "BL      sub_FF9651D4\n"
412        "TST     R0, #1\n"
413        "MOVNE   R2, R4\n"
414        "LDMNEFD SP!, {R3-R9,LR}\n"
415        "MOVNE   R1, #1\n"
416        "BNE     sub_FF8780D8\n"
417        "B       loc_FF879CF0\n"
418"loc_FF879CDC:\n"
419        "MOV     R0, R4\n"
420        "BL      sub_FF965140\n"
421        "BL      sub_FF967470\n"
422        "BL      sub_FF967584\n"
423        "BL      sub_FF9675D4\n"
424"loc_FF879CF0:\n"
425        "MOV     R0, R4\n"
426        "BL      sub_FF879AE0\n"
427        "MOV     R0, R4\n"
428        "BL      sub_FF9667C8\n"
429        "BL      sub_FF967248\n"
430        "MOV     R0, R4\n"
431        //"BL      sub_FF9668B0\n"
432                "BL      sub_FF9668B0_my\n" // ------------->
433        "MOV     R7, R0\n"
434                "BL      capt_seq_hook_raw_here\n"      // +
435        "B       loc_FF879D20\n"
436"loc_FF879D14:\n"
437        "LDR     R0, [R8,#0x10]\n"
438        "CMP     R0, #0\n"
439        "MOVNE   R7, #0x1D\n"
440"loc_FF879D20:\n"
441        "BL      sub_FF87DD44\n"
442        "BL      sub_FF87DD8C\n"
443        "BL      sub_FF87DDCC\n"
444        "MOV     R2, R4\n"
445        "MOV     R1, #1\n"
446        "MOV     R0, R7\n"
447        "BL      sub_FF8780D8\n"
448        "BL      sub_FF966B6C\n"
449        "CMP     R0, #0\n"
450        "LDRNE   R0, [R4,#8]\n"
451        "ORRNE   R0, R0, #0x2000\n"
452        "STRNE   R0, [R4,#8]\n"
453        "LDRH    R0, [R5,#0x9E]\n"
454        "CMP     R0, #3\n"
455        "BEQ     locret_FF879D78\n"
456        "LDRH    R0, [R5,#0x9C]\n"
457        "CMP     R0, #0\n"
458        "LDREQH  R0, [R5,#0x98]\n"
459        "CMPEQ   R0, #2\n"
460        "MOVEQ   R0, R4\n"
461        "LDMEQFD SP!, {R3-R9,LR}\n"
462        "BEQ     sub_FF87B100\n"
463"locret_FF879D78:\n"
464        "LDMFD   SP!, {R3-R9,PC}\n"
465 );
466}
467
468void __attribute__((naked,noinline)) sub_FF9668B0_my() {
469 asm volatile (
470        "STMFD   SP!, {R0-R8,LR}\n"
471        "MOV     R4, R0\n"
472        "BL      sub_FF96772C\n"
473        "MVN     R1, #0\n"
474        "BL      sub_FF884914\n"
475        "LDR     R5, =0x7FD0\n"
476        "LDR     R0, [R5,#0xC]\n"
477        "CMP     R0, #0\n"
478        "BNE     loc_FF966900\n"
479        "MOV     R1, #1\n"
480        "MOV     R0, #0\n"
481        "BL      sub_FF838B44\n"
482        "STR     R0, [R5,#0xC]\n"
483        "MOV     R3, #0\n"
484        "STR     R3, [SP]\n"
485        "LDR     R3, =0xFF96623C\n"
486        //"ADR     R0, 0xFF966B30\n"
487                "LDR     R0, =0xFF966B30\n"
488        "MOV     R2, #0x400\n"
489        "MOV     R1, #0x17\n"
490        "BL      sub_FF838B10\n"
491"loc_FF966900:\n"
492        "MOV     R2, #4\n"
493        "ADD     R1, SP, #8\n"
494        "MOV     R0, #0x8A\n"
495        "BL      sub_FF88CA64\n"
496        "TST     R0, #1\n"
497        "LDRNE   R1, =0x3C5\n"
498        "LDRNE   R0, =0xFF9664D4\n"
499        "BLNE    sub_FF81E88C\n"
500        "LDR     R6, =0x3A02C\n"
501        "LDR     R8, =0x39F60\n"
502        "LDR     R3, [R6]\n"
503        "LDRSH   R2, [R6,#0xC]\n"
504        "LDRSH   R1, [R6,#0xE]\n"
505        "LDR     R0, [R8,#0x94]\n"
506        "BL      sub_FF92E118\n"
507        "BL      sub_FF86157C\n"
508        "LDR     R3, =0x7FD8\n"
509        "STRH    R0, [R4,#0xA4]\n"
510        "SUB     R2, R3, #4\n"
511        "STRD    R2, [SP]\n"
512        "MOV     R1, R0\n"
513        "LDRH    R0, [R8,#0x5C]\n"
514        "LDRSH   R2, [R6,#0xC]\n"
515        "SUB     R3, R3, #8\n"
516        "BL      sub_FF96944C\n"
517        "BL      wait_until_remote_button_is_released\n"  // +
518        "BL      capt_seq_hook_set_nr\n"                  // +   
519        "B       sub_FF966964\n" // +  Jump back to original FW code
520 );
521}
522
523void __attribute__((naked,noinline)) exp_drv_task(){
524 asm volatile(
525        "STMFD   SP!, {R4-R8,LR}\n"
526        "SUB     SP, SP, #0x20\n"
527        "LDR     R8, =0xBB8\n"
528        "LDR     R7, =0x4440\n"
529        "LDR     R5, =0x4372C\n"
530        "MOV     R0, #0\n"
531        "ADD     R6, SP, #0x10\n"
532        "STR     R0, [SP,#0xC]\n"
533"loc_FF8C0E74:\n"
534        "LDR     R0, [R7,#0x20]\n"
535        "MOV     R2, #0\n"
536        "ADD     R1, SP, #0x1C\n"
537        "BL      sub_FF8382FC\n"
538        "LDR     R0, [SP,#0xC]\n"
539        "CMP     R0, #1\n"
540        "BNE     loc_FF8C0EC0\n"
541        "LDR     R0, [SP,#0x1C]\n"
542        "LDR     R0, [R0]\n"
543        "CMP     R0, #0x13\n"
544        "CMPNE   R0, #0x14\n"
545        "CMPNE   R0, #0x15\n"
546        "CMPNE   R0, #0x16\n"
547        "BEQ     loc_FF8C1024\n"
548        "CMP     R0, #0x28\n"
549        "BEQ     loc_FF8C0FAC\n"
550        "ADD     R1, SP, #0xC\n"
551        "MOV     R0, #0\n"
552        "BL      sub_FF8C0E04\n"
553"loc_FF8C0EC0:\n"
554        "LDR     R0, [SP,#0x1C]\n"
555        "LDR     R1, [R0]\n"
556        "CMP     R1, #0x2E\n"
557        "BNE     loc_FF8C0EF0\n"
558        "LDR     R0, [SP,#0x1C]\n"
559        "BL      sub_FF8C215C\n"
560        "LDR     R0, [R7,#0x1C]\n"
561        "MOV     R1, #1\n"
562        "BL      sub_FF8848E0\n"
563        "BL      sub_FF81E844\n"
564        "ADD     SP, SP, #0x20\n"
565        "LDMFD   SP!, {R4-R8,PC}\n"
566"loc_FF8C0EF0:\n"
567        "CMP     R1, #0x2D\n"
568        "BNE     loc_FF8C0F0C\n"
569        "LDR     R2, [R0,#0x8C]!\n"
570        "LDR     R1, [R0,#4]\n"
571        "MOV     R0, R1\n"
572        "BLX     R2\n"
573        "B       loc_FF8C144C\n"
574"loc_FF8C0F0C:\n"
575        "CMP     R1, #0x26\n"
576        "BNE     loc_FF8C0F5C\n"
577        "LDR     R0, [R7,#0x1C]\n"
578        "MOV     R1, #0x80\n"
579        "BL      sub_FF884914\n"
580        "LDR     R0, =0xFF8BD59C\n"
581        "MOV     R1, #0x80\n"
582        "BL      sub_FF959524\n"
583        "LDR     R0, [R7,#0x1C]\n"
584        "MOV     R2, R8\n"
585        "MOV     R1, #0x80\n"
586        "BL      sub_FF884820\n"
587        "TST     R0, #1\n"
588        "LDRNE   R1, =0xE5F\n"
589        "BNE     loc_FF8C1018\n"
590"loc_FF8C0F48:\n"
591        "LDR     R1, [SP,#0x1C]\n"
592        "LDR     R0, [R1,#0x90]\n"
593        "LDR     R1, [R1,#0x8C]\n"
594        "BLX     R1\n"
595        "B       loc_FF8C144C\n"
596"loc_FF8C0F5C:\n"
597        "CMP     R1, #0x27\n"
598        "BNE     loc_FF8C0FA4\n"
599        "ADD     R1, SP, #0xC\n"
600        "BL      sub_FF8C0E04\n"
601        "LDR     R0, [R7,#0x1C]\n"
602        "MOV     R1, #0x100\n"
603        "BL      sub_FF884914\n"
604        "LDR     R0, =0xFF8BD5AC\n"
605        "MOV     R1, #0x100\n"
606        "BL      sub_FF959EB4\n"
607        "LDR     R0, [R7,#0x1C]\n"
608        "MOV     R2, R8\n"
609        "MOV     R1, #0x100\n"
610        "BL      sub_FF884820\n"
611        "TST     R0, #1\n"
612        "BEQ     loc_FF8C0F48\n"
613        "LDR     R1, =0xE69\n"
614        "B       loc_FF8C1018\n"
615"loc_FF8C0FA4:\n"
616        "CMP     R1, #0x28\n"
617        "BNE     loc_FF8C0FBC\n"
618"loc_FF8C0FAC:\n"
619        "LDR     R0, [SP,#0x1C]\n"
620        "ADD     R1, SP, #0xC\n"
621        "BL      sub_FF8C0E04\n"
622        "B       loc_FF8C0F48\n"
623"loc_FF8C0FBC:\n"
624        "CMP     R1, #0x2B\n"
625        "BNE     loc_FF8C0FD4\n"
626        "BL      sub_FF8B0A00\n"
627        "BL      sub_FF8B1624\n"
628        "BL      sub_FF8B1178\n"
629        "B       loc_FF8C0F48\n"
630"loc_FF8C0FD4:\n"
631        "CMP     R1, #0x2C\n"
632        "BNE     loc_FF8C1024\n"
633        "LDR     R0, [R7,#0x1C]\n"
634        "MOV     R1, #4\n"
635        "BL      sub_FF884914\n"
636        "LDR     R1, =0xFF8BD5CC\n"
637        "LDR     R0, =0xFFFFF400\n"
638        "MOV     R2, #4\n"
639        "BL      sub_FF8B047C\n"
640        "BL      sub_FF8B0704\n"
641        "LDR     R0, [R7,#0x1C]\n"
642        "MOV     R2, R8\n"
643        "MOV     R1, #4\n"
644        "BL      sub_FF88473C\n"
645        "TST     R0, #1\n"
646        "BEQ     loc_FF8C0F48\n"
647        "LDR     R1, =0xE91\n"
648"loc_FF8C1018:\n"
649        "LDR     R0, =0xFF8BDC0C\n"
650        "BL      sub_FF81E88C\n"
651        "B       loc_FF8C0F48\n"
652"loc_FF8C1024:\n"
653        "LDR     R0, [SP,#0x1C]\n"
654        "MOV     R4, #1\n"
655        "LDR     R1, [R0]\n"
656        "CMP     R1, #0x11\n"
657        "CMPNE   R1, #0x12\n"
658        "BNE     loc_FF8C1094\n"
659        "LDR     R1, [R0,#0x7C]\n"
660        "ADD     R1, R1, R1,LSL#1\n"
661        "ADD     R1, R0, R1,LSL#2\n"
662        "SUB     R1, R1, #8\n"
663        "LDMIA   R1, {R2-R4}\n"
664        "STMIA   R6, {R2-R4}\n"
665        //"BL      loc_FF8BF784\n"
666                "BL      sub_FF8BF784\n"
667        "LDR     R0, [SP,#0x1C]\n"
668        "LDR     R1, [R0,#0x7C]\n"
669        "LDR     R3, [R0,#0x8C]\n"
670        "LDR     R2, [R0,#0x90]\n"
671        "ADD     R0, R0, #4\n"
672        "BLX     R3\n"
673        "LDR     R0, [SP,#0x1C]\n"
674        "BL      sub_FF8C2524\n"
675        "LDR     R0, [SP,#0x1C]\n"
676        "LDR     R1, [R0,#0x7C]\n"
677        "LDR     R3, [R0,#0x94]\n"
678        "LDR     R2, [R0,#0x98]\n"
679        "ADD     R0, R0, #4\n"
680        "BLX     R3\n"
681        "B       loc_FF8C138C\n"
682"loc_FF8C1094:\n"
683        "CMP     R1, #0x13\n"
684        "CMPNE   R1, #0x14\n"
685        "CMPNE   R1, #0x15\n"
686        "CMPNE   R1, #0x16\n"
687        "BNE     loc_FF8C114C\n"
688        "ADD     R3, SP, #0xC\n"
689        "MOV     R2, SP\n"
690        "ADD     R1, SP, #0x10\n"
691        "BL      sub_FF8BFA60\n"
692        "CMP     R0, #1\n"
693        "MOV     R4, R0\n"
694        "CMPNE   R4, #5\n"
695        "BNE     loc_FF8C10E8\n"
696        "LDR     R0, [SP,#0x1C]\n"
697        "MOV     R2, R4\n"
698        "LDR     R1, [R0,#0x7C]!\n"
699        "LDR     R12, [R0,#0x10]!\n"
700        "LDR     R3, [R0,#4]\n"
701        "MOV     R0, SP\n"
702        "BLX     R12\n"
703        "B       loc_FF8C1120\n"
704"loc_FF8C10E8:\n"
705        "LDR     R0, [SP,#0x1C]\n"
706        "CMP     R4, #2\n"
707        "LDR     R3, [R0,#0x90]\n"
708        "CMPNE   R4, #6\n"
709        "BNE     loc_FF8C1134\n"
710        "LDR     R12, [R0,#0x8C]\n"
711        "MOV     R0, SP\n"
712        "MOV     R2, R4\n"
713        "MOV     R1, #1\n"
714        "BLX     R12\n"
715        "LDR     R0, [SP,#0x1C]\n"
716        "MOV     R2, SP\n"
717        "ADD     R1, SP, #0x10\n"
718        "BL      sub_FF8C0B0C\n"
719"loc_FF8C1120:\n"
720        "LDR     R0, [SP,#0x1C]\n"
721        "LDR     R2, [SP,#0xC]\n"
722        "MOV     R1, R4\n"
723        "BL      sub_FF8C0DA4\n"
724        "B       loc_FF8C138C\n"
725"loc_FF8C1134:\n"
726        "LDR     R1, [R0,#0x7C]\n"
727        "LDR     R12, [R0,#0x8C]\n"
728        "ADD     R0, R0, #4\n"
729        "MOV     R2, R4\n"
730        "BLX     R12\n"
731        "B       loc_FF8C138C\n"
732"loc_FF8C114C:\n"
733        "CMP     R1, #0x22\n"
734        "CMPNE   R1, #0x23\n"
735        "BNE     loc_FF8C1198\n"
736        "LDR     R1, [R0,#0x7C]\n"
737        "ADD     R1, R1, R1,LSL#1\n"
738        "ADD     R1, R0, R1,LSL#2\n"
739        "SUB     R1, R1, #8\n"
740        "LDMIA   R1, {R2-R4}\n"
741        "STMIA   R6, {R2-R4}\n"
742        "BL      sub_FF8BECC8\n"
743        "LDR     R0, [SP,#0x1C]\n"
744        "LDR     R1, [R0,#0x7C]\n"
745        "LDR     R3, [R0,#0x8C]\n"
746        "LDR     R2, [R0,#0x90]\n"
747        "ADD     R0, R0, #4\n"
748        "BLX     R3\n"
749        "LDR     R0, [SP,#0x1C]\n"
750        "BL      sub_FF8BEFC8\n"
751        "B       loc_FF8C138C\n"
752"loc_FF8C1198:\n"
753        "ADD     R1, R0, #4\n"
754        "LDMIA   R1, {R2,R3,R12}\n"
755        "STMIA   R6, {R2,R3,R12}\n"
756        "LDR     R1, [R0]\n"
757        "CMP     R1, #0x25\n"
758        "ADDLS   PC, PC, R1,LSL#2\n"
759        "B       loc_FF8C136C\n"
760"loc_FF8C11B4:\n"
761        "B       loc_FF8C124C\n"
762"loc_FF8C11B8:\n"
763        "B       loc_FF8C124C\n"
764"loc_FF8C11BC:\n"
765        "B       loc_FF8C1254\n"
766"loc_FF8C11C0:\n"
767        "B       loc_FF8C125C\n"
768"loc_FF8C11C4:\n"
769        "B       loc_FF8C125C\n"
770"loc_FF8C11C8:\n"
771        "B       loc_FF8C125C\n"
772"loc_FF8C11CC:\n"
773        "B       loc_FF8C124C\n"
774"loc_FF8C11D0:\n"
775        "B       loc_FF8C1254\n"
776"loc_FF8C11D4:\n"
777        "B       loc_FF8C125C\n"
778"loc_FF8C11D8:\n"
779        "B       loc_FF8C125C\n"
780"loc_FF8C11DC:\n"
781        "B       loc_FF8C1274\n"
782"loc_FF8C11E0:\n"
783        "B       loc_FF8C1274\n"
784"loc_FF8C11E4:\n"
785        "B       loc_FF8C1360\n"
786"loc_FF8C11E8:\n"
787        "B       loc_FF8C1368\n"
788"loc_FF8C11EC:\n"
789        "B       loc_FF8C1368\n"
790"loc_FF8C11F0:\n"
791        "B       loc_FF8C1368\n"
792"loc_FF8C11F4:\n"
793        "B       loc_FF8C1368\n"
794"loc_FF8C11F8:\n"
795        "B       loc_FF8C136C\n"
796"loc_FF8C11FC:\n"
797        "B       loc_FF8C136C\n"
798"loc_FF8C1200:\n"
799        "B       loc_FF8C136C\n"
800"loc_FF8C1204:\n"
801        "B       loc_FF8C136C\n"
802"loc_FF8C1208:\n"
803        "B       loc_FF8C136C\n"
804"loc_FF8C120C:\n"
805        "B       loc_FF8C136C\n"
806"loc_FF8C1210:\n"
807        "B       loc_FF8C1264\n"
808"loc_FF8C1214:\n"
809        "B       loc_FF8C126C\n"
810"loc_FF8C1218:\n"
811        "B       loc_FF8C126C\n"
812"loc_FF8C121C:\n"
813        "B       loc_FF8C1280\n"
814"loc_FF8C1220:\n"
815        "B       loc_FF8C1280\n"
816"loc_FF8C1224:\n"
817        "B       loc_FF8C1288\n"
818"loc_FF8C1228:\n"
819        "B       loc_FF8C12B8\n"
820"loc_FF8C122C:\n"
821        "B       loc_FF8C12E8\n"
822"loc_FF8C1230:\n"
823        "B       loc_FF8C1318\n"
824"loc_FF8C1234:\n"
825        "B       loc_FF8C1348\n"
826"loc_FF8C1238:\n"
827        "B       loc_FF8C1348\n"
828"loc_FF8C123C:\n"
829        "B       loc_FF8C136C\n"
830"loc_FF8C1240:\n"
831        "B       loc_FF8C136C\n"
832"loc_FF8C1244:\n"
833        "B       loc_FF8C1350\n"
834"loc_FF8C1248:\n"
835        "B       loc_FF8C1358\n"
836"loc_FF8C124C:\n"
837        "BL      sub_FF8BDAB4\n"
838        "B       loc_FF8C136C\n"
839"loc_FF8C1254:\n"
840        "BL      sub_FF8BDD38\n"
841        "B       loc_FF8C136C\n"
842"loc_FF8C125C:\n"
843        "BL      sub_FF8BDF40\n"
844        "B       loc_FF8C136C\n"
845"loc_FF8C1264:\n"
846        "BL      sub_FF8BE1B8\n"
847        "B       loc_FF8C136C\n"
848"loc_FF8C126C:\n" // ; jumptable FF8C11AC entries 24,25
849        "BL      sub_FF8BE3B0\n"
850        "B       loc_FF8C136C\n"
851"loc_FF8C1274:\n" //; jumptable FF8C11AC entries 10,11
852        //"BL      sub_FF8BE66C\n"
853                "BL      sub_FF8BE66C_my\n" // ------------------->
854        "MOV     R4, #0\n"
855        "B       loc_FF8C136C\n"
856"loc_FF8C1280:\n" // ; jumptable FF8C11AC entries 26,27
857        "BL      sub_FF8BE7AC\n"
858        "B       loc_FF8C136C\n"
859"loc_FF8C1288:\n"
860        "LDRH    R1, [R0,#4]\n"
861        "STRH    R1, [SP,#0x10]\n"
862        "LDRH    R1, [R5,#2]\n"
863        "STRH    R1, [SP,#0x12]\n"
864        "LDRH    R1, [R5,#4]\n"
865        "STRH    R1, [SP,#0x14]\n"
866        "LDRH    R1, [R5,#6]\n"
867        "STRH    R1, [SP,#0x16]\n"
868        "LDRH    R1, [R0,#0xC]\n"
869        "STRH    R1, [SP,#0x18]\n"
870        "BL      sub_FF8C21D0\n"
871        "B       loc_FF8C136C\n"
872"loc_FF8C12B8:\n"
873        "LDRH    R1, [R0,#4]\n"
874        "STRH    R1, [SP,#0x10]\n"
875        "LDRH    R1, [R5,#2]\n"
876        "STRH    R1, [SP,#0x12]\n"
877        "LDRH    R1, [R5,#4]\n"
878        "STRH    R1, [SP,#0x14]\n"
879        "LDRH    R1, [R5,#6]\n"
880        "STRH    R1, [SP,#0x16]\n"
881        "LDRH    R1, [R5,#8]\n"
882        "STRH    R1, [SP,#0x18]\n"
883        "BL      sub_FF8C233C\n"
884        "B       loc_FF8C136C\n"
885"loc_FF8C12E8:\n"
886        "LDRH    R1, [R5]\n"
887        "STRH    R1, [SP,#0x10]\n"
888        "LDRH    R1, [R0,#6]\n"
889        "STRH    R1, [SP,#0x12]\n"
890        "LDRH    R1, [R5,#4]\n"
891        "STRH    R1, [SP,#0x14]\n"
892        "LDRH    R1, [R5,#6]\n"
893        "STRH    R1, [SP,#0x16]\n"
894        "LDRH    R1, [R5,#8]\n"
895        "STRH    R1, [SP,#0x18]\n"
896        "BL      sub_FF8C23E8\n"
897        "B       loc_FF8C136C\n"
898"loc_FF8C1318:\n"
899        "LDRH    R1, [R5]\n"
900        "STRH    R1, [SP,#0x10]\n"
901        "LDRH    R1, [R5,#2]\n"
902        "STRH    R1, [SP,#0x12]\n"
903        "LDRH    R1, [R5,#4]\n"
904        "STRH    R1, [SP,#0x14]\n"
905        "LDRH    R1, [R5,#6]\n"
906        "STRH    R1, [SP,#0x16]\n"
907        "LDRH    R1, [R0,#0xC]\n"
908        "STRH    R1, [SP,#0x18]\n"
909        "BL      sub_FF8C2488\n"
910        "B       loc_FF8C136C\n"
911"loc_FF8C1348:\n"
912        "BL      sub_FF8BEB04\n"
913        "B       loc_FF8C136C\n"
914"loc_FF8C1350:\n"
915        "BL      sub_FF8BF0CC\n"
916        "B       loc_FF8C136C\n"
917"loc_FF8C1358:\n"
918        "BL      sub_FF8BF308\n"
919        "B       loc_FF8C136C\n"
920"loc_FF8C1360:\n"
921        "BL      sub_FF8BF484\n"
922        "B       loc_FF8C136C\n"
923"loc_FF8C1368:\n"
924        "BL      sub_FF8BF620\n"
925"loc_FF8C136C:\n"
926        "LDR     R0, [SP,#0x1C]\n"
927        "LDR     R1, [R0,#0x7C]\n"
928        "LDR     R3, [R0,#0x8C]\n"
929        "LDR     R2, [R0,#0x90]\n"
930        "ADD     R0, R0, #4\n"
931        "BLX     R3\n"
932        "CMP     R4, #1\n"
933        "BNE     loc_FF8C13D4\n"
934"loc_FF8C138C:\n"
935        "LDR     R0, [SP,#0x1C]\n"
936        "MOV     R2, #0xC\n"
937        "LDR     R1, [R0,#0x7C]\n"
938        "ADD     R1, R1, R1,LSL#1\n"
939        "ADD     R0, R0, R1,LSL#2\n"
940        "SUB     R4, R0, #8\n"
941        "LDR     R0, =0x4372C\n"
942        "ADD     R1, SP, #0x10\n"
943        "BL      sub_FFB34BC8\n"
944        "LDR     R0, =0x43738\n"
945        "MOV     R2, #0xC\n"
946        "ADD     R1, SP, #0x10\n"
947        "BL      sub_FFB34BC8\n"
948        "LDR     R0, =0x43744\n"
949        "MOV     R2, #0xC\n"
950        "MOV     R1, R4\n"
951        "BL      sub_FFB34BC8\n"
952        "B       loc_FF8C144C\n"
953"loc_FF8C13D4:\n"
954        "LDR     R0, [SP,#0x1C]\n"
955        "LDR     R0, [R0]\n"
956        "CMP     R0, #0xB\n"
957        "BNE     loc_FF8C141C\n"
958        "MOV     R3, #0\n"
959        "STR     R3, [SP]\n"
960        "MOV     R3, #1\n"
961        "MOV     R2, #1\n"
962        "MOV     R1, #1\n"
963        "MOV     R0, #0\n"
964        "BL      sub_FF8BD8BC\n"
965        "MOV     R3, #0\n"
966        "STR     R3, [SP]\n"
967        "MOV     R3, #1\n"
968        "MOV     R2, #1\n"
969        "MOV     R1, #1\n"
970        "MOV     R0, #0\n"
971        "B       loc_FF8C1448\n"
972"loc_FF8C141C:\n"
973        "MOV     R3, #1\n"
974        "MOV     R2, #1\n"
975        "MOV     R1, #1\n"
976        "MOV     R0, #1\n"
977        "STR     R3, [SP]\n"
978        "BL      sub_FF8BD8BC\n"
979        "MOV     R3, #1\n"
980        "MOV     R2, #1\n"
981        "MOV     R1, #1\n"
982        "MOV     R0, #1\n"
983        "STR     R3, [SP]\n"
984"loc_FF8C1448:\n"
985        "BL      sub_FF8BD9FC\n"
986"loc_FF8C144C:\n"
987        "LDR     R0, [SP,#0x1C]\n"
988        "BL      sub_FF8C215C\n"
989        "B       loc_FF8C0E74\n"
990);
991};
992
993void __attribute__((naked,noinline)) sub_FF8BE66C_my(){
994 asm volatile(
995"sub_FF8BE66C:\n"
996        "STMFD   SP!, {R4-R8,LR}\n"
997        "LDR     R7, =0x4440\n"
998        "MOV     R4, R0\n"
999        "LDR     R0, [R7,#0x1C]\n"
1000        "MOV     R1, #0x3E\n"
1001        "BL      sub_FF884914\n"
1002        "LDRSH   R0, [R4,#4]\n"
1003        "MOV     R2, #0\n"
1004        "MOV     R1, #0\n"
1005        "BL      sub_FF8BD620\n"
1006        "MOV     R6, R0\n"
1007        "LDRSH   R0, [R4,#6]\n"
1008        "BL      sub_FF8BD730\n"
1009        "LDRSH   R0, [R4,#8]\n"
1010        "BL      sub_FF8BD788\n"
1011        "LDRSH   R0, [R4,#0xA]\n"
1012        "BL      sub_FF8BD7E0\n"
1013        "LDRSH   R0, [R4,#0xC]\n"
1014        "MOV     R1, #0\n"
1015        "BL      sub_FF8BD838\n"
1016        "MOV     R5, R0\n"
1017        "LDR     R0, [R4]\n"
1018        "LDR     R8, =0x43744\n"
1019        "CMP     R0, #0xB\n"
1020        "MOVEQ   R6, #0\n"
1021        "MOVEQ   R5, #0\n"
1022        "BEQ     loc_FF8BE700\n"
1023        "CMP     R6, #1\n"
1024        "BNE     loc_FF8BE700\n"
1025        "LDRSH   R0, [R4,#4]\n"
1026        "LDR     R1, =0xFF8BD58C\n"
1027        "MOV     R2, #2\n"
1028        "BL      sub_FF959870\n"
1029        "STRH    R0, [R4,#4]\n"
1030        "MOV     R0, #0\n"
1031        "STR     R0, [R7,#0x28]\n"
1032        "B       loc_FF8BE708\n"
1033"loc_FF8BE700:\n"
1034        "LDRH    R0, [R8]\n"
1035        "STRH    R0, [R4,#4]\n"
1036"loc_FF8BE708:\n"
1037        "CMP     R5, #1\n"
1038        "LDRNEH  R0, [R8,#8]\n"
1039        "BNE     loc_FF8BE724\n"
1040        "LDRSH   R0, [R4,#0xC]\n"
1041        "LDR     R1, =0xFF8BD610\n"
1042        "MOV     R2, #0x20\n"
1043        "BL      sub_FF8C218C\n"
1044"loc_FF8BE724:\n"
1045        "STRH    R0, [R4,#0xC]\n"
1046        "LDRSH   R0, [R4,#6]\n"
1047        //"BL      sub_FF8B0770\n"
1048                "BL      sub_FF8B0770_my\n" // -------------------->
1049
1050        "LDRSH   R0, [R4,#8]\n"
1051        "MOV     R1, #1\n"
1052        "BL      sub_FF8B0EC0\n"
1053        "MOV     R1, #0\n"
1054        "ADD     R0, R4, #8\n"
1055        "BL      sub_FF8B0F48\n"
1056        "LDRSH   R0, [R4,#0xE]\n"
1057        "BL      sub_FF8B8A2C\n"
1058        "LDR     R4, =0xBB8\n"
1059        "CMP     R6, #1\n"
1060        "BNE     loc_FF8BE77C\n"
1061        "LDR     R0, [R7,#0x1C]\n"
1062        "MOV     R2, R4\n"
1063        "MOV     R1, #2\n"
1064        "BL      sub_FF884820\n"
1065        "TST     R0, #1\n"
1066        "LDRNE   R1, =0x5A3\n"
1067        "LDRNE   R0, =0xFF8BDC0C\n"
1068        "BLNE    sub_FF81E88C\n"
1069"loc_FF8BE77C:\n"
1070        "CMP     R5, #1\n"
1071        "LDMNEFD SP!, {R4-R8,PC}\n"
1072        "LDR     R0, [R7,#0x1C]\n"
1073        "MOV     R2, R4\n"
1074        "MOV     R1, #0x20\n"
1075        "BL      sub_FF884820\n"
1076        "TST     R0, #1\n"
1077        "LDRNE   R1, =0x5A8\n"
1078        "LDRNE   R0, =0xFF8BDC0C\n"
1079        "LDMNEFD SP!, {R4-R8,LR}\n"
1080        "BNE     sub_FF81E88C\n"
1081        "LDMFD   SP!, {R4-R8,PC}\n"
1082 );
1083};
1084void __attribute__((naked,noinline)) sub_FF8B0770_my()
1085
1086 asm volatile(
1087        "STMFD   SP!, {R4-R6,LR}\n"
1088        "LDR     R5, =0x4150\n"
1089        "MOV     R4, R0\n"
1090        "LDR     R0, [R5,#4]\n"
1091        "CMP     R0, #1\n"
1092        "LDRNE   R1, =0x146\n"
1093        "LDRNE   R0, =0xFF8B0574\n"
1094        "BLNE    sub_FF81E88C\n"
1095        "CMN     R4, #0xC00\n"
1096        "LDREQSH R4, [R5,#2]\n"
1097        "CMN     R4, #0xC00\n"
1098        "MOVEQ   R1, #0x14C\n"
1099        //"ADREQ   R0, 0xFF8B0574\n"
1100                "LDREQ   R0, =0xFF8B0574\n"
1101        "STRH    R4, [R5,#2]\n"
1102        "BLEQ    sub_FF81E88C\n"
1103        "MOV     R0, R4\n"
1104
1105        //"BL      sub_FFA0D7A8\n" // -
1106                "BL      apex2us\n"  // +
1107
1108        "MOV     R4, R0\n"
1109        "BL      sub_FF8F5240\n"
1110        "MOV     R0, R4\n"
1111        "BL      sub_FF8FE10C\n"
1112        "TST     R0, #1\n"
1113        "LDRNE   R1, =0x151\n"
1114        "LDMNEFD SP!, {R4-R6,LR}\n"
1115        "LDRNE   R0, =0xFF8B0574\n"
1116        "BNE     sub_FF81E88C\n"
1117        "LDMFD   SP!, {R4-R6,PC}\n"
1118     );
1119};
Note: See TracBrowser for help on using the repository browser.