source: trunk/platform/a420/sub/100b/capt_seq.c @ 1736

Revision 1736, 21.3 KB checked in by reyalp, 15 months ago (diff)

add a420 100b port from srsa_4c in http://chdk.setepontos.com/index.php?topic=650.msg82864#msg82864 to development branch

  • 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*)0x5E64; //a420 @ffd29118
6
7#include "../../../generic/capt_seq.c"
8
9void __attribute__((naked,noinline)) sub_FFD290DC_my(long p)
10{
11  asm volatile (
12              "STMFD   SP!, {R4-R6,LR}\n"
13              "LDR     R3, =0x726D4\n"
14              "LDR     R5, =0x5E60\n"
15              "SUB     SP, SP, #4\n"
16              "LDR     R1, =0xFFFFFFFF\n"
17              "STR     R0, [R5]\n"
18              "LDR     R0, [R3]\n"
19              "BL      sub_FFC0FB48\n"
20              "LDR     R3, =0x9C780\n"
21              "LDR     R0, [R3,#0x74]\n"
22              "BL      sub_FFC87868\n"
23              "BL      sub_FFD2905C\n"
24             
25              "LDR     R3, =0x5E68\n"
26              "LDR     R0, [R3]\n"
27              "BL      sub_FFC87D14\n"
28            "BL      wait_until_remote_button_is_released\n" //+
29              "BL      capt_seq_hook_set_nr\n" //+
30              "B       sub_FFD29118\n"
31  );
32} // a420, ok
33
34void __attribute__((naked,noinline)) sub_FFD25ECC_my(long p)
35{
36  asm volatile (
37              "STMFD   SP!, {R4,LR}\n"
38              "LDR     R4, [R0,#0xC]\n"
39              "BL      sub_FFD2EC88\n"
40              "CMP     R0, #0\n"
41              "BNE     loc_FFD25EE4\n"
42              "BL      sub_FFD2EC94\n"
43    "loc_FFD25EE4:\n"
44              "MOV     R0, #0xC\n"
45              "BL      sub_FFD2ECA8\n"
46              "TST     R0, #1\n"
47              "MOV     R2, R4\n"
48              "MOV     R0, R4\n"
49              "BEQ     loc_FFD25F0C\n"
50              "MOV     R0, #1\n"
51              "MOV     R1, R0\n"
52              "LDMFD   SP!, {R4,LR}\n"
53              "B       sub_FFD24448\n"
54    "loc_FFD25F0C:\n"
55              "BL      sub_FFD27F30\n"
56              "TST     R0, #1\n"
57              "MOV     R2, R4\n"
58              "MOV     R1, #1\n"
59              "BEQ     loc_FFD25F28\n"
60              "LDMFD   SP!, {R4,LR}\n"
61              "B       sub_FFD24448\n"
62    "loc_FFD25F28:\n"
63              "BL      sub_FFC14714\n"
64              "LDR     R2, =0x9C6C4\n"
65              "ADD     R3, R4, R4,LSL#1\n"
66              "STR     R0, [R2,R3,LSL#5]\n"
67              "MOV     R0, R4\n"
68              "BL      sub_FFD29844\n"
69              "BL      sub_FFD28434\n"
70              "BL      sub_FFD283D0\n"
71              "MOV     R0, R4\n"
72
73              "BL      sub_FFD290DC_my\n"
74              "BL      capt_seq_hook_raw_here\n" //+
75
76              "MOV     R2, R4\n"
77              "MOV     R1, #1\n"
78              "BL      sub_FFD24448\n"
79              "LDMFD   SP!, {R4,LR}\n"
80              "B       sub_FFD292D0\n"
81  );
82} // a420, ok
83
84void __attribute__((naked,noinline)) capt_seq_task()    //IDA task_CaptSeqTask
85{
86  asm volatile (//copy from orig fw @ffd262b0
87          "STMFD   SP!, {R4,LR}\n"
88          "SUB     SP, SP, #4\n"
89          "MOV     R4, SP\n"
90          "B       loc_FFD26408\n"
91    "loc_FFD262C0:\n"
92          "LDR     R2, [SP]\n"
93          "LDR     R3, [R2]\n"
94          "MOV     R0, R2\n"
95          "CMP     R3, #0x14\n"
96          "LDRLS   PC, [PC,R3,LSL#2]\n"
97          "B       loc_FFD263DC\n"
98          ".long loc_FFD2632C\n" //0, still pict mode: half-shoot, ...
99          ".long loc_FFD26338\n" //1, shoot
100          ".long loc_FFD26340\n"
101          ".long loc_FFD26350\n" //3, when idle
102          ".long loc_FFD26348\n" //4, after expo
103          ".long loc_FFD26358\n"
104          ".long loc_FFD26360\n"
105          ".long loc_FFD2636C\n"
106          ".long loc_FFD26374\n" //movie mode: just before record
107          ".long loc_FFD26380\n"
108          ".long loc_FFD26388\n"
109          ".long loc_FFD26390\n"
110          ".long loc_FFD26398\n"
111          ".long loc_FFD263A0\n"
112          ".long loc_FFD263A8\n"
113          ".long loc_FFD263B4\n"
114          ".long loc_FFD263BC\n"
115          ".long loc_FFD263C4\n" //0x11, 2nd at change of rec. format
116          ".long loc_FFD263CC\n"
117          ".long loc_FFD263D4\n"
118          ".long loc_FFD263F0\n" //0x14, 1st at change of rec. format
119    "loc_FFD2632C:\n"
120          "BL      sub_FFD27BA0\n"
121          "BL      shooting_expo_param_override\n"   // +
122          "BL      sub_FFD23FF8\n"
123          "B       loc_FFD263EC\n"
124    "loc_FFD26338:\n"
125          "BL   sub_FFD25ECC_my\n"
126          "B    loc_FFD263EC\n"
127    "loc_FFD26340:\n"
128          "BL   sub_FFD27F20\n"
129          "B    loc_FFD263EC\n"
130    "loc_FFD26348:\n"
131          "BL   sub_FFD26E18\n"
132          "B    loc_FFD263EC\n"
133    "loc_FFD26350:\n"
134          "BL   sub_FFD27234\n"
135          "B    loc_FFD263EC\n"
136    "loc_FFD26358:\n"
137          "BL   sub_FFD27244\n"
138          "B    loc_FFD263EC\n"
139    "loc_FFD26360:\n"
140          "BL   sub_FFD27C6C\n"
141          "BL   sub_FFD23FF8\n"
142          "B    loc_FFD263EC\n"
143    "loc_FFD2636C:\n"
144          "BL   sub_FFD25FD4\n"
145          "B    loc_FFD263EC\n"
146    "loc_FFD26374:\n"
147          "BL   sub_FFD27CD4\n"
148          "BL   sub_FFD23FF8\n"
149          "B    loc_FFD263EC\n"
150    "loc_FFD26380:\n"
151          "BL   sub_FFD27234\n"
152          "B    loc_FFD263EC\n"
153    "loc_FFD26388:\n"
154          "BL   sub_FFD28474\n"
155          "B    loc_FFD263EC\n"
156    "loc_FFD26390:\n"
157          "BL   sub_FFD28790\n"
158          "B    loc_FFD263EC\n"
159    "loc_FFD26398:\n"
160          "BL   sub_FFD28818\n"
161          "B    loc_FFD263EC\n"
162    "loc_FFD263A0:\n"
163          "BL   sub_FFD288E0\n"
164          "B    loc_FFD263EC\n"
165    "loc_FFD263A8:\n"
166          "MOV  R0, #0\n"
167          "BL   sub_FFD28998\n"
168          "B    loc_FFD263EC\n"
169    "loc_FFD263B4:\n"
170          "BL   sub_FFD28AF0\n"
171          "B    loc_FFD263EC\n"
172    "loc_FFD263BC:\n"
173          "BL   sub_FFD28B88\n"
174          "B    loc_FFD263EC\n"
175    "loc_FFD263C4:\n"
176          "BL   sub_FFD28C44\n"
177          "B    loc_FFD263EC\n"
178    "loc_FFD263CC:\n"
179          "BL   sub_FFD28D2C\n"
180          "B    loc_FFD263EC\n"
181    "loc_FFD263D4:\n"
182          "BL   sub_FFD28D80\n"
183          "B    loc_FFD263EC\n"
184    "loc_FFD263DC:\n"
185          "MOV  R1, #0x330\n"
186          "LDR  R0, =0xFFD25C58\n"
187          "ADD  R1, R1, #1\n"
188          "BL   sub_FFC03AEC\n"
189    "loc_FFD263EC:\n"
190          "LDR  R2, [SP]\n"
191    "loc_FFD263F0:\n"
192          "LDR  R3, =0x7265C\n"
193          "LDR  R1, [R2, #4]\n"
194          "LDR  R0, [R3]\n"
195          "BL   sub_FFC0F9AC\n"
196          "LDR  R0, [SP]\n"
197          "BL   sub_FFD25CD4\n"
198    "loc_FFD26408:\n"
199          "LDR  R3, =0x72660\n"
200          "MOV  R1, R4\n"
201          "LDR  R0, [R3]\n"
202          "MOV  R2, #0\n"
203          "BL   sub_FFC100C4\n"
204          "TST  R0, #1\n"
205          "BEQ  loc_FFD262C0\n"
206          "MOV  R1, #0x28C\n"
207          "LDR  R0, =0xFFD25C58\n"
208          "ADD  R1, R1, #2\n"
209          "BL   sub_FFC03AEC\n"
210          "BL   sub_FFC11620\n"
211          "ADD  SP, SP, #4\n"
212          "LDMFD        SP!, {R4, PC}\n"
213  );
214} // a420, ok
215
216void __attribute__((naked,noinline)) exp_drv_task(){
217 asm volatile(// a420 @ffcdb3a4
218"                 STMFD   SP!, {R4-R8,LR}\n"
219"                 SUB     SP, SP, #0x14\n"
220"                 MOV     R7, SP\n"
221"                 B       loc_FFCDB798\n"
222" loc_FFCDB3B4:\n"
223"                 CMP     R2, #0x1E\n"
224"                 BNE     loc_FFCDB3CC\n"
225"                 LDR     R0, [R12,#0x34]\n"
226"                 MOV     LR, PC\n"
227"                 LDR     PC, [R12,#0x30]\n"
228"                 B       loc_FFCDB42C\n"
229" loc_FFCDB3CC:\n"
230"                 CMP     R2, #0x19\n"
231"                 BNE     loc_FFCDB3E0\n"
232"                 MOV     R0, R12\n"
233"                 BL      sub_FFCDB2D4\n"
234"                 B       loc_FFCDB41C\n"
235" loc_FFCDB3E0:\n"
236"                 CMP     R2, #0x1A\n"
237"                 BNE     loc_FFCDB3F4\n"
238"                 MOV     R0, R12\n"
239"                 BL      sub_FFCDB310\n"
240"                 B       loc_FFCDB41C\n"
241" loc_FFCDB3F4:\n"
242"                 SUB     R3, R2, #0x1B\n"
243"                 CMP     R3, #1\n"
244"                 BHI     loc_FFCDB40C\n"
245"                 MOV     R0, R12\n"
246"                 BL      sub_FFCDB34C\n"
247"                 B       loc_FFCDB41C\n"
248" loc_FFCDB40C:\n"
249"                 CMP     R2, #0x1D\n"
250"                 BNE     loc_FFCDB438\n"
251"                 BL      sub_FFC92DC8\n"
252"                 BL      sub_FFC94BB8\n"
253" loc_FFCDB41C:\n"
254"                 LDR     R3, [SP]\n"
255"                 LDR     R0, [R3,#0x34]\n"
256"                 MOV     LR, PC\n"
257"                 LDR     PC, [R3,#0x30]\n"
258" loc_FFCDB42C:\n"
259"                 LDR     R0, [SP]\n"
260"                 BL      sub_FFCD90D0\n"
261"                 B       loc_FFCDB798\n"
262" loc_FFCDB438:\n"
263"                 CMP     R2, #0xD\n"
264"                 MOV     R8, #1\n"
265"                 BNE     loc_FFCDB4A8\n"
266"                 LDR     R1, [R12,#0x24]\n"
267"                 ADD     R1, R1, R1,LSL#1\n"
268"                 ADD     R1, R12, R1,LSL#1\n"
269"                 ADD     R6, SP, #0x0C\n"
270"                 SUB     R1, R1, #2\n"
271"                 MOV     R2, #6\n"
272"                 MOV     R0, R6\n"
273"                 BL      sub_FFE9AAC8\n"
274"                 LDR     R0, [SP]\n"
275"                 BL      sub_FFCDA564\n"
276"                 LDR     R3, [SP]\n"
277"                 LDR     R1, [R3,#0x24]\n"
278"                 LDR     R2, [R3,#0x34]\n"
279"                 ADD     R0, R3, #4\n"
280"                 MOV     LR, PC\n"
281"                 LDR     PC, [R3,#0x30]\n"
282"                 LDR     R0, [SP]\n"
283"                 BL      sub_FFCDA6E8\n"
284"                 LDR     R3, [SP]\n"
285"                 ADD     R0, R3, #4\n"
286"                 LDR     R1, [R3,#0x24]\n"
287"                 LDR     R2, [R3,#0x3C]\n"
288"                 MOV     LR, PC\n"
289"                 LDR     PC, [R3,#0x38]\n"
290"                 B       loc_FFCDB748\n"
291" loc_FFCDB4A8:\n"
292"                 SUB     R3, R2, #0xE\n"
293"                 CMP     R3, #1\n"
294"                 BHI     loc_FFCDB564\n"
295"                 ADD     R6, SP, #0x0C\n"
296"                 ADD     R5, SP, #0x04\n"
297"                 MOV     R0, R12\n"
298"                 MOV     R1, R6\n"
299"                 MOV     R2, R5\n"
300"                 BL      sub_FFCDA764\n"
301"                 MOV     R4, R0\n"
302"                 CMP     R4, #5\n"
303"                 CMPNE   R4, #1\n"
304"                 BNE     loc_FFCDB4FC\n"
305"                 LDR     R12, [SP]\n"
306"                 MOV     R0, R5\n"
307"                 LDR     R1, [R12,#0x24]\n"
308"                 MOV     R2, R4\n"
309"                 LDR     R3, [R12,#0x34]\n"
310"                 MOV     LR, PC\n"
311"                 LDR     PC, [R12,#0x30]\n"
312"                 B       loc_FFCDB534\n"
313" loc_FFCDB4FC:\n"
314"                 CMP     R4, #6\n"
315"                 CMPNE   R4, #2\n"
316"                 BNE     loc_FFCDB544\n"
317"                 LDR     R12, [SP]\n"
318"                 MOV     R0, R5\n"
319"                 MOV     R1, R8\n"
320"                 MOV     R2, R4\n"
321"                 LDR     R3, [R12,#0x34]\n"
322"                 MOV     LR, PC\n"
323"                 LDR     PC, [R12,#0x30]\n"
324"                 MOV     R1, R6\n"
325"                 LDR     R0, [SP]\n"
326"                 MOV     R2, R5\n"
327"                 BL      sub_FFCDB110\n"
328" loc_FFCDB534:\n"
329"                 MOV     R1, R4\n"
330"                 LDR     R0, [SP]\n"
331"                 BL      sub_FFCDB2B4\n"
332"                 B       loc_FFCDB748\n"
333" loc_FFCDB544:\n"
334"                 LDR     R12, [SP]\n"
335"                 MOV     R2, R4\n"
336"                 ADD     R0, R12, #4\n"
337"                 LDR     R1, [R12,#0x24]\n"
338"                 LDR     R3, [R12,#0x34]\n"
339"                 MOV     LR, PC\n"
340"                 LDR     PC, [R12,#0x30]\n"
341"                 B       loc_FFCDB748\n"
342" loc_FFCDB564:\n"
343"                 CMP     R2, #0x17\n"
344"                 BNE     loc_FFCDB5B8\n"
345"                 LDR     R1, [R12,#0x24]\n"
346"                 ADD     R1, R1, R1,LSL#1\n"
347"                 ADD     R1, R12, R1,LSL#1\n"
348"                 ADD     R6, SP, #0x0C\n"
349"                 SUB     R1, R1, #2\n"
350"                 MOV     R2, #6\n"
351"                 MOV     R0, R6\n"
352"                 BL      sub_FFE9AAC8\n"
353"                 LDR     R0, [SP]\n"
354"                 BL      sub_FFCDA098\n"
355"                 LDR     R3, [SP]\n"
356"                 ADD     R0, R3, #4\n"
357"                 LDR     R1, [R3,#0x24]\n"
358"                 LDR     R2, [R3,#0x34]\n"
359"                 MOV     LR, PC\n"
360"                 LDR     PC, [R3,#0x30]\n"
361"                 LDR     R0, [SP]\n"
362"                 BL      sub_FFCDA268\n"
363"                 B       loc_FFCDB748\n"
364" loc_FFCDB5B8:\n"
365"                 ADD     R6, SP, #0x0C\n"
366"                 ADD     R1, R12, #4\n"
367"                 MOV     R2, #6\n"
368"                 MOV     R0, R6\n"
369"                 BL      sub_FFE9AAC8\n"
370"                 LDR     R12, [SP]\n"
371"                 LDR     R3, [R12]\n"
372"                 MOV     R2, R12\n"
373"                 CMP     R3, #0x18\n"
374"                 LDRLS   PC, [PC,R3,LSL#2]\n"
375"                 B       loc_FFCDB734\n"
376"                 .long loc_FFCDB648\n"
377"                 .long loc_FFCDB654\n"
378"                 .long loc_FFCDB660\n"
379"                 .long loc_FFCDB660\n"
380"                 .long loc_FFCDB648\n"
381"                 .long loc_FFCDB654\n"
382"                 .long loc_FFCDB660\n"
383"                 .long loc_FFCDB660\n"
384"                 .long loc_FFCDB684\n"
385"                 .long loc_FFCDB684\n"
386"                 .long loc_FFCDB708\n"
387"                 .long loc_FFCDB714\n"
388"                 .long loc_FFCDB724\n"
389"                 .long loc_FFCDB734\n"
390"                 .long loc_FFCDB734\n"
391"                 .long loc_FFCDB734\n"
392"                 .long loc_FFCDB66C\n"
393"                 .long loc_FFCDB678\n"
394"                 .long loc_FFCDB694\n"
395"                 .long loc_FFCDB6A0\n"
396"                 .long loc_FFCDB6C8\n"
397"                 .long loc_FFCDB6F0\n"
398"                 .long loc_FFCDB6F0\n"
399"                 .long loc_FFCDB734\n"
400"                 .long loc_FFCDB6FC\n"
401" loc_FFCDB648:\n"
402"                 MOV     R0, R2\n"
403"                 BL      sub_FFCD9638\n"
404"                 B       loc_FFCDB730\n"
405" loc_FFCDB654:\n"
406"                 MOV     R0, R2\n"
407"                 BL      sub_FFCD9774\n"
408"                 B       loc_FFCDB730\n"
409" loc_FFCDB660:\n"
410"                 MOV     R0, R2\n"
411"                 BL      sub_FFCD98A4\n"
412"                 B       loc_FFCDB730\n"
413" loc_FFCDB66C:\n"
414"                 MOV     R0, R2\n"
415"                 BL      sub_FFCD9A78\n"
416"                 B       loc_FFCDB730\n"
417" loc_FFCDB678:\n"
418"                 MOV     R0, R2\n"
419"                 BL      sub_FFCD9B80\n"
420"                 B       loc_FFCDB730\n"
421" loc_FFCDB684:\n"
422"                 MOV     R0, R2\n"
423"                 BL      sub_FFCD9C44_my\n" //
424"                 MOV     R8, #0\n"
425"                 B       loc_FFCDB730\n"
426" loc_FFCDB694:\n"
427"                 MOV     R0, R2\n"
428"                 BL      sub_FFCD9D04\n"
429"                 B       loc_FFCDB730\n"
430" loc_FFCDB6A0:\n"
431"                 MOV     R0, R2\n"
432"                 LDRH    R2, [R2,#4]\n"
433"                 LDR     R3, =0x4DD38\n"
434"                 STRH    R2, [SP,#0x0C]\n"
435"                 LDRH    R1, [R3,#4]\n"
436"                 STRH    R1, [SP,#0x10]\n"
437"                 LDRH    R3, [R3,#2]\n"
438"                 STRH    R3, [SP,#0x0E]\n"
439"                 BL      sub_FFCD9E8C\n"
440"                 B       loc_FFCDB730\n"
441" loc_FFCDB6C8:\n"
442"                 LDR     R3, =0x4DD38\n"
443"                 LDRH    R1, [R3]\n"
444"                 STRH    R1, [SP,#0x0C]\n"
445"                 MOV     R0, R2\n"
446"                 LDRH    R2, [R2,#6]\n"
447"                 STRH    R2, [SP,#0x0E]\n"
448"                 LDRH    R3, [R3,#4]\n"
449"                 STRH    R3, [SP,#0x10]\n"
450"                 BL      sub_FFCD9F20\n"
451"                 B       loc_FFCDB730\n"
452" loc_FFCDB6F0:\n"
453"                 MOV     R0, R2\n"
454"                 BL      sub_FFCD9FA0\n"
455"                 B       loc_FFCDB730\n"
456" loc_FFCDB6FC:\n"
457"                 MOV     R0, R2\n"
458"                 BL      sub_FFCDA2F8\n"
459"                 B       loc_FFCDB730\n"
460" loc_FFCDB708:\n"
461"                 MOV     R0, R2\n"
462"                 BL      sub_FFCDA3CC\n"
463"                 B       loc_FFCDB730\n"
464" loc_FFCDB714:\n"
465"                 MOV     R0, R2\n"
466"                 MOV     R1, #0\n"
467"                 BL      sub_FFCDA4B8\n"
468"                 B       loc_FFCDB730\n"
469" loc_FFCDB724:\n"
470"                 MOV     R0, R2\n"
471"                 MOV     R1, #1\n"
472"                 BL      sub_FFCDA4B8\n"
473" loc_FFCDB730:\n"
474"                 LDR     R12, [SP]\n"
475" loc_FFCDB734:\n"
476"                 ADD     R0, R12, #4\n"
477"                 LDR     R1, [R12,#0x24]\n"
478"                 LDR     R2, [R12,#0x34]\n"
479"                 MOV     LR, PC\n"
480"                 LDR     PC, [R12,#0x30]\n"
481" loc_FFCDB748:\n"
482"                 CMP     R8, #1\n"
483"                 BNE     loc_FFCDB770\n"
484"                 LDR     R1, [SP]\n"
485"                 LDR     R3, [R1,#0x24]\n"
486"                 ADD     R3, R3, R3,LSL#1\n"
487"                 ADD     R1, R1, R3,LSL#1\n"
488"                 MOV     R0, R6\n"
489"                 SUB     R1, R1, #2\n"
490"                 BL      sub_FFCD94A0\n"
491"                 B       loc_FFCDB790\n"
492" loc_FFCDB770:\n"
493"                 MOV     R0, #1\n"
494"                 MOV     R1, R0\n"
495"                 MOV     R2, R0\n"
496"                 BL      sub_FFCD9444\n"
497"                 MOV     R0, #1\n"
498"                 MOV     R1, R0\n"
499"                 MOV     R2, R0\n"
500"                 BL      sub_FFCD9560\n"
501" loc_FFCDB790:\n"
502"                 LDR     R0, [SP]\n"
503"                 BL      sub_FFCD90D0\n"
504" loc_FFCDB798:\n"
505"                 LDR     R3, =0x4DD30\n"
506"                 MOV     R2, #0\n"
507"                 LDR     R0, [R3]\n"
508"                 MOV     R1, R7\n"
509"                 BL      sub_FFC100C4\n"
510"                 LDR     R12, [SP]\n"
511"                 LDR     R2, [R12]\n"
512"                 CMP     R2, #0x1F\n"
513"                 BNE     loc_FFCDB3B4\n"
514"                 MOV     R0, R12\n"
515"                 BL      sub_FFCD90D0\n"
516"                 LDR     R3, =0x4DD2C\n"
517"                 MOV     R1, #1\n"
518"                 LDR     R0, [R3]\n"
519"                 BL      sub_FFC0F9AC\n"
520"                 BL      sub_FFC11620\n"
521"                 ADD     SP, SP, #0x14\n"
522"                 LDMFD   SP!, {R4-R8,PC}\n"
523 );
524} // a420
525
526void __attribute__((naked,noinline)) sub_FFCD9C44_my(){//
527 asm volatile(
528"                 STMFD   SP!, {R4,R5,LR}\n"
529"                 LDR     R3, =0x4DD2C\n"
530"                 MOV     R4, R0\n"
531"                 MOV     R1, #0xE\n"
532"                 LDR     R0, [R3]\n"
533"                 BL      sub_FFC0FB48\n"
534"                 MOV     R1, #0\n"
535"                 LDRSH   R0, [R4,#4]\n"
536"                 BL      sub_FFCD91AC\n"
537"                 MOV     R5, R0\n"
538"                 LDRSH   R0, [R4,#6]\n"
539"                 BL      sub_FFCD92DC\n"
540"                 LDRSH   R0, [R4,#8]\n"
541"                 BL      sub_FFCD9378\n"
542"                 LDR     R3, [R4]\n"
543"                 CMP     R3, #9\n"
544"                 MOVEQ   R5, #0\n"
545"                 CMP     R5, #1\n"
546"                 LDR     R1, =0xFFCD9104\n"
547"                 MOV     R2, #2\n"
548"                 BNE     loc_FFCD9CB0\n"
549"                 LDRSH   R0, [R4,#4]\n"
550"                 BL      sub_FFE47B78\n"
551"                 LDR     R2, =0x4DD58\n"
552"                 MOV     R3, #0\n"
553"                 STR     R3, [R2]\n"
554"                 B       loc_FFCD9CB4\n"
555" loc_FFCD9CB0:\n"
556"                 BL      sub_FFCD9414\n"
557" loc_FFCD9CB4:\n"
558"                 STRH    R0, [R4,#4]\n"
559"                 LDRSH   R0, [R4,#6]\n"
560"                 BL      sub_FFC92A50_my\n" //
561"                 LDRSH   R0, [R4,#8]\n"
562"                 MOV     R1, #1\n"
563"                 BL      sub_FFC94778\n"
564"                 MOV     R1, #0\n"
565"                 ADD     R0, R4, #8\n"
566"                 BL      sub_FFC94838\n"
567"                 CMP     R5, #1\n"
568"                 MOV     R1, #2\n"
569"                 MOV     R2, #0\n"
570"                 LDMNEFD SP!, {R4,R5,PC}\n"
571"                 LDR     R3, =0x4DD2C\n"
572"                 LDR     R0, [R3]\n"
573"                 LDMFD   SP!, {R4,R5,LR}\n"
574"                 B       sub_FFC0F99C\n"
575 );
576}// a420
577
578void __attribute__((naked,noinline)) sub_FFC92A50_my() {
579 asm volatile(
580"                 STMFD   SP!, {R4,LR}\n"
581"                 LDR     R3, =0x5078\n"
582"                 LDR     R2, [R3]\n"
583"                 MOV     R1, #0x114\n"
584"                 MOV     R3, R0,LSL#16\n"
585"                 CMP     R2, #1\n"
586"                 ADD     R1, R1, #1\n"
587"                 LDR     R0, =0xFFC924CC\n"
588"                 MOV     R4, R3,ASR#16\n"
589"                 BEQ     loc_FFC92A7C\n"
590"                 BL      sub_FFC03AEC\n"
591" loc_FFC92A7C:\n"
592"                 MOV     R1, #0x118\n"
593"                 CMN     R4, #0xC00\n"
594"                 LDR     R3, =0x34276\n"
595"                 LDR     R0, =0xFFC924CC\n"
596"                 ADD     R1, R1, #3\n"
597"                 LDREQSH R4, [R3]\n"
598"                 LDRNE   R3, =0x34276\n"
599"                 CMN     R4, #0xC00\n"
600"                 STRH    R4, [R3]\n"
601"                 BNE     loc_FFC92AA8\n"
602"                 BL      sub_FFC03AEC\n"
603" loc_FFC92AA8:\n"
604"                 MOV     R0, R4\n"
605"                 BL      apex2us\n" //previously sub_FFC93B4C
606"                 MOV     R4, R0\n"
607"                 BL      sub_FFCB8664\n"
608"                 MOV     R0, R4\n"
609"                 BL      sub_FFC920C0\n"
610"                 TST     R0, #1\n"
611"                 MOV     R1, #0x120\n"
612"                 LDR     R0, =0xFFC924CC\n"
613"                 LDMEQFD SP!, {R4,PC}\n"
614"                 LDMFD   SP!, {R4,LR}\n"
615"                 B       sub_FFC03AEC\n"
616 );
617}// a420
Note: See TracBrowser for help on using the repository browser.