Changeset 1308


Ignore:
Timestamp:
08/29/11 06:17:24 (21 months ago)
Author:
reyalp
Message:

a580 updates from mipa87 in http://chdk.setepontos.com/index.php?topic=650.msg72354#msg72354

Location:
trunk
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • trunk/core/gui.c

    r1302 r1308  
    6666// #define KEY_NONE (KEY_DUMMY+1) 
    6767 
    68 #if !CAM_HAS_ERASE_BUTTON 
     68#if defined(CAMERA_a580) // Cam has not erase button AND Half press shoot button + Left sets AFL, + Up sets AEL! 
     69    //Alt mode 
     70    #define SHORTCUT_TOGGLE_RAW          KEY_DISPLAY 
     71    #define SHORTCUT_MF_TOGGLE           KEY_UP 
     72    //Half press shoot button 
     73    #define SHORTCUT_TOGGLE_HISTO        KEY_DOWN 
     74    #define SHORTCUT_TOGGLE_ZEBRA        KEY_MENU 
     75    #define SHORTCUT_TOGGLE_OSD          KEY_RIGHT 
     76    #define SHORTCUT_DISABLE_OVERRIDES   KEY_DISPLAY 
     77    //Alt mode & Manual mode     
     78    #define SHORTCUT_SET_INFINITY        KEY_DISPLAY 
     79    #define SHORTCUT_SET_HYPERFOCAL      KEY_DOWN 
     80    // For models without ZOOM_LEVER  (#if !CAM_HAS_ZOOM_LEVER) 
     81    // SHORTCUT_SET_INFINITY is not used 
     82    // KEY_DISPLAY is used for gui_subj_dist_override_koef_enum; 
     83    // KEY_LEFT/KEY_RIGHT is used for gui_subj_dist_override_value_enum (because of no separate ZOOM_IN/OUT) 
     84 
     85#elif !CAM_HAS_ERASE_BUTTON 
    6986//Alt mode 
    7087 #define SHORTCUT_TOGGLE_RAW          KEY_DISPLAY 
     
    13451362    static const char* names[]={ "Shrtcut", "Flash", "Video"}; 
    13461363    static const int keys[]={ KEY_PRINT, KEY_FLASH, KEY_VIDEO }; 
    1347 #elif defined(CAMERA_a570) || defined(CAMERA_a590) || defined(CAMERA_a720) 
     1364#elif defined(CAMERA_a570) || defined(CAMERA_a580) || defined(CAMERA_a590) || defined(CAMERA_a720) 
    13481365    static const char* names[]={ "Print", "Display"}; 
    13491366    static const int keys[] = {KEY_PRINT, KEY_DISPLAY}; 
  • trunk/core/kbd.c

    r1262 r1308  
    4848        defined(CAMERA_ixus100_sd780) || defined(CAMERA_ixus120_sd940) || defined(CAMERA_a480) || \ 
    4949        defined(CAMERA_a495) || defined(CAMERA_a490) || defined(CAMERA_d10) || defined(CAMERA_ixus85_sd770) || \ 
    50         defined(CAMERA_ixus95_sd1200) || defined(CAMERA_a580) || defined(CAMERA_ixus300_sd4000) || \ 
     50        defined(CAMERA_ixus95_sd1200) || defined(CAMERA_ixus300_sd4000) || \ 
    5151        defined(CAMERA_a410) 
    5252#define ZSTEP_TABLE_SIZE 7 
     
    7070 
    7171#if defined(CAMERA_a430) || defined(CAMERA_a460) || defined(CAMERA_a530) || defined (CAMERA_a540) || \ 
    72         defined(CAMERA_a550) || defined(CAMERA_a560) || defined(CAMERA_a570) || defined(CAMERA_a590) || \ 
     72        defined(CAMERA_a550) || defined(CAMERA_a560) || defined(CAMERA_a570) || defined(CAMERA_a580) || defined(CAMERA_a590) || \ 
    7373        defined(CAMERA_ixus860_sd870) || defined(CAMERA_ixus960_sd950) || defined(CAMERA_ixus80_sd1100) || \ 
    7474        defined(CAMERA_ixus970_sd890) || defined(CAMERA_ixus980_sd990) || defined(CAMERA_a1100) 
  • trunk/platform/a580/kbd.c

    r1136 r1308  
    1010        long canonkey; 
    1111} KeyMap; 
     12 
    1213 
    1314static long kbd_new_state[3]; 
     
    1819static int usb_power=0; 
    1920static int remote_key, remote_count; 
     21static long alt_mode_key_mask = 0x00000800; 
    2022static int shoot_counter=0; 
    2123#define DELAY_TIMEOUT 10000 
     
    2729#define NEW_SS (0x2000) 
    2830#define SD_READONLY_FLAG (0x20000) 
     31 
     32#define SD_READONLY_IDX     2 
     33#define USB_FLAG            0x00040000 
     34#define USB_IDX             2 
    2935 
    3036#define USB_MASK (0x40000) 
     
    5864if (conf.synch_enable && conf.ricoh_ca1_mode && conf.remote_enable && (!shooting_get_drive_mode()|| (shooting_get_drive_mode()==1) || ((shooting_get_drive_mode()==2) && state_shooting_progress != SHOOTING_PROGRESS_PROCESSING))) 
    5965// if (conf.synch_enable && conf.ricoh_ca1_mode && conf.remote_enable)                                         // synch mode enable so wait for USB to disconnect 
    60   { 
     66 { 
    6167// ------ add by Masuji SUTO (start) -------------- 
    6268        nMode=0; 
     
    239245        physw_status[1] = kbd_new_state[1]; 
    240246        physw_status[2] = kbd_new_state[2]; 
     247        physw_status[1] |= alt_mode_key_mask; 
    241248    } else { 
    242249        // override keys 
     
    268275    else physw_status[2] = physw_status[2] & ~SD_READONLY_FLAG; 
    269276 
    270     _kbd_pwr_off(); 
     277    _kbd_pwr_off();             // Not corrected! als in a590 
    271278 
    272279} 
     
    442449        { 2, KEY_SET            , 0x00000100 }, 
    443450        { 1, KEY_SHOOT_FULL     , 0xC0000000 }, 
     451// not added to trunk yet 
     452//        { 1, KEY_SHOOT_FULL_ONLY, 0x80000000 }, 
    444453        { 1, KEY_SHOOT_HALF     , 0x40000000 }, 
    445454        { 2, KEY_ZOOM_IN        , 0x00000004 }, 
     
    448457        { 2, KEY_DISPLAY        , 0x00000400 }, 
    449458        { 2, KEY_PRINT          , 0x00000800 }, 
    450 //      { 1, KEY_ERASE          , 0x00800000 }, // ??? WHAT??? 
    451459        { 0, 0, 0 } 
    452460}; 
     
    464472} 
    465473 
     474void kbd_set_alt_mode_key_mask(long key) 
     475{ 
     476        int i; 
     477        for (i=0; keymap[i].hackkey; ++i) { 
     478                if (keymap[i].hackkey == key) { 
     479                        alt_mode_key_mask = keymap[i].canonkey; 
     480                        return; 
     481                } 
     482        } 
     483} 
  • trunk/platform/a580/lib.c

    r1136 r1308  
    11#include "platform.h" 
     2//#include "../generic/lib.c" 
    23 
    34void shutdown() 
     
    3233 
    3334int get_flash_params_count(void){ 
    34  return 114; 
     35 return 115; //Corrected! from 114 (x73 = 115 form Stubs_Entry.S) 
    3536} 
  • trunk/platform/a580/main.c

    r1136 r1308  
    3030 
    3131 
    32 static const int fl_tbl[] = {5800, 6700, 8000, 10000, 126000, 158000, 193000, 232000}; 
     32static const int fl_tbl[] = {5800, 6700, 8000, 10000, 12600, 15800, 19300, 23200}; 
    3333#define NUM_FL (sizeof(fl_tbl)/sizeof(fl_tbl[0])) 
    3434#define CF_EFL 60345 //OK 
     
    6868    return 2550; 
    6969} 
    70  
  • trunk/platform/a580/notes.txt

    r1138 r1308  
    1 notes from patch post http://chdk.setepontos.com/index.php?topic=650.msg64412#msg64412 
     1**************************************** 
    22 
    3 It doesn't seem to be very tested, but I've done a walk over CHDK User Manual and almost every function worked without problems: 
     3Camera depending notes:  
    44 
    5 Half Shutter + Left Toggle Zebra on/off: yes, but it turns OSD off too, and doesn't turn it on again (also, AFL appears) 
    6 Half Shutter + Up Toggle Histogram on/off: turns it off, but no on (and sets AEL) 
     5- A580 uses Propset 2 of Properties (see http://tinyurl.com/6zbv9b) 
     6- dryos camera 
     7- A580 does have an ND Filter!  
     8Mind this. 
    79 
    8 These Manual Focus adjustments can also be achieved with shortcut keys. In <ALT> mode, using the LEFT / RIGHT keys to adjust the Value Factor and the Zoom lever to adjust the Subject Distance: doesn't work 
     10**************************************** 
    911 
    10 Enable Fast EV Switch: activates ISO/Continous mode, and the camera hanged once when playing with that 
     12NOTES: 
     13Half Shutter + Left - Sets AFL 
     14Half Shutter + Right - Toogle OSD on/off 
     15Half Shutter + Up - Sets AEL 
     16Half Shutter + Down - Toggle Histogram (Don't / Always / Shoot) 
     17Half Shutter + Menu - Toggle Zebra on/off 
     18Half Shutter + Display - Disable overrides 
    1119 
    12 Video: zoom during video doesn't works, neither does AF key 
     20In Alt: 
     21Display - Toogle RAW on/off 
     22Up - Toogle MF 
    1323 
    14 Curves: not tested 
     24In ALT + Manual mode: 
     25Display - Sets Infinity 
     26Down - Sets Hyperfocal 
     27------- 
     28Adjustable Alt button supported. 
     29------- 
     30User menu works. 
     31------- 
     32Extra long exposure feature supported. 
     33------- 
     34Firmware update from menu works! (With GCC compiler generated file YES, with fi2encdec generated filed NO!) 
    1535 
    16 Zoom values in OSD are wrong (40x?) 
     36platform/fi2.inc: 
     37ifeq ($(KEYSYS), d3enc) 
     38    FI2KEY=6F....71 
     39    FI2IV =53....3D 
     40endif 
    1741 
    18 Sokoban doesn't run 
     42PLEASE TEST: 
     43These Manual Focus adjustments can also be achieved with shortcut keys.  
     44In <ALT> mode, using the LEFT / RIGHT keys to adjust the Value Factor and the Zoom lever to adjust the Subject Distance. 
     45Seems it works, please test!!! 
     46------- 
     47Curves: Seems it works, please test!!! 
     48------- 
     49SDHC multi-partition boot and swap supported. (Tested with 2GB SD (2MB  FAT12 and FAT32 the rest), can someone test it with a larger card 8GB, 16GB...) 
     50 
     51NOT WORKING: 
     52Enable Fast EV Switch: activates ISO/Continous mode 
     53!Workaround: 
     54http://chdk.setepontos.com/index.php/topic,2501.msg23321.html#msg23321 
     55------- 
     56Video: fast video control (on Left (Pause) camera hangs), disabled, not supported? 
  • trunk/platform/a580/platform_camera.h

    r1140 r1308  
    1 // Camera - A580 - platform_camera.h 
     1// Camera - a580 - platform_camera.h 
    22 
    3 // This file contains the various settings values specific to the A580 camera. 
     3// This file contains the various settings values specific to the a580 camera. 
    44// This file is referenced via the 'include/camera.h' file and should not be loaded directly. 
    55 
     
    2121// don't override them again in here. 
    2222 
    23 #define CAM_PROPSET                 2 
    24 #define CAM_DRYOS                   1 
     23    #define CAM_PROPSET                     2 
     24    #define CAM_DRYOS                       1 
    2525 
    26 #define CAM_RAW_ROWPIX              3336   // for new 8 MP 
    27 #define CAM_RAW_ROWS                2480   // for new 8 MP 
     26    #define CAM_RAW_ROWPIX                  3336   // for new 8 MP 
     27    #define CAM_RAW_ROWS                    2490   // for new 8 MP // Corrected! from 2480 (new value from stubs_entry.S) 
    2828 
    29 #define CAM_USE_ZOOM_FOR_MF         1 
     29    #undef  CAM_UNCACHED_BIT            // Added! from stubs_entry.S 
     30    #define CAM_UNCACHED_BIT  0x10000000                // Found @0xffc17e64 // Added! from stubs_entry.S 
    3031 
    31 #undef CAM_CAN_MUTE_MICROPHONE 
    32 #define CAM_HAS_IRIS_DIAPHRAGM      1 
    33 #undef  CAM_HAS_ND_FILTER 
     32    #undef CAM_USE_ZOOM_FOR_MF 
     33    #define CAM_MULTIPART                   1 
     34    #undef CAM_HAS_ERASE_BUTTON 
     35    #undef CAM_HAS_IRIS_DIAPHRAGM 
     36    #define CAM_HAS_ND_FILTER               1 
     37    #undef CAM_HAS_MANUAL_FOCUS 
     38    #undef CAM_HAS_USER_TV_MODES // Shutter speed  = TV, Aperture = AV 
    3439 
    35 #define CAM_HAS_MANUAL_FOCUS        1 
     40    // #undef CAM_CAN_SD_OVER_NOT_IN_MF 
     41    // #undef CAM_CAN_SD_OVERRIDE 
    3642 
    37 #define CAM_AF_SCAN_DURING_VIDEO_RECORD 1 
    38 //#define CAM_EV_IN_VIDEO             1      // not working on 101b!!! 
    39 #define DNG_SUPPORT                 1 
    40 // pattern 
    41 #define cam_CFAPattern 0x01000201 // Green  Blue  Red  Green 
    42 // color 
    43 #define CAM_COLORMATRIX1                              \ 
    44  726857, 1000000, -176454, 1000000, -124118, 1000000, \ 
    45  -71340, 1000000,  592001, 1000000,   75622, 1000000, \ 
    46   63222, 1000000,   50547, 1000000,  219582, 1000000 
     43    #undef CAM_HAS_IS 
     44    #define CAM_CAN_MUTE_MICROPHONE         1 
     45    #define CAM_ADJUSTABLE_ALT_BUTTON       1 
     46    #define CAM_AF_SCAN_DURING_VIDEO_RECORD 1 
     47    // #define CAM_EV_IN_VIDEO                 1      // not working on 101b!!! 
     48    #undef CAM_VIDEO_CONTROL            // Not working 
    4749 
    48 #define cam_CalibrationIlluminant1 1 // Daylight 
    49 // cropping 
    50 #define CAM_JPEG_WIDTH  3264 
    51 #define CAM_JPEG_HEIGHT 2448 
    52 #define CAM_ACTIVE_AREA_X1 12 
    53 #define CAM_ACTIVE_AREA_Y1 10 
    54 // note: the above contains some pixels which have valid data, 
    55 // but are not at the same levels as the rest of the frame 
    56 // the values below crop the "different" looking pixels. 
    57 //#define CAM_ACTIVE_AREA_X1 16 
    58 //#define CAM_ACTIVE_AREA_Y1 18 
    59 #define CAM_ACTIVE_AREA_X2 3300 
    60 #define CAM_ACTIVE_AREA_Y2 2480 
     50    // pattern 
     51    #define cam_CFAPattern                  0x01000201 // Green  Blue  Red  Green 
     52    // color 
     53    #define CAM_COLORMATRIX1                              \ 
     54    726857, 1000000, -176454, 1000000, -124118, 1000000, \ 
     55    -71340, 1000000,  592001, 1000000,   75622, 1000000, \ 
     56    63222, 1000000,   50547, 1000000,  219582, 1000000 
    6157 
    62 // camera name 
    63 #define PARAM_CAMERA_NAME 4 // parameter number for GetParameterData 
     58    #define cam_CalibrationIlluminant1      1 // Daylight 
     59    // cropping 
     60    #define CAM_JPEG_WIDTH                  3264 
     61    #define CAM_JPEG_HEIGHT                 2448 
     62    #define CAM_ACTIVE_AREA_X1              12 
     63    #define CAM_ACTIVE_AREA_Y1              10 
     64    // note: the above contains some pixels which have valid data, 
     65    // but are not at the same levels as the rest of the frame 
     66    // the values below crop the "different" looking pixels. 
     67    //#define CAM_ACTIVE_AREA_X1            16 
     68    //#define CAM_ACTIVE_AREA_Y1            18 
     69    #define CAM_ACTIVE_AREA_X2              3300 
     70    #define CAM_ACTIVE_AREA_Y2              2480 
    6471 
    65 #undef CAM_ADJUSTABLE_ALT_BUTTON 
    66 #undef CAM_EXT_TV_RANGE 
    67 //#define CAM_MULTIPART               1 
    68 #undef CAM_MULTIPART 
     72    // camera name 
     73    #define PARAM_CAMERA_NAME               4 // parameter number for GetParameterData 
     74    #define CAM_EXT_TV_RANGE                1 // CHDK can make exposure time longer than 64s 
    6975//---------------------------------------------------------- 
    70  
  • trunk/platform/a580/shooting.c

    r1137 r1308  
    88 
    99const ApertureSize aperture_sizes_table[] = { 
    10     {  9, 273, "2.6" }, 
    11     { 10, 285, "2.8" }, 
    12     { 11, 304, "3.2" }, 
     10    {  9, 267, "2.6" }, // without ND 
     11    { 10, 279, "2.8" }, 
     12    { 11, 302, "3.2" }, 
    1313    { 12, 337, "3.5" }, 
    14     { 13, 372, "4.0" }, 
    15     { 14, 409, "4.5" }, 
    16     { 15, 448, "5.0" }, 
    17     { 16, 480, "5.5" } 
     14    { 13, 383, "4.0" }, 
     15    { 14, 437, "4.5" }, 
     16    { 15, 503, "5.0" }, 
     17    { 16, 565, "5.5" }, 
     18    { 17, 675, "7.1 ND" }, // with ND 
     19    { 18, 705, "7.1 ND" }, 
     20    { 19, 763, "8.0 ND" }, 
     21    { 20, 850, "9.0 ND" }, 
     22    { 21, 965, "10.0 ND" }, 
     23    { 22, 1103, "11.0 ND" }, 
     24    { 23, 1269, "13.0 ND" }, 
     25    { 24, 1425, "14.0 ND" } 
    1826}; 
    1927 
     
    6876 
    6977const ISOTable iso_table[] = { 
    70     { -1,    1,   "HI", -1}, 
    71     {  0,    0, "Auto", -1}, 
    72     {  1,   80,   "80", -1}, 
    73     {  2,  100,  "100", -1}, 
    74     {  3,  200,  "200", -1}, 
    75     {  4,  400,  "400", -1}, 
    76     {  5,  800,  "800", -1}, 
    77     {  6, 1600, "1600", -1}, 
     78    { -1,    1, "Auto HI", -1}, 
     79    {  0,    0,    "Auto", -1}, 
     80    {  1,   80,      "80", -1}, 
     81    {  2,  100,     "100", -1}, 
     82    {  3,  200,     "200", -1}, 
     83    {  4,  400,     "400", -1}, 
     84    {  5,  800,     "800", -1}, 
     85    {  6, 1600,    "1600", -1}, 
    7886}; 
    7987 
     
    8896Movie: 640 x 480 (20 fps/20 fps LP), 320 x 240 (30 fps) available up to 4GB or 60 minutes, 160 x 120 (up to 3 minutes at 15 fps) 
    8997 
    90 canon mode list in FFE7CFFC 100c 
     98canon mode list in @FFE7CFFC in 100c 
    9199*/ 
    92 // 32774 - ?????? ????? ? ?????? ??????? 
    93100static const CapturemodeMap modemap[] = { 
    94     { MODE_AUTO,               32768 },//OK 
    95     { MODE_P,                  32772 },//OK 
    96     { MODE_VIDEO_STD,          2599  },//OK 
    97     { MODE_VIDEO_COMPACT,      2601  },//OK 
    98     { MODE_SCN_AQUARIUM,       16408 },//OK 
    99     { MODE_SCN_NIGHT_SCENE,    16398 },//OK 
    100     { MODE_SCN_FOLIAGE,        16403 },//OK 
    101     { MODE_SCN_SNOW,           16404 },//OK 
    102     { MODE_SCN_BEACH,          16405 },//OK 
    103     { MODE_SCN_FIREWORK,       16406 },//OK 
    104     { MODE_INDOOR,             32785 },//OK 
    105     { MODE_KIDS_PETS,          32784 },//OK 
    106     { MODE_NIGHT_SNAPSHOT,     32779 },//OK 
    107     { MODE_LANDSCAPE,          32780 },//OK 
    108     { MODE_PORTRAIT,           32781 },//OK 
     101    { MODE_P,                  32772 }, // OK! 
     102    { MODE_LONG_SHUTTER,       32774 }, // OK! 
     103    { MODE_AUTO,               32768 }, // OK! 
     104    { MODE_EASY,               33311 }, // OK! 
     105    { MODE_PORTRAIT,           32781 }, // OK! 
     106    { MODE_LANDSCAPE,          32780 }, // OK! 
     107    { MODE_NIGHT_SNAPSHOT,     32779 }, // OK! 
     108    { MODE_KIDS_PETS,          32784 }, // OK! 
     109    { MODE_INDOOR,             32785 }, // OK! 
     110 
     111    { MODE_SCN_NIGHT_SCENE,    16398 }, // OK! 
     112    { MODE_SCN_SUNSET,         16402 }, // OK! 
     113    { MODE_SCN_FOLIAGE,        16403 }, // OK! 
     114    { MODE_SCN_SNOW,           16404 }, // OK! 
     115    { MODE_SCN_BEACH,          16405 }, // OK! 
     116    { MODE_SCN_FIREWORK,       16406 }, // OK! 
     117    { MODE_SCN_AQUARIUM,       16408 }, // OK! 
     118 
     119    { MODE_VIDEO_STD,          2599  }, // OK! 
     120    { MODE_VIDEO_COMPACT,      2601  }, // OK! 
    109121}; 
    110122 
     
    132144 
    133145int circle_of_confusion = 5; 
    134  
  • trunk/platform/a580/sub/101b/boot.c

    r1136 r1308  
    1313void CreateTask_spytask(); 
    1414 
     15void task_CaptSeqTask_my(); 
     16void task_InitFileModules_my(); 
     17void MovieRecord_Task_my(); 
     18 
    1519void boot(); 
     20 
     21void taskCreateHook(int *p) {  
     22 p-=16; 
     23 if (p[0]==0xFFC49B38)  p[0]=(int)task_CaptSeqTask_my;          //done 
     24 if (p[0]==0xFFC118BC)  p[0]=(int)mykbd_task;           //done 
     25 if (p[0]==0xFFC5FEA0)  p[0]=(int)task_InitFileModules_my;              //done 
     26 if (p[0]==0xFFC46678)  p[0]=(int)MovieRecord_Task_my;          //done 
     27 if (p[0]==0xFFC91194)  p[0]=(int)exp_drv_task; //done 
     28} 
     29 
     30void taskCreateHook2(int *p) {  
     31 p-=16; 
     32 if (p[0]==0xFFC5FEA0)  p[0]=(int)task_InitFileModules_my;              //done 
     33} 
    1634 
    1735#define DEBUG_LED 0xC02200C4 
     
    2038    long *canon_data_src = (void*)0xFFEBFB4C; 
    2139    long *canon_data_dst = (void*)0x1900; 
    22     long canon_data_len = 0xd700 - 0x1900; // data_end - data_start 
    23     long *canon_bss_start = (void*)0xd700; // just after data 
    24     long canon_bss_len = 0xa47e0 - 0xd700; 
     40    long canon_data_len = 0xD700 - 0x1900;              // data_end - data_start 
     41    long *canon_bss_start = (void*)0xD700;              // just after data 
     42    long canon_bss_len = 0xA47E0 - 0xD700; 
    2543 
    2644    long i; 
     
    5169*/ 
    5270 
     71    *(int*)0x1930=(int)taskCreateHook; 
     72    *(int*)0x1934=(int)taskCreateHook; 
     73    *(int*)0x1938=(int)taskCreateHook2; 
     74 
    5375    // jump to init-sequence that follows the data-copy-routine 
    5476    asm volatile ("B      sub_FFC001a4_my\n"); 
    5577}; //#fe 
    56  
    5778 
    5879// init 
     
    84105                "MSR     CPSR_cxsf, R0\n" 
    85106                "MOV     SP, #0x1000\n" 
    86                 "LDR     R0, =0x6C4\n" //??? 
     107                "LDR     R0, =0x6C4\n" 
    87108                "LDR     R2, =0xEEEEEEEE\n" 
    88109                "MOV     R3, #0x1000\n" 
     
    107128              "BL      sub_FFE58D68\n" 
    108129              "MOV     R0, #0x53000\n" 
    109               "STR     R0, [SP,#0x74-0x70]\n"//?????????... 
    110         ); 
    111 //              "LDR     R0, =0xE47E0\n"          // 0xa47e0 + 0x40000, note: 0x20000 *should* have been enough, but our code was overwritten... 
    112                                                 // ...thus we push the memory pool a little more up (0x30000 = 192k) 
    113         asm volatile ( 
     130              "STR     R0, [SP,#0x74-0x70]\n" 
     131#if defined(OPT_CHDK_IN_EXMEM) 
     132              //"LDR     R0, =0xA47E0\n" // use original heap offset since CHDK is loaded in high memory 
     133              "LDR     R0, =0xE47E0\n" // 0xa47e0 + 0x40000, note: 0x20000 *should* have been enough, but our code was overwritten... 
     134                                       // ...thus we push the memory pool a little more up (0x30000 = 192k) 
     135#else 
    114136              "LDR     R0, =new_sa\n" 
    115137              "LDR     R0, [R0]\n" 
    116         ); 
    117         asm volatile ( 
     138#endif 
    118139              "LDR     R2, =0x279C00\n" 
    119140              "LDR     R1, =0x272968\n" 
     
    129150              "LDR     R0, =0x19B\n" 
    130151              "MOV     R1, #0x64\n" 
    131               //"STRD     R0, [SP,#0x74-0x54]\n"        // "strd not supported by cpu" claims gcc 
    132               "STR      R0, [SP,#0x74-0x54]\n"          // split in two single-word STRs 
     152              //"STRD     R0, [SP,#0x74-0x54]\n"                // "strd not supported by cpu" claims gcc 
     153              "STR      R0, [SP,#0x74-0x54]\n"          // split in two single-word STRs 
    133154              "STR      R1, [SP,#0x74-0x50]\n" 
    134155 
    135156              "MOV     R0, #0x78\n" 
    136               //"STRD     R0, [SP,#0x74-0x4C]\n"        // "strd not supported by cpu" claims gcc 
    137               "STR      R0, [SP,#0x74-0x4C]\n"          // split in two single-word STRs 
     157              //"STRD     R0, [SP,#0x74-0x4C]\n"                // "strd not supported by cpu" claims gcc 
     158              "STR      R0, [SP,#0x74-0x4C]\n"          // split in two single-word STRs 
    138159              "STR      R1, [SP,#0x74-0x48]\n" 
    139160 
     
    150171              "STR     R0, [SP,#0x74-0x0C]\n" 
    151172 
    152               //"LDR     R1, =0xFFC04DA4\n"         // uHwSetup = 0xFFC04DA4 
    153               "LDR     R1, =uHwSetup_my\n"         // followup to own function 
     173              //"LDR     R1, =0xFFC04DA4\n"             // uHwSetup = 0xFFC04DA4 
     174              "LDR     R1, =uHwSetup_my\n"              // followup to own function 
    154175 
    155176              "MOV     R0, SP\n" 
     
    165186              "STMFD   SP!, {R4,LR}\n" 
    166187              "BL      sub_FFC0094C\n" 
    167               "BL      sub_FFC0972C\n"          // _dmSetup 
     188              "BL      sub_FFC0972C\n"          // _dmSetup // OK! 
    168189              "CMP     R0, #0\n" 
    169               "LDRLT   R0, =0xffc04eb8\n"       // FFC04EB8 aDmsetup 
    170               "BLLT    sub_FFC04E98\n"          // FFC04E98  _err_init_task 
    171               "BL      sub_FFC049C8\n"          // _termDriverInit 
     190              "LDRLT   R0, =0xffc04eb8\n"               // FFC04EB8 aDmsetup // OK! 
     191              "BLLT    sub_FFC04E98\n"          // FFC04E98  _err_init_task // OK! 
     192              "BL      sub_FFC049C8\n"          // _termDriverInit // OK! 
    172193              "CMP     R0, #0\n" 
    173               "LDRLT   R0, =0xFFC04EC0\n"       // aTermdriverinit 
    174               "BLLT    sub_FFC04E98\n"          // FFC04E98  _err_init_task 
    175               "LDR     R0, =0xFFc04ED0\n"       // a_term 
    176               "BL      sub_FFC04AB4\n"          // _termDeviceCreate 
     194              "LDRLT   R0, =0xFFC04EC0\n"               // aTermdriverinit // OK! 
     195              "BLLT    sub_FFC04E98\n"          // FFC04E98  _err_init_task // OK! 
     196              "LDR     R0, =0xFFc04ED0\n"               // a_term // OK! 
     197              "BL      sub_FFC04AB4\n"          // _termDeviceCreate // OK! 
    177198              "CMP     R0, #0\n" 
    178               "LDRLT   R0, =0xFFC04ED8\n"       // aTermdevicecrea 
    179               "BLLT    sub_FFC04E98\n"          // FFC04E98  _err_init_task 
    180               "LDR     R0, =0xFFc04ED0\n"       // a_term 
    181               "BL      sub_FFc03564\n"          // _stdioSetup 
     199              "LDRLT   R0, =0xFFC04ED8\n"               // aTermdevicecrea // OK! 
     200              "BLLT    sub_FFC04E98\n"          // FFC04E98  _err_init_task // OK! 
     201              "LDR     R0, =0xFFc04ED0\n"               // a_term // OK! 
     202              "BL      sub_FFc03564\n"          // _stdioSetup // OK! 
    182203              "CMP     R0, #0\n" 
    183               "LDRLT   R0, =0xFFC04EEC\n"       // aStdiosetup 
    184               "BLLT    sub_FFC04E98\n"          // FFC04E98  _err_init_task 
    185               "BL      sub_FFc092B4\n"          // _stdlibSetup 
     204              "LDRLT   R0, =0xFFC04EEC\n"               // aStdiosetup // OK! 
     205              "BLLT    sub_FFC04E98\n"          // FFC04E98  _err_init_task // OK! 
     206              "BL      sub_FFc092B4\n"          // _stdlibSetup // OK! 
    186207              "CMP     R0, #0\n" 
    187               "LDRLT   R0, =0xFFC04EEC\n"       // aStdlibsetup 
    188               "BLLT    sub_FFC04E98\n"          // FFC04E98  _err_init_task 
    189               "BL      sub_FFC014B8\n"          // _armlib_setup 
     208              "LDRLT   R0, =0xFFC04EF8\n"               // aStdlibsetup // Corrected! from 0xFFC04EEC 
     209              "BLLT    sub_FFC04E98\n"          // FFC04E98  _err_init_task // OK! 
     210              "BL      sub_FFC014B8\n"          // _armlib_setup // OK! 
    190211              "CMP     R0, #0\n" 
    191               "LDRLT   R0, =0xFFC04F04\n"       // aArmlib_setup 
    192               "BLLT    sub_FFC04E98\n"          // FFC04E98  _err_init_task 
     212              "LDRLT   R0, =0xFFC04F04\n"               // aArmlib_setup // OK! 
     213              "BLLT    sub_FFC04E98\n"          // FFC04E98  _err_init_task // OK! 
    193214              "LDMFD   SP!, {R4,LR}\n" 
    194               //"B       _CreateTaskStartup\n"   // FFC0DCDC 
     215              //"B       _CreateTaskStartup\n"          // FFC0CD84 
    195216              "B       CreateTask_Startup_my\n" 
    196217 
     
    201222        asm volatile ( 
    202223                "STMFD   SP!, {R3,LR}\n" 
    203                 //"BL      j_nullsub_212\n" 
     224                //"BL      j_nullsub_211\n" 
    204225                "BL      sub_FFC1979C\n" 
    205226                "CMP     R0, #0\n" 
     
    218239                "LDR     R1, =0xC0220000\n" 
    219240 
    220                 "MOV     R1, #0x44\n" 
    221                 "STR     R1, [R0,#0x4C]\n" 
     241                "MOV     R0, #0x44\n"           // Corrected! from MOV     R1, #0x44 
     242                "STR     R0, [R1,#0x4C]\n"              // Corrected! from STR     R1, [R0,#0x4C] 
    222243        "loc_FFC0CDB0:\n" 
    223244                "B       loc_FFC0CDB0\n" 
    224245        "loc_FFC0CDB4:\n" 
    225                 //"BL      j_nullsub_214\n" 
    226246                //"BL      j_nullsub_213\n" 
     247                //"BL      j_nullsub_212\n" 
    227248                "BL      sub_FFC17B24\n" 
    228                 //different from a720!!! 
    229                 "LDR     R1, =0x2CE000\n"// ??? ?????? ??? 0x300000 ???-?? ????... 
     249                "LDR     R1, =0x2CE000\n" // Different from a720!!! (MOV     R1, #0x300000) 
    230250                "MOV     R0, #0\n" 
     251 
    231252                "BL      sub_FFC17D6C\n" 
    232253                "BL      sub_FFC17D18\n" 
    233254                "MOV     R3, #0\n" 
    234                 "STR     R3, [SP]\n" 
    235                 //"ADR     R3, sub_FFC0CD28\n"     //Startup 
     255                "STR     R3, [SP,#8-8]\n" 
     256 
     257                //"ADR     R3, sub_FFC0CD28\n"     // Startup 
    236258                "LDR     R3, =task_Startup_my\n"      // followup to own function 
    237259                "MOV     R2, #0\n" 
    238260                "MOV     R1, #0x19\n" 
    239                 "LDR     R0, =0xFFC0CDFC\n" 
    240                 "BL      sub_FFC0B8E0\n" 
     261                "LDR     R0, =0xFFC0CDFC\n" // aStartup, 0xFFC0CDFC (ADR     R0, aStartup) 
     262                "BL      sub_FFC0B8E0\n" // CreateTask, 0xFFC0B8E0 
    241263                "MOV     R0, #0\n" 
    242264                "LDMFD   SP!, {R12,PC}\n" 
     
    245267 
    246268void __attribute__((naked,noinline)) task_Startup_my() { //#fs 
     269 
    247270        asm volatile ( 
    248271                "STMFD   SP!, {R4,LR}\n" 
    249                 "BL      sub_FFC051BC\n"  // uRegClockSave 
     272                "BL      sub_FFC051BC\n"                // taskcreate_ClockSave 
    250273                "BL      sub_FFC12B3C\n" 
    251274                "BL      sub_FFC0FE14\n" 
    252                 //"BL      j_nullsub_217\n" 
     275                //"BL    j_nullsub_216\n"               // j_kbd_pwr_on_short does not exist in a580's DryOS version 
    253276                "BL      sub_FFC199A4\n" 
    254                 //"BL      sub_FFC19864\n"  // StartDiskboot 
     277                //"BL      sub_FFC19864\n"              // StartDiskboot 
    255278        ); 
    256279 
     
    260283                "BL      sub_FFC19B58\n" 
    261284                "BL      sub_FFC199F4\n" 
     285 
    262286                "BL      sub_FFC17064\n" 
    263287                "BL      sub_FFC19B5C\n" 
    264         ); 
    265  
    266         CreateTask_PhySw(); 
    267  
    268         asm volatile ( 
    269                 //"BL      sub_FFC118F0\n"        // CreateTask_PhySw - checks buttons and acts accordingly 
    270  
    271                 "BL      sub_FFC14A34_my\n"        // divert to intercept task_ShootSeqTask 
     288                "BL      sub_FFC118F0\n"                // taskcreate_PhySw - checks buttons and acts accordingly 
     289 
     290                "BL      sub_FFC14A34\n"                // task_ShootSeqTask 
    272291                "BL      sub_FFC19B74\n" 
    273                 //"BL      nullsub_2\n" 
     292                //"BL    sub_FFC0FBD8\n"                // nullsub_2 
    274293                "BL      sub_FFC10DC4\n" 
    275                 "BL      sub_FFC19564\n" 
     294                "BL      sub_FFC19564\n"                // taskcreate_Bye 
    276295                "BL      sub_FFC11420\n" 
    277                 "BL      sub_FFC10CC4\n" 
    278                 "BL      sub_FFC1A4C0\n" //TODO: m.b. comment 
    279                 //"BL      sub_FFC1A4C0_my\n"     // divert for SDHC-bootdisk-support //TODO: m.b. uncomment 
     296                "BL      sub_FFC10CC4\n"                // taskcreate_TempCheck 
     297                "BL      sub_FFC1A4C0\n" 
    280298                "BL      sub_FFC10C80\n" 
    281299 
    282300                // modification: BL instead of B to last function to control action after its return 
    283301                "BL       sub_FFC05070\n" 
    284                 "LDMFD   SP!, {R4,PC}\n"        // restore stack to PC instead of LR to return to caller 
     302                "LDMFD   SP!, {R4,PC}\n"                // restore stack to PC instead of LR to return to caller 
    285303        ); 
    286304}; //#fe 
     
    291309}; //#fe 
    292310 
    293 void CreateTask_PhySw() { //#fs 
    294         _CreateTask("PhySw", 0x18, 0x800, mykbd_task, 0); 
    295 }; //#fe 
    296  
    297 void __attribute__((naked,noinline)) sub_FFC14A34_my() { //#fs 
     311void __attribute__((naked,noinline)) task_InitFileModules_my() { //#fs 
     312        asm volatile ( 
     313                "STMFD   SP!, {R4-R6,LR}\n" 
     314                "BL      sub_FFC58A28\n" 
     315                "LDR     R5, =0x5006\n" 
     316                "MOVS    R4, R0\n" 
     317                "MOVNE   R1, #0\n" 
     318                "MOVNE   R0, R5\n" 
     319                "BLNE    sub_FFC5BEC4\n"                // PostLogicalEventToUI 
     320                "BL      sub_FFC58A54_my\n"             // Continue to SDHC-hook here! 
     321 
     322                "BL      core_spytask_can_start\n"              // CHDK: Set "it's-save-to-start"-Flag for spytask (safe?) 
     323 
     324                "CMP     R4, #0\n" 
     325                "MOVEQ   R0, R5\n" 
     326                "LDMEQFD SP!, {R4-R6,LR}\n" 
     327                "MOVEQ   R1, #0\n" 
     328                "BEQ     sub_FFC5BEC4\n"                // PostLogicalEventToUI (cameralog "LogicalEvent...", it's save to run this after spytask has started) 
     329                "LDMFD   SP!, {R4-R6,PC}\n" 
     330         ); 
     331}; //#fe 
     332 
     333void __attribute__((naked,noinline)) sub_FFC58A54_my() { //#fs 
    298334        asm volatile ( 
    299335                "STMFD   SP!, {R4,LR}\n" 
    300                 "LDR     R4, =0x1C04\n" 
     336                "BL      sub_FFC3D588_my\n"             // Continue to SDHC-hook here 
     337                "LDR     R4, =0x5580\n" 
     338                "LDR     R0, [R4,#4]\n" 
     339                "CMP     R0, #0\n" 
     340                "BNE     loc_FFC58A84\n" 
     341                "BL      sub_FFC66B30\n" 
     342                "BL      sub_FFCDE71C\n" 
     343                "BL      sub_FFC66B30\n" 
     344                "BL      sub_FFC3AF78\n" 
     345                "BL      sub_FFC66B40\n" 
     346                "BL      sub_FFCDE7E8\n" 
     347        "loc_FFC58A84:\n" 
     348                "MOV     R0, #1\n" 
     349                "STR     R0, [R4]\n" 
     350                "LDMFD   SP!, {R4,PC}\n" 
     351        ); 
     352}; //#fe 
     353 
     354void __attribute__((naked,noinline)) sub_FFC3D588_my() { //#fs 
     355        asm volatile ( 
     356                "STMFD   SP!, {R4-R6,LR}\n" 
     357                "MOV     R6, #0\n" 
     358                "MOV     R0, R6\n" 
     359                "BL      sub_FFC3D048\n" 
     360                "LDR     R4, =0xFE6C\n" 
     361                "MOV     R5, #0\n" 
     362                "LDR     R0, [R4,#0x38]\n" 
     363                "BL      sub_FFC3DA7C\n" 
     364                "CMP     R0, #0\n" 
     365                "LDREQ   R0, =0x2828\n" 
     366                "STREQ   R5, [R0,#0x10]\n" 
     367                "STREQ   R5, [R0,#0x14]\n" 
     368                "STREQ   R5, [R0,#0x18]\n" 
     369                "MOV     R0, R6\n" 
     370                "BL      sub_FFC3D088\n"                // uMounter (u=unknown, just to prevent misunderstandings) 
     371                "MOV     R0, R6\n" 
     372                "BL      sub_FFC3D3C4_my\n"             // Continue to SDHC-hook here! 
     373                "MOV     R5, R0\n" 
     374                "MOV     R0, R6\n" 
     375                "BL      sub_FFC3D430\n" 
     376                "LDR     R1, [R4,#0x3C]\n" 
     377                "AND     R2, R5, R0\n" 
     378                "CMP     R1, #0\n" 
    301379                "MOV     R0, #0\n" 
    302                 "MOV     R1, #4\n" 
    303                 "STR     R0, [R4,#0xC]\n" 
    304                 "BL      sub_FFC0BC10\n" 
    305                 "STR     R0, [R4,#4]\n" 
     380                "MOVEQ   R0, #0x80000001\n" 
     381                "BEQ     loc_FFC3D61C\n" 
     382                "LDR     R3, [R4,#0x2C]\n" 
     383                "CMP     R3, #2\n" 
     384                "MOVEQ   R0, #4\n" 
     385                "CMP     R1, #5\n" 
     386                "ORRNE   R0, R0, #1\n" 
     387                "BICEQ   R0, R0, #1\n" 
     388                "CMP     R2, #0\n" 
     389                "BICEQ   R0, R0, #2\n" 
     390                "ORREQ   R0, R0, #0x80000000\n" 
     391                "BICNE   R0, R0, #0x80000000\n" 
     392                "ORRNE   R0, R0, #2\n" 
     393        "loc_FFC3D61C:\n" 
     394                "STR     R0, [R4,#0x40]\n" 
     395                "LDMFD   SP!, {R4-R6,PC}\n" 
     396        ); 
     397}; //#fe 
     398 
     399void __attribute__((naked,noinline)) sub_FFC3D3C4_my() { //#fs 
     400        asm volatile ( 
     401                "STMFD   SP!, {R4-R6,LR}\n" 
     402                "LDR     R5, =0x2828\n" 
     403                "MOV     R6, R0\n" 
     404                "LDR     R0, [R5,#0x14]\n" 
     405                "CMP     R0, #0\n" 
     406                "MOVNE   R0, #1\n" 
     407                "LDMNEFD SP!, {R4-R6,PC}\n" 
     408                "MOV     R0, #0x17\n" 
     409                "MUL     R1, R0, R6\n" 
     410                "LDR     R0, =0xFE6C\n" 
     411                "ADD     R4, R0, R1,LSL#2\n" 
     412                "LDR     R0, [R4,#0x38]\n" 
     413                "MOV     R1, R6\n" 
     414                "BL      sub_FFC3D154_my\n"             // Continue to SDHC-hook here! 
     415                "CMP     R0, #0\n" 
     416                "LDMEQFD SP!, {R4-R6,PC}\n" 
     417                "LDR     R0, [R4,#0x38]\n" 
     418                "MOV     R1, R6\n" 
     419                "BL      sub_FFC3D2BC\n" 
     420                "CMP     R0, #0\n" 
     421                "LDMEQFD SP!, {R4-R6,PC}\n" 
     422                "MOV     R0, R6\n" 
     423                "BL      sub_FFC3CC50\n" 
     424                "CMP     R0, #0\n" 
     425                "MOVNE   R1, #1\n" 
     426                "STRNE   R1, [R5,#0x14]\n" 
     427                "LDMFD   SP!, {R4-R6,PC}\n" 
     428        ); 
     429}; //#fe 
     430 
     431void __attribute__((naked,noinline)) sub_FFC3D154_my() { //#fs  ; Partition table parse takes place here. => SDHC-boot 
     432        asm volatile ( 
     433                "STMFD   SP!, {R4-R8,LR}\n" 
     434                "MOV     R8, R0\n" 
     435                "MOV     R0, #0x17\n" 
     436                "MUL     R1, R0, R1\n" 
     437                "LDR     R0, =0xFE6C\n" 
     438                "MOV     R6, #0\n" 
     439                "ADD     R7, R0, R1,LSL#2\n" 
     440                "LDR     R0, [R7,#0x3C]\n" 
     441                "MOV     R5, #0\n" 
     442                "CMP     R0, #6\n" 
     443                "ADDLS   PC, PC, R0,LSL#2\n" 
     444                "B       loc_FFC3D2A0\n" 
     445        "loc_FFC3D184:\n" 
     446                "B       loc_FFC3D1B8\n" 
     447        "loc_FFC3D188:\n" 
     448                "B       loc_FFC3D1A0\n" 
     449        "loc_FFC3D18C:\n" 
     450                "B       loc_FFC3D1A0\n" 
     451        "loc_FFC3D190:\n" 
     452                "B       loc_FFC3D1A0\n" 
     453        "loc_FFC3D194:\n" 
     454                "B       loc_FFC3D1A0\n" 
     455        "loc_FFC3D198:\n" 
     456                "B       loc_FFC3D298\n" 
     457        "loc_FFC3D19C:\n" 
     458                "B       loc_FFC3D1A0\n" 
     459        "loc_FFC3D1A0:\n" 
     460                "MOV     R2, #0\n" 
     461                "MOV     R1, #0x200\n" 
     462                "MOV     R0, #3\n" 
     463                "BL      sub_FFC52BD4\n" 
     464                "MOVS    R4, R0\n" 
     465                "BNE     loc_FFC3D1C0\n" 
     466        "loc_FFC3D1B8:\n" 
    306467                "MOV     R0, #0\n" 
    307                 "MOV     R1, #1\n" 
    308                 "BL      sub_FFC0BC34\n" 
    309                 "STR     R0, [R4,#8]\n" 
    310                 "BL      sub_FFC4C9A8\n" 
    311                 "BL      sub_FFC4DB7C\n" 
    312                 "BL      sub_FFC4BABC\n" 
    313                 "BL      sub_FFC48AAC_my\n"     // divert this for ShootSeqTask 
    314                 "BL      sub_FFC4CC68\n" 
    315                 "LDR     R0, [R4,#4]\n" 
    316                 "LDMFD   SP!, {R4,LR}\n" 
    317                 "MOV     R1, #0x1000\n" 
    318                 "B       sub_FFC173C8\n" 
    319         ); 
    320 }; //#fe 
    321  
    322 void __attribute__((naked,noinline)) sub_FFC48AAC_my() { //#fs 
    323         asm volatile ( 
    324                 "STMFD   SP!, {R4,LR}\n" 
    325                 "LDR     R4, =0x5270\n" 
    326                 "LDR     R0, [R4,#8]\n" 
    327                 "CMP     R0, #0\n" 
    328                 "BNE     loc_FFC48B18\n" 
    329                 //"BL      nullsub_29\n" 
    330                 "MOV     R1, #1\n" 
    331                 "MOV     R0, #0\n" 
    332                 "BL      sub_FFC0BC34\n" 
    333                 "STR     R0, [R4,#0xC]\n" 
    334                 "MOV     R0, #0\n" 
     468                "LDMFD   SP!, {R4-R8,PC}\n" 
     469        "loc_FFC3D1C0:\n" 
     470                "LDR     R12, [R7,#0x4C]\n" 
     471                "MOV     R3, R4\n" 
     472                "MOV     R2, #1\n" 
    335473                "MOV     R1, #0\n" 
    336                 "BL      sub_FFC0BC10\n" 
    337                 "STR     R0, [R4,#0x10]\n" 
    338                 "BL      sub_FFC48DA4\n" 
    339                 "BL      sub_FFC492F4\n"   // continue here for task_ShootSeqTask (this is nonsense. We just need CaptSeqTask) 
    340                 "MOV     R0, #0\n" 
    341                 "STR     R0, [R4,#0x8]\n" 
    342                 "ADD     R0, R4, #0x14\n" 
    343                 "MOV     R1, #0\n" 
    344                 "STR     R1, [R0],#4\n" 
    345                 "STR     R1, [R0]\n" 
    346                 "BL      sub_FFC49494\n" 
    347                 "BL      sub_FFC4CE14\n" 
    348                 "BL      sub_FFC4B48C\n" 
    349                 "BL      sub_FFC49DC0_my\n"     // continue here for task_CaptSeqTask 
    350                 "BL      sub_FFC4AFD4\n" 
    351         "loc_FFC48B18:\n" 
     474                "MOV     R0, R8\n" 
     475                 
     476                //"BLX     R12\n"               // !! Workaround !! 
     477                "MOV     LR, PC\n"              // gcc won't compile "BLX R12" nor "BL R12". 
     478                "MOV     PC, R12\n"             // workaround: make your own "BL" and hope we don't need the change to thumb-mode 
     479                 
     480                "CMP     R0, #1\n" 
     481                "BNE     loc_FFC3D1EC\n" 
     482                "MOV     R0, #3\n" 
     483                "BL      sub_FFC52D14\n" 
     484                "B       loc_FFC3D1B8\n" 
     485         
     486       "loc_FFC3D1EC:\n" 
     487                "MOV     R0, R8\n" 
     488                "BL      sub_FFCFB2F0\n"                // Add FAT32 autodetect-code after this line 
     489                "MOV   R1, R4\n"                //  pointer to MBR in R1 
     490                "BL    mbr_read_dryos\n"                //  total sectors count in R0 before and after call 
     491                 
     492                // Start of DataGhost's FAT32 autodetection code 
     493                // Policy: If there is a partition which has type W95 FAT32, use the first one of those for image storage 
     494                // According to the code below, we can use R1, R2, R3 and R12. 
     495                // LR wasn't really used anywhere but for storing a part of the partition signature. This is the only thing 
     496                // that won't work with an offset, but since we can load from LR+offset into LR, we can use this to do that :) 
     497                "MOV     R12, R4\n"              // Copy the MBR start address so we have something to work with 
     498                "MOV     LR, R4\n"               // Save old offset for MBR signature 
     499                "MOV     R1, #1\n"               // Note the current partition number 
     500                "B       dg_sd_fat32_enter\n"    // We actually need to check the first partition as well, no increments yet! 
     501        "dg_sd_fat32:\n"                          
     502                "CMP     R1, #4\n"               // Did we already see the 4th partition? 
     503                "BEQ     dg_sd_fat32_end\n"      // Yes, break. We didn't find anything, so don't change anything. 
     504                "ADD     R12, R12, #0x10\n"      // Second partition 
     505                "ADD     R1, R1, #1\n"           // Second partition for the loop 
     506        "dg_sd_fat32_enter:\n"                    
     507                "LDRB    R2, [R12, #0x1BE]\n"    // Partition status 
     508                "LDRB    R3, [R12, #0x1C2]\n"    // Partition type (FAT32 = 0xB) 
     509                "CMP     R3, #0xB\n"             // Is this a FAT32 partition? 
     510                "CMPNE   R3, #0xC\n"             // Not 0xB, is it 0xC (FAT32 LBA) then? 
     511                "BNE     dg_sd_fat32\n"          // No, it isn't. 
     512                "CMP     R2, #0x00\n"            // It is, check the validity of the partition type 
     513                "CMPNE   R2, #0x80\n"             
     514                "BNE     dg_sd_fat32\n"          // Invalid, go to next partition 
     515                                                 // This partition is valid, it's the first one, bingo! 
     516                "MOV     R4, R12\n"              // Move the new MBR offset for the partition detection. 
     517                 
     518           "dg_sd_fat32_end:\n" 
     519                // End of DataGhost's FAT32 autodetection code                 
     520                 
     521                "LDRB    R1, [R4,#0x1C9]\n"             // Continue with firmware 
     522                "LDRB    R3, [R4,#0x1C8]\n" 
     523                "LDRB    R12, [R4,#0x1CC]\n" 
     524                "MOV     R1, R1,LSL#24\n" 
     525                "ORR     R1, R1, R3,LSL#16\n" 
     526                "LDRB    R3, [R4,#0x1C7]\n" 
     527                "LDRB    R2, [R4,#0x1BE]\n" 
     528                //"LDRB    LR, [R4,#0x1FF]\n"           // replaced, see below 
     529                "ORR     R1, R1, R3,LSL#8\n" 
     530                "LDRB    R3, [R4,#0x1C6]\n" 
     531                "CMP     R2, #0\n" 
     532                "CMPNE   R2, #0x80\n" 
     533                "ORR     R1, R1, R3\n" 
     534                "LDRB    R3, [R4,#0x1CD]\n" 
     535                "MOV     R3, R3,LSL#24\n" 
     536                "ORR     R3, R3, R12,LSL#16\n" 
     537                "LDRB    R12, [R4,#0x1CB]\n" 
     538                "ORR     R3, R3, R12,LSL#8\n" 
     539                "LDRB    R12, [R4,#0x1CA]\n" 
     540                "ORR     R3, R3, R12\n" 
     541                //"LDRB    R12, [R4,#0x1FE]\n"          // replaced, see below 
     542                 
     543                "LDRB    R12, [LR,#0x1FE]\n"            // New! First MBR signature byte (0x55) 
     544                "LDRB    LR, [LR,#0x1FF]\n"             //      Last MBR signature byte (0xAA) 
     545 
     546                "MOV     R4, #0\n" 
     547                "BNE     loc_FFC3D274\n" 
     548                "CMP     R0, R1\n" 
     549                "BCC     loc_FFC3D274\n" 
     550                "ADD     R2, R1, R3\n" 
     551                "CMP     R2, R0\n" 
     552                "CMPLS   R12, #0x55\n" 
     553                "CMPEQ   LR, #0xAA\n" 
     554                "MOVEQ   R6, R1\n" 
     555                "MOVEQ   R5, R3\n" 
     556                "MOVEQ   R4, #1\n" 
     557        "loc_FFC3D274:\n" 
     558                "MOV     R0, #3\n" 
     559                "BL      sub_FFC52D14\n" 
     560                "CMP     R4, #0\n" 
     561                "BNE     loc_FFC3D2AC\n" 
     562                "MOV     R6, #0\n" 
     563                "MOV     R0, R8\n" 
     564                "BL      sub_FFCFB2F0\n" 
     565                "MOV     R5, R0\n" 
     566                "B       loc_FFC3D2AC\n" 
     567        "loc_FFC3D298:\n" 
     568                "MOV     R5, #0x40\n" 
     569                "B       loc_FFC3D2AC\n" 
     570        "loc_FFC3D2A0:\n"         
     571                "MOV     R1, #0x374\n" 
     572                "LDR     R0, =0xFFC3D148\n"             // Mounter.c 
     573                "BL      sub_FFC0BDB8\n"                // DebugAssert 
     574        "loc_FFC3D2AC:\n" 
     575                "STR     R6, [R7,#0x44]!\n" 
    352576                "MOV     R0, #1\n" 
    353                 "STR     R0, [R4,#4]\n" 
    354                 "LDMFD   SP!, {R4,PC}\n" 
    355         ); 
    356 }; //#fe 
    357 //UP! 
    358 void __attribute__((naked,noinline)) sub_FFC49DC0_my() { //#fs  // CreateTask_CaptSeqTask 
    359         asm volatile ( 
    360                 "STMFD   SP!, {R3-R5,LR}\n" 
    361                 "LDR     R2, =0x18320\n" 
    362                 "MOV     R0, #0\n" 
    363                 "MOV     R1, #0\n" 
    364         "loc_FFC49DD0:\n" 
    365                 "ADD     R3, R2, R0,LSL#4\n" 
    366                 "ADD     R0, R0, #1\n" 
    367                 "CMP     R0, #5\n" 
    368                 "STR     R1, [R3,#8]\n" 
    369                 "BCC     loc_FFC49DD0\n" 
    370                 "BL      sub_FFD0E290\n" 
    371                 "BL      sub_FFD0FE68\n" 
    372                 "MOV     R1, #5\n" 
    373                 "MOV     R0, #0\n" 
    374                 "BL      sub_FFC0BBEC\n" 
    375                 "LDR     R4, =0x52A8\n" 
    376                 "LDR     R1, =0x1001FF\n" 
    377                 "STR     R0, [R4,#8]\n" 
    378                 "MOV     R0, #0\n" 
    379                 "BL      sub_FFC0BC10\n" 
    380                 "STR     R0, [R4,#4]\n" 
    381                 "MOV     R0, #0\n" 
    382                 "MOV     R1, #1\n" 
    383                 "BL      sub_FFC0BC34\n" 
    384                 "STR     R0, [R4,$0xC]\n" 
    385                 "MOV     R3, #0\n" 
    386                 //"STR     R3, [SP,#0x10+var_10]\n" 
    387                 "STR     R3, [SP]\n" 
    388                 //"LDR     R3, =0xFFC49B38\n"           // task_CaptSeqTask 
    389                 "LDR     R3, =task_CaptSeqTask_my\n"            // task_CaptSeqTask 
    390                 "LDR     R0, =0xFFC49EF4\n"             // aCaptseqtask ; "CaptSeqTask" 
    391                 "MOV     R2, #0x1000\n" 
    392                 "MOV     R1, #0x17\n" 
    393                 "BL      sub_FFC0BBB8\n"                // uKernelMiscCreateTask o. CreateTaskStrict 
    394                 "LDMFD   SP!, {R3-R5,PC}\n" 
    395         ".ltorg\n" 
    396         ); 
    397 }; //#fe 
    398  
     577                "STR     R5, [R7,#4]\n" 
     578                "LDMFD   SP!, {R4-R8,PC}\n" 
     579        ); 
     580}; //#fe 
  • trunk/platform/a580/sub/101b/capt_seq.c

    r1136 r1308  
    99void __attribute__((naked,noinline)) sub_FFD0F3B8_my(){ 
    1010 asm volatile( 
    11                  "STMFD   SP!, {R0-R10,LR}\n" 
    12                  "MOV     R6, #0\n" 
    13                  "MOV     R4, R0\n" 
    14                  "BL      sub_FFD0FEB8\n" 
    15                  "MVN     R1, #0\n" // "MOV     R1, 0xFFFFFFFF\n" 
    16                  "BL      sub_FFC173FC\n" 
    17                  "MOV     R2, #4\n" 
    18                  "ADD     R1, SP, #8\n" 
    19                  "MOV     R0, #0x8A\n" 
    20                  "BL      sub_FFC5819C\n" 
    21                  "TST     R0, #1\n" 
    22                  "MOVNE   R1, #0x218\n" 
    23                  "LDRNE   R0, =0xFFD0F5CC\n" 
    24                  "BLNE    sub_FFC0BDB8\n" 
    25                  "LDR     R8, =0x18440\n" 
    26                  "LDR     R5, =0x18394\n" 
    27                  "LDRSH   R1, [R8,#0xE]\n" 
    28                  "LDR     R0, [R5,#0x74]\n" 
    29                  "BL      sub_FFCCD36C\n" 
    30                  "BL      sub_FFC339C8\n" 
    31                  "LDR     R2, =0x8454\n" 
    32                  "ADD     R3, R4, #0x8C\n" 
    33                  "STRH    R0, [R4,#0x88]\n" 
    34                  "STRD    R2, [SP]\n" 
    35                  "MOV     R1, R0\n" 
    36                  "LDRH    R0, [R5,#0x4C]\n" 
    37                  "LDRSH   R2, [R8,#0xC]\n" 
    38                  "LDR     R3, =0x8450\n" 
    39                  "BL      sub_FFD103A4\n" 
    40                  "BL      wait_until_remote_button_is_released\n" 
    41                  "BL      capt_seq_hook_set_nr\n" 
    42                  "B       sub_FFD0F42C\n" 
     11                "STMFD   SP!, {R0-R10,LR}\n" 
     12                "MOV     R6, #0\n" 
     13                "MOV     R4, R0\n" 
     14                "BL      sub_FFD0FEB8\n" 
     15                "MVN     R1, #0\n"              // "MOVL     R1, 0xFFFFFFFF" 
     16                "BL      sub_FFC173FC\n" 
     17                "MOV     R2, #4\n" 
     18                "ADD     R1, SP, #8\n" 
     19                "MOV     R0, #0x8A\n" 
     20                "BL      sub_FFC5819C\n" 
     21                "TST     R0, #1\n" 
     22                "MOVNE   R1, #0x218\n" 
     23                "LDRNE   R0, =0xFFD0F5CC\n" 
     24                "BLNE    sub_FFC0BDB8\n" 
     25                "LDR     R8, =0x18440\n" 
     26                "LDR     R5, =0x18394\n" 
     27                "LDRSH   R1, [R8,#0xE]\n" 
     28                "LDR     R0, [R5,#0x74]\n" 
     29                "BL      sub_FFCCD36C\n" 
     30                "BL      sub_FFC339C8\n" 
     31                "LDR     R2, =0x8454\n" 
     32                "ADD     R3, R4, #0x8C\n" 
     33                "STRH    R0, [R4,#0x88]\n" 
     34                "STR     R2, [SP]\n"            // Corrected! from STRD    R2, [SP] 
     35                "STR     R3, [SP,#4]\n"         // Added! (als in a720) 
     36                "MOV     R1, R0\n" 
     37                "LDRH    R0, [R5,#0x4C]\n" 
     38                "LDRSH   R2, [R8,#0xC]\n" 
     39                "LDR     R3, =0x8450\n" 
     40                "BL      sub_FFD103A4\n" 
     41                "BL      wait_until_remote_button_is_released\n" 
     42                "BL      capt_seq_hook_set_nr\n" 
     43                "B       sub_FFD0F42C\n" 
    4344 ); 
    4445} 
    45 ///UP 
     46 
    4647 
    4748void __attribute__((naked,noinline)) task_CaptSeqTask_my() //#fs 
    4849{ 
    4950        asm volatile ( 
    50 "                STMFD   SP!, {R3-R7,LR}\n" 
    51 "                LDR     R6, =0x52A8\n" 
     51                "STMFD   SP!, {R3-R7,LR}\n" 
     52                "LDR     R6, =0x52A8\n" 
     53 
    5254"loc_FFC49B40:\n" 
    53 "                LDR     R0, [R6,#8]\n" 
    54 "                MOV     R2, #0\n" 
    55 "                MOV     R1, SP\n" 
    56 "                BL      sub_FFC1764C\n" 
    57 "                TST     R0, #1\n" 
    58 "                BEQ     loc_FFC49B6C\n" 
    59 "                LDR     R1, =0x48E\n" 
    60 "                LDR     R0, =0xFFC49860\n" 
    61 "                BL      sub_FFC0BDB8\n" // assert 
    62 "                BL      sub_FFC0BB70\n" //exit 
    63 "                LDMFD   SP!, {R3-R7,PC}\n" 
     55                "LDR     R0, [R6,#8]\n" 
     56                "MOV     R2, #0\n" 
     57                "MOV     R1, SP\n" 
     58                "BL      sub_FFC1764C\n" 
     59                "TST     R0, #1\n" 
     60                "BEQ     loc_FFC49B6C\n" 
     61                "LDR     R1, =0x48E\n" 
     62                "LDR     R0, =0xFFC49860\n"             // aSsshoottask_c 
     63                "BL      sub_FFC0BDB8\n"                // DebugAssert 
     64                "BL      sub_FFC0BB70\n"                // ExitTask 
     65                "LDMFD   SP!, {R3-R7,PC}\n" 
     66 
    6467"loc_FFC49B6C:\n" 
    65 "                LDR     R0, [SP]\n" 
    66 "                LDR     R1, [R0]\n" 
    67  
    68                 ///????????????????? 
    69                 "LDR     R2, =0x1850\n"         // DEBUG: Save jumptable-target ... 
    70                 "STR     R1, [R2]\n"            // ...to some unused space. Read and displayed in GUI in core/gui.c 
    71                 //?????????????????? 
    72  
    73 "                CMP     R1, #0x19\n" 
    74 "                ADDLS   PC, PC, R1,LSL#2\n" 
    75 "                B       loc_FFC49D80\n" 
    76 "                B       loc_FFC49BE8\n" 
    77 "                B       loc_FFC49BF0\n" 
    78 "                B       loc_FFC49C70\n" 
    79 "                B       loc_FFC49C84\n" 
    80 "                B       loc_FFC49C7C\n" 
    81 "                B       loc_FFC49C8C\n" 
    82 "                B       loc_FFC49C94\n" 
    83 "                B       loc_FFC49CA0\n" 
    84 "                B       loc_FFC49CF8\n" 
    85 "                B       loc_FFC49C84\n" 
    86 "                B       loc_FFC49D00\n" 
    87 "                B       loc_FFC49D08\n" 
    88 "                B       loc_FFC49D10\n" 
    89 "                B       loc_FFC49D18\n" 
    90 "                B       loc_FFC49D20\n" 
    91 "                B       loc_FFC49D2C\n" 
    92 "                B       loc_FFC49D34\n" 
    93 "                B       loc_FFC49D3C\n" 
    94 "                B       loc_FFC49D44\n" 
    95 "                B       loc_FFC49D50\n" 
    96 "                B       loc_FFC49D58\n" 
    97 "                B       loc_FFC49D60\n" 
    98 "                B       loc_FFC49D68\n" 
    99 "                B       loc_FFC49D70\n" 
    100 "                B       loc_FFC49D78\n" 
    101 "                B       loc_FFC49D8C\n" 
     68                "LDR     R0, [SP]\n" 
     69                "LDR     R1, [R0]\n" 
     70 
     71                //"LDR     R2, =0x1850\n"         // What? DEBUG: Save jumptable-target ... 
     72                //"STR     R1, [R2]\n"            // What? ...to some unused space. Read and displayed in GUI in core/gui.c 
     73 
     74                "CMP     R1, #0x19\n" 
     75                "ADDLS   PC, PC, R1,LSL#2\n" 
     76                "B       loc_FFC49D80\n" 
     77 
     78                "B       loc_FFC49BE8\n" 
     79                "B       loc_FFC49BF0\n" 
     80                "B       loc_FFC49C70\n" 
     81                "B       loc_FFC49C84\n" 
     82                "B       loc_FFC49C7C\n" 
     83                "B       loc_FFC49C8C\n" 
     84                "B       loc_FFC49C94\n" 
     85                "B       loc_FFC49CA0\n" 
     86                "B       loc_FFC49CF8\n" 
     87                "B       loc_FFC49C84\n" 
     88                "B       loc_FFC49D00\n" 
     89                "B       loc_FFC49D08\n" 
     90                "B       loc_FFC49D10\n" 
     91                "B       loc_FFC49D18\n" 
     92                "B       loc_FFC49D20\n" 
     93                "B       loc_FFC49D2C\n" 
     94                "B       loc_FFC49D34\n" 
     95                "B       loc_FFC49D3C\n" 
     96                "B       loc_FFC49D44\n" 
     97                "B       loc_FFC49D50\n" 
     98                "B       loc_FFC49D58\n" 
     99                "B       loc_FFC49D60\n" 
     100                "B       loc_FFC49D68\n" 
     101                "B       loc_FFC49D70\n" 
     102                "B       loc_FFC49D78\n" 
     103                "B       loc_FFC49D8C\n" 
    102104"loc_FFC49BE8:\n" 
    103 "                BL      sub_FFD0DF20\n" 
     105                "BL      sub_FFD0DF20\n" 
    104106                "BL      shooting_expo_param_override\n" 
    105 "                B       loc_FFC49C98\n" 
     107                "B       loc_FFC49C98\n" 
    106108"loc_FFC49BF0:\n" 
    107 "                LDR     R4, [R0,#0xC]\n" 
    108 "                LDR     R0, [R4,#8]\n" 
    109 "                ORR     R0, R0, #1\n" 
    110 "                STR     R0, [R4,#8]\n" 
    111 "                BL      sub_FFD0DF10\n" 
    112 "                MOV     R0, R4\n" 
    113 "                BL      sub_FFD0E2F8\n" 
    114 "                TST     R0, #1\n" 
    115 "                MOVNE   R2, R4\n" 
    116 "                MOVNE   R1, #1\n" 
    117 "                BNE     loc_FFC49CF0\n" 
    118 "                BL      sub_FFD2D318\n" 
    119 "                BL      sub_FFC5832C\n" 
    120 "                STR     R0, [R4,#0x14]\n" 
    121 "                MOV     R0, R4\n" 
    122 "                BL      sub_FFD0F2F0\n" 
    123 "                BL      sub_FFD0FD54\n" 
    124 "                MOV     R0, R4\n" 
    125 //"                BL      sub_FFD0F3B8\n" 
    126                 "BL      sub_FFD0F3B8_my\n"         //--------------> 
    127                 "BL      capt_seq_hook_raw_here\n"  //--------------> 
    128 "                MOV     R5, R0\n" 
    129 "                BL      sub_FFD10D34\n" 
    130 "                BL      sub_FFD10D70\n" 
    131 "                MOV     R2, R4\n" 
    132 "                MOV     R1, #1\n" 
    133 "                MOV     R0, R5\n" 
    134 "                BL      sub_FFC4831C\n" 
    135 "                BL      sub_FFD0F768\n" 
    136 "                CMP     R0, #0\n" 
    137 "                LDRNE   R0, [R4,#8]\n" 
    138 "                ORRNE   R0, R0, #0x2000\n" 
    139 "                STRNE   R0, [R4,#8]\n" 
    140 "                B       loc_FFC49D8C\n" 
     109                "LDR     R4, [R0,#0xC]\n" 
     110                "LDR     R0, [R4,#8]\n" 
     111                "ORR     R0, R0, #1\n" 
     112                "STR     R0, [R4,#8]\n" 
     113                "BL      sub_FFD0DF10\n" 
     114                "MOV     R0, R4\n" 
     115                "BL      sub_FFD0E2F8\n" 
     116                "TST     R0, #1\n" 
     117                "MOVNE   R2, R4\n" 
     118                "MOVNE   R1, #1\n" 
     119                "BNE     loc_FFC49CF0\n" 
     120                "BL      sub_FFD2D318\n" 
     121                "BL      sub_FFC5832C\n" 
     122                "STR     R0, [R4,#0x14]\n" 
     123                "MOV     R0, R4\n" 
     124                "BL      sub_FFD0F2F0\n" 
     125                "BL      sub_FFD0FD54\n" 
     126                "MOV     R0, R4\n" 
     127                "BL      sub_FFD0F3B8_my\n"             //--------------> 
     128                "BL      capt_seq_hook_raw_here\n"              //--------------> 
     129                "MOV     R5, R0\n" 
     130                "BL      sub_FFD10D34\n" 
     131                "BL      sub_FFD10D70\n" 
     132                "MOV     R2, R4\n" 
     133                "MOV     R1, #1\n" 
     134                "MOV     R0, R5\n" 
     135                "BL      sub_FFC4831C\n" 
     136                "BL      sub_FFD0F768\n" 
     137                "CMP     R0, #0\n" 
     138                "LDRNE   R0, [R4,#8]\n" 
     139                "ORRNE   R0, R0, #0x2000\n" 
     140                "STRNE   R0, [R4,#8]\n" 
     141                "B       loc_FFC49D8C\n" 
    141142"loc_FFC49C70:\n" 
    142 "                MOV     R0, #1\n" 
    143 "                BL      sub_FFD0E0B4\n" 
    144 "                B       loc_FFC49D8C\n" 
     143                "MOV     R0, #1\n" 
     144                "BL      sub_FFD0E0B4\n" 
     145                "B       loc_FFC49D8C\n" 
    145146"loc_FFC49C7C:\n" 
    146 "                BL      sub_FFD0DB80\n" 
    147 "                B       loc_FFC49D8C\n" 
     147                "BL      sub_FFD0DB80\n" 
     148                "B       loc_FFC49D8C\n" 
    148149"loc_FFC49C84:\n" 
    149 "                BL      sub_FFD0DF00\n" 
    150 "                B       loc_FFC49D8C\n" 
     150                "BL      sub_FFD0DF00\n" 
     151                "B       loc_FFC49D8C\n" 
    151152"loc_FFC49C8C:\n" 
    152 "                BL      sub_FFD0DF08\n" 
    153 "                B       loc_FFC49D8C\n" 
     153                "BL      sub_FFD0DF08\n" 
     154                "B       loc_FFC49D8C\n" 
    154155"loc_FFC49C94:\n" 
    155 "                BL      sub_FFD0DFD4\n" 
     156                "BL      sub_FFD0DFD4\n" 
    156157"loc_FFC49C98:\n" 
    157 "                BL      sub_FFC47F9C\n" 
    158 "                B       loc_FFC49D8C\n" 
     158                "BL      sub_FFC47F9C\n" 
     159                "B       loc_FFC49D8C\n" 
    159160"loc_FFC49CA0:\n" 
    160 "                LDR     R4, [R0,#0xC]\n" 
    161 "                BL      sub_FFD0DF10\n" 
    162 "                MOV     R0, R4\n" 
    163 "                BL      sub_FFD0E678\n" 
    164 "                TST     R0, #1\n" 
    165 "                MOV     R5, R0\n" 
    166 "                BNE     loc_FFC49CE0\n" 
    167 "                BL      sub_FFC5832C\n" 
    168 "                STR     R0, [R4,#0x14]\n" 
    169 "                MOV     R0, R4\n" 
    170 "                BL      sub_FFD0F2F0\n" 
    171 "                MOV     R0, R4\n" 
    172 "                BL      sub_FFD0F7C8\n" 
    173 "                MOV     R5, R0\n" 
    174 "                LDR     R0, [R4,#0x14]\n" 
    175 "                BL      sub_FFC58538\n" 
     161                "LDR     R4, [R0,#0xC]\n" 
     162                "BL      sub_FFD0DF10\n" 
     163                "MOV     R0, R4\n" 
     164                "BL      sub_FFD0E678\n" 
     165                "TST     R0, #1\n" 
     166                "MOV     R5, R0\n" 
     167                "BNE     loc_FFC49CE0\n" 
     168                "BL      sub_FFC5832C\n" 
     169                "STR     R0, [R4,#0x14]\n" 
     170                "MOV     R0, R4\n" 
     171                "BL      sub_FFD0F2F0\n" 
     172                "MOV     R0, R4\n" 
     173                "BL      sub_FFD0F7C8\n" 
     174                "MOV     R5, R0\n" 
     175                "LDR     R0, [R4,#0x14]\n" 
     176                "BL      sub_FFC58538\n" 
    176177"loc_FFC49CE0:\n" 
    177 "                BL      sub_FFD0DF00\n" 
    178 "                MOV     R2, R4\n" 
    179 "                MOV     R1, #9\n" 
    180 "                MOV     R0, R5\n" 
     178                "BL      sub_FFD0DF00\n" 
     179                "MOV     R2, R4\n" 
     180                "MOV     R1, #9\n" 
     181                "MOV     R0, R5\n" 
    181182"loc_FFC49CF0:\n" 
    182 "                BL      sub_FFC4831C\n" 
    183 "                B       loc_FFC49D8C\n" 
     183                "BL      sub_FFC4831C\n" 
     184                "B       loc_FFC49D8C\n" 
    184185"loc_FFC49CF8:\n" 
    185 "                BL      sub_FFD0E034\n" 
    186 "                B       loc_FFC49C98\n" 
     186                "BL      sub_FFD0E034\n" 
     187                "B       loc_FFC49C98\n" 
    187188"loc_FFC49D00:\n" 
    188 "                BL      sub_FFD0E8F4\n" 
    189 "                B       loc_FFC49D8C\n" 
     189                "BL      sub_FFD0E8F4\n" 
     190                "B       loc_FFC49D8C\n" 
    190191"loc_FFC49D08:\n" 
    191 "                BL      sub_FFD0EADC\n" 
    192 "                B       loc_FFC49D8C\n" 
     192                "BL      sub_FFD0EADC\n" 
     193                "B       loc_FFC49D8C\n" 
    193194"loc_FFC49D10:\n" 
    194 "                BL      sub_FFD0EB6C\n" 
    195 "                B       loc_FFC49D8C\n" 
     195                "BL      sub_FFD0EB6C\n" 
     196                "B       loc_FFC49D8C\n" 
    196197"loc_FFC49D18:\n" 
    197 "                BL      sub_FFD0EC20\n" 
    198 "                B       loc_FFC49D8C\n" 
     198                "BL      sub_FFD0EC20\n" 
     199                "B       loc_FFC49D8C\n" 
    199200"loc_FFC49D20:\n" 
    200 "                MOV     R0, #0\n" 
    201 "                BL      sub_FFD0EDC4\n" 
    202 "                B       loc_FFC49D8C\n" 
     201                "MOV     R0, #0\n" 
     202                "BL      sub_FFD0EDC4\n" 
     203                "B       loc_FFC49D8C\n" 
    203204"loc_FFC49D2C:\n" 
    204 "                BL      sub_FFD0EF14\n" 
    205 "                B       loc_FFC49D8C\n" 
     205                "BL      sub_FFD0EF14\n" 
     206                "B       loc_FFC49D8C\n" 
    206207"loc_FFC49D34:\n" 
    207 "                BL      sub_FFD0EFA8\n" 
    208 "                B       loc_FFC49D8C\n" 
     208                "BL      sub_FFD0EFA8\n" 
     209                "B       loc_FFC49D8C\n" 
    209210"loc_FFC49D3C:\n" 
    210 "                BL      sub_FFD0F070\n" 
    211 "                B       loc_FFC49D8C\n" 
     211                "BL      sub_FFD0F070\n" 
     212                "B       loc_FFC49D8C\n" 
    212213"loc_FFC49D44:\n" 
    213 "                BL      sub_FFD0E1D0\n" 
    214 "                BL      sub_FFC149BC\n" 
    215 "                B       loc_FFC49D8C\n" 
     214                "BL      sub_FFD0E1D0\n" 
     215                "BL      sub_FFC149BC\n" 
     216                "B       loc_FFC49D8C\n" 
    216217"loc_FFC49D50:\n" 
    217 "                BL      sub_FFD0ECDC\n" 
    218 "                B       loc_FFC49D8C\n" 
     218                "BL      sub_FFD0ECDC\n" 
     219                "B       loc_FFC49D8C\n" 
    219220"loc_FFC49D58:\n" 
    220 "                BL      sub_FFD0ED20\n" 
    221 "                B       loc_FFC49D8C\n" 
     221                "BL      sub_FFD0ED20\n" 
     222                "B       loc_FFC49D8C\n" 
    222223"loc_FFC49D60:\n" 
    223 "                BL      sub_FFD10D18\n" 
    224 "                B       loc_FFC49D8C\n" 
     224                "BL      sub_FFD10D18\n" 
     225                "B       loc_FFC49D8C\n" 
    225226"loc_FFC49D68:\n" 
    226 "                BL      sub_FFD10D34\n" 
    227 "                B       loc_FFC49D8C\n" 
     227                "BL      sub_FFD10D34\n" 
     228                "B       loc_FFC49D8C\n" 
    228229"loc_FFC49D70:\n" 
    229 "                BL      sub_FFD10D44\n" 
    230 "                B       loc_FFC49D8C\n" 
     230                "BL      sub_FFD10D44\n" 
     231                "B       loc_FFC49D8C\n" 
    231232"loc_FFC49D78:\n" 
    232 "                BL      sub_FFD10D70\n" 
    233 "                B       loc_FFC49D8C\n" 
     233                "BL      sub_FFD10D70\n" 
     234                "B       loc_FFC49D8C\n" 
    234235"loc_FFC49D80:\n" 
    235 "                LDR     R1, =0x58E\n" 
    236 "                LDR     R0, =0xFFC49860\n" 
    237 "                BL      sub_FFC0BDB8\n" // assert 
     236                "LDR     R1, =0x58E\n" 
     237                "LDR     R0, =0xFFC49860\n" 
     238                "BL      sub_FFC0BDB8\n"                // DebugAssert 
    238239"loc_FFC49D8C:\n" 
    239 "                LDR     R0, [SP]\n" 
    240 "                LDR     R1, [R0,#4]\n" 
    241 "                LDR     R0, [R6,#4]\n" 
    242 "                BL      sub_FFC173C8\n" 
    243 "                LDR     R4, [SP]\n" 
    244 "                LDR     R0, [R4,#8]\n" 
    245 "                CMP     R0, #0\n" 
    246 "                LDREQ   R1, =0x10D\n" 
    247 "                LDREQ   R0, =0xFFC49860\n" 
    248 "                BLEQ    sub_FFC0BDB8\n" // assert 
    249 "                MOV     R0, #0\n" 
    250 "                STR     R0, [R4,#8]\n" 
    251 "                B       loc_FFC49B40\n" 
     240                "LDR     R0, [SP]\n" 
     241                "LDR     R1, [R0,#4]\n" 
     242                "LDR     R0, [R6,#4]\n" 
     243                "BL      sub_FFC173C8\n" 
     244                "LDR     R4, [SP]\n" 
     245                "LDR     R0, [R4,#8]\n" 
     246                "CMP     R0, #0\n" 
     247                "LDREQ   R1, =0x10D\n" 
     248                "LDREQ   R0, =0xFFC49860\n" 
     249                "BLEQ    sub_FFC0BDB8\n"                // DebugAssert 
     250                "MOV     R0, #0\n" 
     251                "STR     R0, [R4,#8]\n" 
     252                "B       loc_FFC49B40\n" 
    252253    ); 
    253254} //#fe 
    254255 
     256void __attribute__((naked,noinline)) exp_drv_task(){ 
     257 asm volatile( 
     258                "STMFD   SP!, {R4-R8,LR}\n" 
     259                "SUB     SP, SP, #0x20\n" 
     260                "LDR     R8, =0xBB8\n" 
     261                "LDR     R7, =0x649C\n" 
     262                "LDR     R5, =0x3C0F0\n" 
     263                "MOV     R0, #0\n" 
     264                "ADD     R6, SP, #0x10\n" 
     265                "STR     R0, [SP,#0xC]\n" 
     266"loc_FFC911B4:\n" 
     267                "LDR     R0, [R7,#0x20]\n" 
     268                "MOV     R2, #0\n" 
     269                "ADD     R1, SP, #0x1C\n" 
     270                "BL      sub_FFC1764C\n" 
     271                "LDR     R0, [SP,#0xC]\n" 
     272                "CMP     R0, #1\n" 
     273                "BNE     loc_FFC911FC\n" 
     274                "LDR     R0, [SP,#0x1C]\n" 
     275                "LDR     R0, [R0]\n" 
     276                "CMP     R0, #0x13\n" 
     277                "CMPNE   R0, #0x14\n" 
     278                "CMPNE   R0, #0x15\n" 
     279                "BEQ     loc_FFC91318\n" 
     280                "CMP     R0, #0x27\n" 
     281                "BEQ     loc_FFC912F0\n" 
     282                "ADD     R1, SP, #0xC\n" 
     283                "MOV     R0, #0\n" 
     284                "BL      sub_FFC91144\n" 
     285"loc_FFC911FC:\n" 
     286                "LDR     R0, [SP,#0x1C]\n" 
     287                "LDR     R1, [R0]\n" 
     288                "CMP     R1, #0x2C\n" 
     289                "BNE     loc_FFC9122C\n" 
     290                "LDR     R0, [SP,#0x1C]\n" 
     291                "BL      sub_FFC923F8\n" 
     292                "LDR     R0, [R7,#0x1C]\n" 
     293                "MOV     R1, #1\n" 
     294                "BL      sub_FFC173C8\n" 
     295                "BL      sub_FFC0BB70\n"                // ExitTask 
     296                "ADD     SP, SP, #0x20\n" 
     297                "LDMFD   SP!, {R4-R8,PC}\n" 
     298"loc_FFC9122C:\n" 
     299                "CMP     R1, #0x2B\n" 
     300                "BNE     loc_FFC91248\n" 
     301                "LDR     R2, [R0,#0x88]!\n" 
     302                "LDR     R1, [R0,#4]\n" 
     303                "MOV     R0, R1\n" 
     304                "BLX     R2\n" 
     305                "B       loc_FFC9177C\n" 
     306"loc_FFC91248:\n" 
     307                "CMP     R1, #0x25\n" 
     308                "BNE     loc_FFC91298\n" 
     309                "LDR     R0, [R7,#0x1C]\n" 
     310                "MOV     R1, #0x80\n" 
     311                "BL      sub_FFC173FC\n" 
     312                "LDR     R0, =0xFFC8DC38\n" 
     313                "MOV     R1, #0x80\n" 
     314                "BL      sub_FFD05880\n" 
     315                "LDR     R0, [R7,#0x1C]\n" 
     316                "MOV     R2, R8\n" 
     317                "MOV     R1, #0x80\n" 
     318                "BL      sub_FFC17300\n" 
     319                "TST     R0, #1\n" 
     320                "LDRNE   R1, =0xD1B\n" 
     321                "BNE     loc_FFC912DC\n" 
     322"loc_FFC91284:\n" 
     323                "LDR     R1, [SP,#0x1C]\n" 
     324                "LDR     R0, [R1,#0x8C]\n" 
     325                "LDR     R1, [R1,#0x88]\n" 
     326                "BLX     R1\n" 
     327                "B       loc_FFC9177C\n" 
     328"loc_FFC91298:\n" 
     329                "CMP     R1, #0x26\n" 
     330                "BNE     loc_FFC912E8\n" 
     331                "ADD     R1, SP, #0xC\n" 
     332                "BL      sub_FFC91144\n" 
     333                "LDR     R0, [R7,#0x1C]\n" 
     334                "MOV     R1, #0x100\n" 
     335                "BL      sub_FFC173FC\n" 
     336                "LDR     R0, =0xFFC8DC48\n" 
     337                "MOV     R1, #0x100\n" 
     338                "BL      sub_FFD05B08\n" 
     339                "LDR     R0, [R7,#0x1C]\n" 
     340                "MOV     R2, R8\n" 
     341                "MOV     R1, #0x100\n" 
     342                "BL      sub_FFC17300\n" 
     343                "TST     R0, #1\n" 
     344                "BEQ     loc_FFC91284\n" 
     345                "LDR     R1, =0xD25\n" 
     346"loc_FFC912DC:\n" 
     347                "LDR     R0, =0xFFC8E338\n"             // aExpdrv_c 
     348                "BL      sub_FFC0BDB8\n"                // DebugAssert 
     349                "B       loc_FFC91284\n" 
     350"loc_FFC912E8:\n" 
     351                "CMP     R1, #0x27\n" 
     352                "BNE     loc_FFC91300\n" 
     353"loc_FFC912F0:\n" 
     354                "LDR     R0, [SP,#0x1C]\n" 
     355                "ADD     R1, SP, #0xC\n" 
     356                "BL      sub_FFC91144\n" 
     357                "B       loc_FFC91284\n" 
     358"loc_FFC91300:\n" 
     359                "CMP     R1, #0x2A\n" 
     360                "BNE     loc_FFC91318\n" 
     361                "BL      sub_FFC70F80\n" 
     362                "BL      sub_FFC71D4C\n" 
     363                "BL      sub_FFC717D0\n" 
     364                "B       loc_FFC91284\n" 
     365"loc_FFC91318:\n" 
     366                "LDR     R0, [SP,#0x1C]\n" 
     367                "MOV     R4, #1\n" 
     368                "LDR     R1, [R0]\n" 
     369                "CMP     R1, #0x11\n" 
     370                "CMPNE   R1, #0x12\n" 
     371                "BNE     loc_FFC91388\n" 
     372                "LDR     R1, [R0,#0x7C]\n" 
     373                "ADD     R1, R1, R1,LSL#1\n" 
     374                "ADD     R1, R0, R1,LSL#2\n" 
     375                "SUB     R1, R1, #8\n" 
     376                "LDMIA   R1, {R2-R4}\n" 
     377                "STMIA   R6, {R2-R4}\n" 
     378                "BL      sub_FFC8FCC4\n" 
     379                "LDR     R0, [SP,#0x1C]\n" 
     380                "LDR     R1, [R0,#0x7C]\n" 
     381                "LDR     R3, [R0,#0x88]\n" 
     382                "LDR     R2, [R0,#0x8C]\n" 
     383                "ADD     R0, R0, #4\n" 
     384                "BLX     R3\n" 
     385                "LDR     R0, [SP,#0x1C]\n" 
     386                "BL      sub_FFC927D0\n" 
     387                "LDR     R0, [SP,#0x1C]\n" 
     388                "LDR     R1, [R0,#0x7C]\n" 
     389                "LDR     R3, [R0,#0x90]\n" 
     390                "LDR     R2, [R0,#0x94]\n" 
     391                "ADD     R0, R0, #4\n" 
     392                "BLX     R3\n" 
     393                "B       loc_FFC916BC\n" 
     394"loc_FFC91388:\n" 
     395                "CMP     R1, #0x13\n" 
     396                "CMPNE   R1, #0x14\n" 
     397                "CMPNE   R1, #0x15\n" 
     398                "BNE     loc_FFC9143C\n" 
     399                "ADD     R3, SP, #0xC\n" 
     400                "MOV     R2, SP\n" 
     401                "ADD     R1, SP, #0x10\n" 
     402                "BL      sub_FFC8FF0C\n" 
     403                "CMP     R0, #1\n" 
     404                "MOV     R4, R0\n" 
     405                "CMPNE   R4, #5\n" 
     406                "BNE     loc_FFC913D8\n" 
     407                "LDR     R0, [SP,#0x1C]\n" 
     408                "MOV     R2, R4\n" 
     409                "LDR     R1, [R0,#0x7C]\n" 
     410                "LDR     R12, [R0,#0xC]\n" 
     411                "LDR     R3, [R0,#4]\n" 
     412                "MOV     R0, SP\n" 
     413                "BLX     R12\n" 
     414                "B       loc_FFC91410\n" 
     415"loc_FFC913D8:\n" 
     416                "LDR     R0, [SP,#0x1C]\n" 
     417                "CMP     R4, #2\n" 
     418                "LDR     R3, [R0,#0x8C]\n" 
     419                "CMPNE   R4, #6\n" 
     420                "BNE     loc_FFC91424\n" 
     421                "LDR     R12, [R0,#0x88]\n" 
     422                "MOV     R0, SP\n" 
     423                "MOV     R2, R4\n" 
     424                "MOV     R1, #1\n" 
     425                "BLX     R12\n" 
     426                "LDR     R0, [SP,#0x1C]\n" 
     427                "MOV     R2, SP\n" 
     428                "ADD     R1, SP, #0x10\n" 
     429                "BL      sub_FFC90E90\n" 
     430"loc_FFC91410:\n" 
     431                "LDR     R0, [SP,#0x1C]\n" 
     432                "LDR     R2, [SP,#0xC]\n" 
     433                "MOV     R1, R4\n" 
     434                "BL      sub_FFC910E4\n" 
     435                "B       loc_FFC916BC\n" 
     436"loc_FFC91424:\n" 
     437                "LDR     R1, [R0,#0x7C]\n" 
     438                "LDR     R12, [R0,#0x88]\n" 
     439                "ADD     R0, R0, #4\n" 
     440                "MOV     R2, R4\n" 
     441                "BLX     R12\n" 
     442                "B       loc_FFC916BC\n" 
     443"loc_FFC9143C:\n" 
     444                "CMP     R1, #0x21\n" 
     445                "CMPNE   R1, #0x22\n" 
     446                "BNE     loc_FFC91488\n" 
     447                "LDR     R1, [R0,#0x7C]\n" 
     448                "ADD     R1, R1, R1,LSL#1\n" 
     449                "ADD     R1, R0, R1,LSL#2\n" 
     450                "SUB     R1, R1, #8\n" 
     451                "LDMIA   R1, {R2-R4}\n" 
     452                "STMIA   R6, {R2-R4}\n" 
     453                "BL      sub_FFC8F250\n" 
     454                "LDR     R0, [SP,#0x1C]\n" 
     455                "LDR     R1, [R0,#0x7C]\n" 
     456                "LDR     R3, [R0,#0x88]\n" 
     457                "LDR     R2, [R0,#0x8C]\n" 
     458                "ADD     R0, R0, #4\n" 
     459                "BLX     R3\n" 
     460                "LDR     R0, [SP,#0x1C]\n" 
     461                "BL      sub_FFC8F540\n" 
     462                "B       loc_FFC916BC\n" 
     463"loc_FFC91488:\n" 
     464                "ADD     R1, R0, #4\n" 
     465                "LDMIA   R1, {R2,R3,R12}\n" 
     466                "STMIA   R6, {R2,R3,R12}\n" 
     467                "LDR     R1, [R0]\n" 
     468                "CMP     R1, #0x24\n" 
     469                "ADDLS   PC, PC, R1,LSL#2\n" 
     470                "B       loc_FFC9169C\n" 
     471"loc_FFC914A4:\n" 
     472                "B       loc_FFC91538\n" 
     473"loc_FFC914A8:\n" 
     474                "B       loc_FFC91538\n" 
     475"loc_FFC914AC:\n" 
     476                "B       loc_FFC91540\n" 
     477"loc_FFC914B0:\n" 
     478                "B       loc_FFC91548\n" 
     479"loc_FFC914B4:\n" 
     480                "B       loc_FFC91548\n" 
     481"loc_FFC914B8:\n" 
     482                "B       loc_FFC91548\n" 
     483"loc_FFC914BC:\n" 
     484                "B       loc_FFC91538\n" 
     485"loc_FFC914C0:\n" 
     486                "B       loc_FFC91540\n" 
     487"loc_FFC914C4:\n" 
     488                "B       loc_FFC91548\n" 
     489"loc_FFC914C8:\n" 
     490                "B       loc_FFC91548\n" 
     491"loc_FFC914CC:\n" 
     492                "B       loc_FFC915A4\n" 
     493"loc_FFC914D0:\n" 
     494                "B       loc_FFC915A4\n" 
     495"loc_FFC914D4:\n" 
     496                "B       loc_FFC91690\n" 
     497"loc_FFC914D8:\n" 
     498                "B       loc_FFC91698\n" 
     499"loc_FFC914DC:\n" 
     500                "B       loc_FFC91698\n" 
     501"loc_FFC914E0:\n" 
     502                "B       loc_FFC91698\n" 
     503"loc_FFC914E4:\n" 
     504                "B       loc_FFC91698\n" 
     505"loc_FFC914E8:\n" 
     506                "B       loc_FFC9169C\n" 
     507"loc_FFC914EC:\n" 
     508                "B       loc_FFC9169C\n" 
     509"loc_FFC914F0:\n" 
     510                "B       loc_FFC9169C\n" 
     511"loc_FFC914F4:\n" 
     512                "B       loc_FFC9169C\n" 
     513"loc_FFC914F8:\n" 
     514                "B       loc_FFC9169C\n" 
     515"loc_FFC914FC:\n" 
     516                "B       loc_FFC91550\n" 
     517"loc_FFC91500:\n" 
     518                "B       loc_FFC91558\n" 
     519"loc_FFC91504:\n" 
     520                "B       loc_FFC91558\n" 
     521"loc_FFC91508:\n" 
     522                "B       loc_FFC915B0\n" 
     523"loc_FFC9150C:\n" 
     524                "B       loc_FFC915B0\n" 
     525"loc_FFC91510:\n" 
     526                "B       loc_FFC915B8\n" 
     527"loc_FFC91514:\n" 
     528                "B       loc_FFC915E8\n" 
     529"loc_FFC91518:\n" 
     530                "B       loc_FFC91618\n" 
     531"loc_FFC9151C:\n" 
     532                "B       loc_FFC91648\n" 
     533"loc_FFC91520:\n" 
     534                "B       loc_FFC91678\n" 
     535"loc_FFC91524:\n" 
     536                "B       loc_FFC91678\n" 
     537"loc_FFC91528:\n" 
     538                "B       loc_FFC9169C\n" 
     539"loc_FFC9152C:\n" 
     540                "B       loc_FFC9169C\n" 
     541"loc_FFC91530:\n" 
     542                "B       loc_FFC91680\n" 
     543"loc_FFC91534:\n" 
     544                "B       loc_FFC91688\n" 
     545"loc_FFC91538:\n" 
     546                "BL      sub_FFC8E120\n" 
     547                "B       loc_FFC9169C\n" 
     548"loc_FFC91540:\n" 
     549                "BL      sub_FFC8E3B0\n" 
     550                "B       loc_FFC9169C\n" 
     551"loc_FFC91548:\n" 
     552                "BL      sub_FFC8E5B4\n" 
     553                "B       loc_FFC9169C\n" 
     554"loc_FFC91550:\n" 
     555                "BL      sub_FFC8E81C\n" 
     556                "B       loc_FFC9169C\n" 
     557"loc_FFC91558:\n" 
     558                "BL      sub_FFC8EA10\n" 
     559                "B       loc_FFC9169C\n" 
     560//"dword_FFC91560  DCD 0xB1D \n" 
     561//"dword_FFC91564  DCD 0xBAD \n" 
     562//"dword_FFC91568  DCD 0xC24 \n" 
     563//"dword_FFC9156C  DCD 0xC32 \n" 
     564//"dword_FFC91570  DCD 0xC7B \n" 
     565//"dword_FFC91574  DCD 0x808 \n" 
     566//"dword_FFC91578  DCD 0xC8E \n" 
     567//"dword_FFC9157C  DCD 0xC94 \n" 
     568//"dword_FFC91580  DCD 0xCE8 \n" 
     569//"dword_FFC91584  DCD 0xD0E \n" 
     570//"dword_FFC91588  DCD 0xD11 \n" 
     571//"off_FFC9158C    DCD 0xFFC8DC58 \n" 
     572//"dword_FFC91590  DCD 0xD42 \n" 
     573//"dword_FFC91594  DCD 0x3C0F0 \n" 
     574//"dword_FFC91598  DCD 0xD1B \n" 
     575//"off_FFC9159C    DCD 0xFFC8DC48 \n" 
     576//"dword_FFC915A0  DCD 0xD25 \n" 
     577"loc_FFC915A4:\n" 
     578                "BL      sub_FFC8EC78_my\n"             //------------> 
     579                "MOV     R4, #0\n" 
     580                "B       loc_FFC9169C\n" 
     581"loc_FFC915B0:\n" 
     582                "BL      sub_FFC8EDB4\n" 
     583                "B       loc_FFC9169C\n" 
     584"loc_FFC915B8:\n" 
     585                "LDRH    R1, [R0,#4]\n" 
     586                "STRH    R1, [SP,#0x10]\n" 
     587                "LDRH    R1, [R5,#2]\n" 
     588                "STRH    R1, [SP,#0x12]\n" 
     589                "LDRH    R1, [R5,#4]\n" 
     590                "STRH    R1, [SP,#0x14]\n" 
     591                "LDRH    R1, [R5,#6]\n" 
     592                "STRH    R1, [SP,#0x16]\n" 
     593                "LDRH    R1, [R0,#0xC]\n" 
     594                "STRH    R1, [SP,#0x18]\n" 
     595                "BL      sub_FFC9246C\n" 
     596                "B       loc_FFC9169C\n" 
     597"loc_FFC915E8:\n" 
     598                "LDRH    R1, [R0,#4]\n" 
     599                "STRH    R1, [SP,#0x10]\n" 
     600                "LDRH    R1, [R5,#2]\n" 
     601                "STRH    R1, [SP,#0x12]\n" 
     602                "LDRH    R1, [R5,#4]\n" 
     603                "STRH    R1, [SP,#0x14]\n" 
     604                "LDRH    R1, [R5,#6]\n" 
     605                "STRH    R1, [SP,#0x16]\n" 
     606                "LDRH    R1, [R5,#8]\n" 
     607                "STRH    R1, [SP,#0x18]\n" 
     608                "BL      sub_FFC925EC\n" 
     609                "B       loc_FFC9169C\n" 
     610"loc_FFC91618:\n" 
     611                "LDRH    R1, [R5]\n" 
     612                "STRH    R1, [SP,#0x10]\n" 
     613                "LDRH    R1, [R0,#6]\n" 
     614                "STRH    R1, [SP,#0x12]\n" 
     615                "LDRH    R1, [R5,#4]\n" 
     616                "STRH    R1, [SP,#0x14]\n" 
     617                "LDRH    R1, [R5,#6]\n" 
     618                "STRH    R1, [SP,#0x16]\n" 
     619                "LDRH    R1, [R5,#8]\n" 
     620                "STRH    R1, [SP,#0x18]\n" 
     621                "BL      sub_FFC92698\n" 
     622                "B       loc_FFC9169C\n" 
     623"loc_FFC91648:\n" 
     624                "LDRH    R1, [R5]\n" 
     625                "STRH    R1, [SP,#0x10]\n" 
     626                "LDRH    R1, [R5,#2]\n" 
     627                "STRH    R1, [SP,#0x12]\n" 
     628                "LDRH    R1, [R5,#4]\n" 
     629                "STRH    R1, [SP,#0x14]\n" 
     630                "LDRH    R1, [R5,#6]\n" 
     631                "STRH    R1, [SP,#0x16]\n" 
     632                "LDRH    R1, [R0,#0xC]\n" 
     633                "STRH    R1, [SP,#0x18]\n" 
     634                "BL      sub_FFC92738\n" 
     635                "B       loc_FFC9169C\n" 
     636"loc_FFC91678:\n" 
     637                "BL      sub_FFC8F028\n" 
     638                "B       loc_FFC9169C\n" 
     639"loc_FFC91680:\n" 
     640                "BL      sub_FFC8F644\n" 
     641                "B       loc_FFC9169C\n" 
     642"loc_FFC91688:\n" 
     643                "BL      sub_FFC8F87C\n" 
     644                "B       loc_FFC9169C\n" 
     645"loc_FFC91690:\n" 
     646                "BL      sub_FFC8F9F4\n" 
     647                "B       loc_FFC9169C\n" 
     648"loc_FFC91698:\n" 
     649                "BL      sub_FFC8FB8C\n" 
     650"loc_FFC9169C:\n" 
     651                "LDR     R0, [SP,#0x1C]\n" 
     652                "LDR     R1, [R0,#0x7C]\n" 
     653                "LDR     R3, [R0,#0x88]\n" 
     654                "LDR     R2, [R0,#0x8C]\n" 
     655                "ADD     R0, R0, #4\n" 
     656                "BLX     R3\n" 
     657                "CMP     R4, #1\n" 
     658                "BNE     loc_FFC91704\n" 
     659"loc_FFC916BC:\n" 
     660                "LDR     R0, [SP,#0x1C]\n" 
     661                "MOV     R2, #0xC\n" 
     662                "LDR     R1, [R0,#0x7C]\n" 
     663                "ADD     R1, R1, R1,LSL#1\n" 
     664                "ADD     R0, R0, R1,LSL#2\n" 
     665                "SUB     R4, R0, #8\n" 
     666                "LDR     R0, =0x3C0F0\n" 
     667                "ADD     R1, SP, #0x10\n" 
     668                "BL      sub_FFE58B0C\n" 
     669                "LDR     R0, =0x3C0FC\n" 
     670                "MOV     R2, #0xC\n" 
     671                "ADD     R1, SP, #0x10\n" 
     672                "BL      sub_FFE58B0C\n" 
     673                "LDR     R0, =0x3C108\n" 
     674                "MOV     R2, #0xC\n" 
     675                "MOV     R1, R4\n" 
     676                "BL      sub_FFE58B0C\n" 
     677                "B       loc_FFC9177C\n" 
     678"loc_FFC91704:\n" 
     679                "LDR     R0, [SP,#0x1C]\n" 
     680                "LDR     R0, [R0]\n" 
     681                "CMP     R0, #0xB\n" 
     682                "BNE     loc_FFC9174C\n" 
     683                "MOV     R3, #0\n" 
     684                "STR     R3, [SP]\n" 
     685                "MOV     R3, #1\n" 
     686                "MOV     R2, #1\n" 
     687                "MOV     R1, #1\n" 
     688                "MOV     R0, #0\n" 
     689                "BL      sub_FFC8DF28\n" 
     690                "MOV     R3, #0\n" 
     691                "STR     R3, [SP]\n" 
     692                "MOV     R3, #1\n" 
     693                "MOV     R2, #1\n" 
     694                "MOV     R1, #1\n" 
     695                "MOV     R0, #0\n" 
     696                "B       loc_FFC91778\n" 
     697"loc_FFC9174C:\n" 
     698                "MOV     R3, #1\n" 
     699                "MOV     R2, #1\n" 
     700                "MOV     R1, #1\n" 
     701                "MOV     R0, #1\n" 
     702                "STR     R3, [SP]\n" 
     703                "BL      sub_FFC8DF28\n" 
     704                "MOV     R3, #1\n" 
     705                "MOV     R2, #1\n" 
     706                "MOV     R1, #1\n" 
     707                "MOV     R0, #1\n" 
     708                "STR     R3, [SP]\n" 
     709"loc_FFC91778:\n" 
     710                "BL      sub_FFC8E068\n" 
     711"loc_FFC9177C:\n" 
     712                "LDR     R0, [SP,#0x1C]\n" 
     713                "BL      sub_FFC923F8\n" 
     714                "B       loc_FFC911B4\n" 
     715    ); 
     716} 
     717 
     718void __attribute__((naked,noinline)) sub_FFC8EC78_my(){ 
     719 asm volatile( 
     720                "STMFD   SP!, {R4-R8,LR}\n" 
     721                "LDR     R7, =0x649C\n" 
     722                "MOV     R4, R0\n" 
     723                "LDR     R0, [R7,#0x1C]\n" 
     724                "MOV     R1, #0x3E\n" 
     725                "BL      sub_FFC173FC\n" 
     726                "LDRSH   R0, [R4,#4]\n" 
     727                "MOV     R2, #0\n" 
     728                "MOV     R1, #0\n" 
     729                "BL      sub_FFC8DCBC\n" 
     730                "MOV     R6, R0\n" 
     731                "LDRSH   R0, [R4,#6]\n" 
     732                "BL      sub_FFC8DDC8\n" 
     733                "LDRSH   R0, [R4,#8]\n" 
     734                "BL      sub_FFC8DE20\n" 
     735                "LDRSH   R0, [R4,#0xA]\n" 
     736                "BL      sub_FFC8DE78\n" 
     737                "LDRSH   R0, [R4,#0xC]\n" 
     738                "BL      sub_FFC8DED0\n" 
     739                "MOV     R5, R0\n" 
     740                "LDR     R0, [R4]\n" 
     741                "LDR     R8, =0x3C108\n" 
     742                "CMP     R0, #0xB\n" 
     743                "MOVEQ   R6, #0\n" 
     744                "MOVEQ   R5, #0\n" 
     745                "BEQ     loc_FFC8ED08\n" 
     746                "CMP     R6, #1\n" 
     747                "BNE     loc_FFC8ED08\n" 
     748                "LDRSH   R0, [R4,#4]\n" 
     749                "LDR     R1, =0xFFC8DC28\n" 
     750                "MOV     R2, #2\n" 
     751                "BL      sub_FFD059D4\n" 
     752                "STRH    R0, [R4,#4]\n" 
     753                "MOV     R0, #0\n" 
     754                "STR     R0, [R7,#0x28]\n" 
     755                "B       loc_FFC8ED10\n" 
     756"loc_FFC8ED08:\n" 
     757                "LDRH    R0, [R8]\n" 
     758                "STRH    R0, [R4,#4]\n" 
     759"loc_FFC8ED10:\n" 
     760                "CMP     R5, #1\n" 
     761                "LDRNEH  R0, [R8,#8]\n" 
     762                "BNE     loc_FFC8ED2C\n" 
     763                "LDRSH   R0, [R4,#0xC]\n" 
     764                "MOV     R2, #0x20\n" 
     765                "LDR     R1, =0xFFC8DCAC\n"             // "ADR     R1, 0xFFC8DCAC\n" 
     766                "BL      sub_FFC92428\n" 
     767"loc_FFC8ED2C:\n" 
     768                "STRH    R0, [R4,#0xC]\n" 
     769                "LDRSH   R0, [R4,#6]\n" 
     770                "BL      sub_FFC70CCC_my\n"             //--------------> 
     771                "LDRSH   R0, [R4,#8]\n" 
     772                "MOV     R1, #1\n" 
     773                "BL      sub_FFC714C8\n" 
     774                "MOV     R1, #0\n" 
     775                "ADD     R0, R4, #8\n" 
     776                "BL      sub_FFC71550\n" 
     777                "LDRSH   R0, [R4,#0xE]\n" 
     778                "BL      sub_FFC84BF8\n" 
     779                "LDR     R4, =0xBB8\n" 
     780                "CMP     R6, #1\n" 
     781                "BNE     loc_FFC8ED84\n" 
     782                "LDR     R0, [R7,#0x1C]\n" 
     783                "MOV     R2, R4\n" 
     784                "MOV     R1, #2\n" 
     785                "BL      sub_FFC17300\n" 
     786                "TST     R0, #1\n" 
     787                "LDRNE   R1, =0x532\n" 
     788                "LDRNE   R0, =0xFFC8E338\n"             // aExpdrv_c 
     789                "BLNE    sub_FFC0BDB8\n"                // DebugAssert 
     790"loc_FFC8ED84:\n" 
     791                "CMP     R5, #1\n" 
     792                "LDMNEFD SP!, {R4-R8,PC}\n" 
     793                "LDR     R0, [R7,#0x1C]\n" 
     794                "MOV     R2, R4\n" 
     795                "MOV     R1, #0x20\n" 
     796                "BL      sub_FFC17300\n" 
     797                "TST     R0, #1\n" 
     798                "LDRNE   R1, =0x537\n" 
     799                "LDRNE   R0, =0xFFC8E338\n"             // aExpdrv_c 
     800                "LDMNEFD SP!, {R4-R8,LR}\n" 
     801                "BNE     sub_FFC0BDB8\n"                // DebugAssert 
     802                "LDMFD   SP!, {R4-R8,PC}\n" 
     803    ); 
     804} 
     805 
     806void __attribute__((naked,noinline)) sub_FFC70CCC_my(){ 
     807 asm volatile( 
     808                "STMFD   SP!, {R4-R6,LR}\n" 
     809                "LDR     R5, =0x5F74\n" 
     810                "MOV     R4, R0\n" 
     811                "LDR     R0, [R5,#4]\n" 
     812                "CMP     R0, #1\n" 
     813                "LDRNE   R1, =0x16D\n" 
     814                "LDRNE   R0, =0xFFC70A64\n"             // aShutter_c, "ADRNE   R0, 0xFFC70A64\n" 
     815                "BLNE    sub_FFC0BDB8\n"                // DebugAssert 
     816                "CMN     R4, #0xC00\n" 
     817                "LDREQSH R4, [R5,#2]\n" 
     818                "CMN     R4, #0xC00\n" 
     819                "LDREQ   R1, =0x173\n" 
     820                "LDREQ   R0, =0xFFC70A64\n"             // aShutter_c, "ADREQ   R0, 0xFFC70A64\n" 
     821                "STRH    R4, [R5,#2]\n" 
     822                "BLEQ    sub_FFC0BDB8\n"                // DebugAssert 
     823                "MOV     R0, R4\n" 
     824//                "BL    sub_FFD71FBC\n"                //- 
     825                "BL      apex2us\n"             //+ 
     826                "MOV     R4, R0\n" 
     827//                "BL    nullsub_67\n" 
     828                "MOV     R0, R4\n" 
     829                "BL      sub_FFCA4090\n" 
     830                "TST     R0, #1\n" 
     831                "LDMNEFD SP!, {R4-R6,LR}\n" 
     832                "MOVNE   R1, #0x178\n" 
     833                "LDRNE   R0, =0xFFC70A64\n"             // aShutter_c, "ADRNE   R0, 0xFFC70A64\n" 
     834                "BNE     sub_FFC0BDB8\n"                // DebugAssert 
     835                "LDMFD   SP!, {R4-R6,PC}\n" 
     836    ); 
     837} 
  • trunk/platform/a580/sub/101b/lib.c

    r1136 r1308  
    1818long hook_raw_size() 
    1919{ 
    20     return 0x9DCCE0; //OK 
     20    return 0x009e6fc4;          // Corrected! from 0x009dcce0 (from stubs_entry.S) 
    2121} 
    2222 
     
    3737void *vid_get_bitmap_fb() 
    3838{ 
    39     return (void*)0x10361000; //OK 0xFFCA719 
     39    return (void*)0x10361000;           // OK! 
    4040} 
    4141 
    4242void *vid_get_viewport_fb() 
    4343{ 
    44     return (void*)0x10659E80; // 0xFFE364B0 
     44    return (void*)0x10659E80;           // OK! 
    4545} 
    4646 
     
    6767char *camera_jpeg_count_str() 
    6868{ 
    69     return (char*)0x48AE0; // near a9999 
     69    return (char*)0x00048AE0;           // OK! 
    7070} 
    7171 
     
    7373 
    7474long vid_get_bitmap_buffer_height() { return 240; } 
    75  
  • trunk/platform/a580/sub/101b/makefile.inc

    r1136 r1308  
    1 #3176 
    2 PLATFORMID=12662 
     1#3177 
     2PLATFORMID=12663 
    33 
    44PLATFORMOS=dryos 
    55 
    66MEMBASEADDR=0x1900 
     7ROMBASEADDR=0xffc00000 
    78RESTARTSTART=0x63000 
     9 
    810MEMISOSTART=0xA47E0 
    9 ROMBASEADDR=0xffc00000 
    10  
    1111 
    1212PLFLAGS=-DMEMBASEADDR=$(MEMBASEADDR) -DMEMISOSTART=$(MEMISOSTART) -DMEMISOSIZE=$(MEMISOSIZE) 
     
    1515NEED_ENCODED_DISKBOOT=1 
    1616KEYSYS=d3enc 
    17  
  • trunk/platform/a580/sub/101b/movie_rec.c

    r1136 r1308  
    1 void __attribute__((naked,noinline)) sub_FFC5E380_my(){ 
     1/* 
     2void __attribute__((naked,noinline)) sub_FFC5EA24_my() { 
    23asm volatile( 
    3                  "LDR     R12, =0x201E\n" 
    4                  "STMFD   SP!, {R4,LR}\n" 
    5                  "CMP     R0, R12\n" 
    6                  "BEQ     loc_FFC5E440\n" 
    7                  "BGT     loc_FFC5E3DC\n" 
    8                  "LDR     R12, =0x2004\n" 
    9                  "CMP     R0, R12\n" 
    10                  "BEQ     loc_FFC5E448\n" 
    11                  "BGT     loc_FFC5E3C4\n" 
    12                  "SUB     R12, R0, #0x1000\n" 
    13                  "SUBS    R12, R12, #0xA9\n" 
    14                  "SUBNE   R12, R0, #0x1000\n" 
    15                  "SUBNES  R12, R12, #0xAD\n" 
    16                  "SUBNE   R12, R0, #0x1000\n" 
    17                  "SUBNES  R12, R12, #0xAF\n" 
    18                  "BNE     loc_FFC5E458\n" 
    19                  "B       loc_FFC5E440\n" 
    20  "loc_FFC5E3C4:\n" 
    21                  "SUB     R12, R0, #0x2000\n" 
    22                  "SUBS    R12, R12, #5\n" 
    23                  "SUBNE   R12, R0, #0x2000\n" 
    24                  "SUBNES  R12, R12, #0x1D\n" 
    25                  "BNE     loc_FFC5E458\n" 
    26                  "B       loc_FFC5E440\n" 
    27  "loc_FFC5E3DC:\n" 
    28                  "LDR     R12, =0x5004\n" 
    29                  "CMP     R0, R12\n" 
    30                  "BEQ     loc_FFC5E440\n" 
    31                  "BGT     loc_FFC5E408\n" 
    32                  "SUB     R12, R0, #0x3000\n" 
    33                  "SUBS    R12, R12, #0xA\n" 
    34                  "BEQ     loc_FFC5E43C\n" 
    35                  "SUB     R12, R0, #0x5000\n" 
    36                  "SUBS    R12, R12, #1\n" 
    37                  "BNE     loc_FFC5E458\n" 
    38                  "B       loc_FFC5E440\n" 
    39  "loc_FFC5E408:\n" 
    40                  "SUB     R12, R0, #0x5000\n" 
    41                  "SUBS    R12, R12, #6\n" 
    42                  "BEQ     loc_FFC5E440\n" 
    43                  "SUB     R12, R0, #0x5000\n" 
    44                  "SUBS    R12, R12, #7\n" 
    45                  "BNE     loc_FFC5E458\n" 
    46                  "BL      sub_FFC1C7EC\n" 
    47                  "LDR     R1, =0x59EC\n" 
    48                  "LDR     R0, [R1,#0x10]\n" 
    49                  "CMP     R0, #7\n" 
    50                  "LDREQ   R0, [R1,#0x18]\n" 
    51                  "BLEQ    sub_FFC5EBE0\n" 
    52                  "B       loc_FFC5E450\n" 
    53  "loc_FFC5E43C:\n" 
    54                  "BL      sub_FFC1BDA4\n" 
    55  "loc_FFC5E440:\n" 
    56                  "LDMFD   SP!, {R4,LR}\n" 
    57                  "B       sub_FFC5E1E0_my\n" //-------------> 
    58  "loc_FFC5E448:\n" 
    59                  "BL      sub_FFC5D208\n" 
    60                  "BL      sub_FFC5DC74\n" 
    61  "loc_FFC5E450:\n" 
    62                  "MOV     R0, #0\n" 
    63                  "LDMFD   SP!, {R4,PC}\n" 
    64  "loc_FFC5E458:\n" 
    65                  "MOV     R0, #1\n" 
    66                  "LDMFD   SP!, {R4,PC}\n" 
     4                "LDR     R12, =0x201E\n" 
     5                "STMFD   SP!, {R4,LR}\n" 
     6                "CMP     R0, R12\n" 
     7                "BEQ     loc_FFC5EAE4\n" 
     8                "BGT     loc_FFC5EA80\n" 
     9                "LDR     R12, =0x2004\n" 
     10                "CMP     R0, R12\n" 
     11                "BEQ     loc_FFC5EAEC\n" 
     12                "BGT     loc_FFC5EA68\n" 
     13                "SUB     R12, R0, #0x1000\n" 
     14                "SUBS    R12, R12, #0xA9\n" 
     15                "SUBNE   R12, R0, #0x1000\n" 
     16                "SUBNES  R12, R12, #0xAD\n" 
     17                "SUBNE   R12, R0, #0x1000\n" 
     18                "SUBNES  R12, R12, #0xAF\n" 
     19                "BNE     loc_FFC5EAFC\n" 
     20                "B       loc_FFC5EAE4\n" 
     21"loc_FFC5EA68:\n" 
     22                "SUB     R12, R0, #0x2000\n" 
     23                "SUBS    R12, R12, #5\n" 
     24                "SUBNE   R12, R0, #0x2000\n" 
     25                "SUBNES  R12, R12, #0x1D\n" 
     26                "BNE     loc_FFC5EAFC\n" 
     27                "B       loc_FFC5EAE4\n" 
     28"loc_FFC5EA80:\n" 
     29                "LDR     R12, =0x5004\n" 
     30                "CMP     R0, R12\n" 
     31                "BEQ     loc_FFC5EAE4\n" 
     32                "BGT     loc_FFC5EAAC\n" 
     33                "SUB     R12, R0, #0x3000\n" 
     34                "SUBS    R12, R12, #0xA\n" 
     35                "BEQ     loc_FFC5EAE0\n" 
     36                "SUB     R12, R0, #0x5000\n" 
     37                "SUBS    R12, R12, #1\n" 
     38                "BNE     loc_FFC5EAFC\n" 
     39                "B       loc_FFC5EAE4\n" 
     40"loc_FFC5EAAC:\n" 
     41                "SUB     R12, R0, #0x5000\n" 
     42                "SUBS    R12, R12, #6\n" 
     43                "BEQ     loc_FFC5EAE4\n" 
     44                "SUB     R12, R0, #0x5000\n" 
     45                "SUBS    R12, R12, #7\n" 
     46                "BNE     loc_FFC5EAFC\n" 
     47                "BL      sub_FFC1A5E8\n" 
     48                "LDR     R1, =0x5738\n" 
     49                "LDR     R0, [R1,#0x10]\n" 
     50                "CMP     R0, #7\n" 
     51                "LDREQ   R0, [R1,#0x18]\n" 
     52                "BLEQ    sub_FFC5F394\n" 
     53                "B       loc_FFC5EAF4\n" 
     54"loc_FFC5EAE0:\n" 
     55                "BL      sub_FFC19B98\n" 
     56"loc_FFC5EAE4:\n" 
     57                "LDMFD   SP!, {R4,LR}\n" 
     58                //B          sub_FFC5E884 
     59                "B       sub_FFC5E884_my\n" //-------------> 
     60"loc_FFC5EAEC:\n" 
     61                "BL      sub_FFC5D914\n" 
     62                "BL      sub_FFC5E338\n" 
     63"loc_FFC5EAF4:\n" 
     64                "MOV     R0, #0\n" 
     65                "LDMFD   SP!, {R4,PC}\n" 
     66"loc_FFC5EAFC:\n" 
     67                "MOV     R0, #1\n" 
     68                "LDMFD   SP!, {R4,PC}\n" 
     69    ); 
     70} //#fe 
     71 
     72void __attribute__((naked,noinline)) sub_FFC5E884_my(){  //#fs 
     73asm volatile( 
     74                "STMFD   SP!, {R4-R6,LR}\n" 
     75                "BL      sub_FFC5F500\n" 
     76                "CMP     R0, #1\n" 
     77                "BLEQ    sub_FFC5F5E8\n" 
     78                "LDR     R4, =0x5738\n" 
     79                "MOV     R5, #1\n" 
     80                "LDR     R0, [R4,#0x24]\n" 
     81                "CMP     R0, #0\n" 
     82                "LDRNE   R0, [R4,#0x4C]\n" 
     83                "CMPNE   R0, #0\n" 
     84                "BEQ     loc_FFC5E8F0\n" 
     85                "BL      sub_FFC5F500\n" 
     86                "CMP     R0, #1\n" 
     87                "BNE     loc_FFC5E8F0\n" 
     88                "BL      sub_FFC5F5E8\n" 
     89                "LDR     R0, [R4,#0x78]\n" 
     90                "CMP     R0, #0\n" 
     91                "BNE     loc_FFC5E8F0\n" 
     92                "LDR     R1, =0xFFC5EA04\n" // aAcStartupshowi ; "AC:StartupShowInfo" 
     93                "MOV     R0, #0x20\n" 
     94                "BL      sub_FFC5556C\n" 
     95                "BL      sub_FFD70AF0\n" 
     96                "BL      sub_FFD70A80\n" 
     97                "MOV     R1, #0\n" 
     98                "MOV     R0, #0x51\n" 
     99                "BL      sub_FFC6695C\n" 
     100                "STR     R5, [R4,#0x78]\n" 
     101"loc_FFC5E8F0:\n" 
     102                "BL      sub_FFC5F500\n" 
     103                "CMP     R0, #1\n" 
     104                "BNE     loc_FFC5E93C\n" 
     105                "LDR     R0, [R4,#0x44]\n" 
     106                "CMP     R0, #0\n" 
     107                "BEQ     loc_FFC5E93C\n" 
     108                "LDR     R0, [R4,#0x74]\n" 
     109                "CMP     R0, #0\n" 
     110                "BNE     loc_FFC5E93C\n" 
     111                "LDR     R1, =0xFFC5EA18\n" // aAcDispshot ; "AC:DispShot" 
     112                "MOV     R0, #0x20\n" 
     113                "BL      sub_FFC5556C\n" 
     114                "MOV     R1, #0\n" 
     115                "MOV     R0, #0x8C\n" 
     116                "BL      sub_FFC6695C\n" 
     117                "BL      sub_FFC64D10\n" 
     118                "MOV     R0, #0x21\n" 
     119                "BL      sub_FFC6699C\n" 
     120                "STR     R5, [R4,#0x74]\n" 
     121"loc_FFC5E93C:\n" 
     122                "LDR     R0, [R4,#0x38]\n" 
     123                "CMP     R0, #0\n" 
     124                "LDRNE   R0, [R4,#0x3C]\n" 
     125                "CMPNE   R0, #0\n" 
     126                "LDRNE   R0, [R4,#0x44]\n" 
     127                "CMPNE   R0, #0\n" 
     128                "LDRNE   R0, [R4,#0x48]\n" 
     129                "CMPNE   R0, #0\n" 
     130                "LDRNE   R0, [R4,#0x1C]\n" 
     131                "LDRNE   R1, [R4,#0x20]\n" 
     132                "ORRNES  R0, R0, R1\n" 
     133                "BEQ     loc_FFC5E978\n" 
     134                "BL      sub_FFC5E1D8\n" 
     135                "BL      sub_FFC5E338\n" 
     136                "B       loc_FFC5E9A0\n" 
     137"loc_FFC5E978:\n" 
     138                "LDR     R0, [R4,#0x58]\n" 
     139                "CMP     R0, #0\n" 
     140                "BEQ     loc_FFC5E9A8\n" 
     141                "BL      sub_FFC5E220\n" 
     142                "CMP     R0, #1\n" 
     143                "BNE     loc_FFC5E9A8\n" 
     144                "BL      sub_FFC60B90\n" 
     145                "BL      sub_FFC60B4C\n" 
     146                "MOV     R0, #0\n" 
     147                "BL      sub_FFC5F3D0\n" 
     148"loc_FFC5E9A0:\n" 
     149                "MOV     R0, #0\n" 
     150                "LDMFD   SP!, {R4-R6,PC}\n" 
     151"loc_FFC5E9A8:\n" 
     152                "BL      sub_FFC5E220\n" 
     153                "CMP     R0, #1\n" 
     154                "BNE     loc_FFC5E9D0\n" 
     155                "LDR     R0, [R4,#0x7C]\n" 
     156                "CMP     R0, #0\n" 
     157                "BLEQ    sub_FFC5F62C_my\n" //-------------> 
     158                "MOV     R0, #0\n" 
     159                "STR     R0, [R4,#0x70]\n" 
     160                "STR     R0, [R4,#0x74]\n" 
     161                "STR     R0, [R4,#0x78]\n" 
     162"loc_FFC5E9D0:\n" 
     163                "MOV     R0, #1\n" 
     164                "LDMFD   SP!, {R4-R6,PC}\n" 
     165 ); 
     166} // #fe 
     167 
     168 
     169 
     170 
     171 
     172 
     173void __attribute__((naked,noinline)) sub_FFC5F62C_my(){ 
     174 asm volatile( 
     175               "STMFD   SP!, {R4,LR}\n" 
     176               "LDR     R1, =0xFFC5F84C\n"                              // aAcEntryrecboot ; "AC:EntryRecBoot" 
     177               "MOV     R0, #0x20\n" 
     178               "BL      sub_FFC5556C\n" 
     179               "BL      sub_FFC19DB4\n" 
     180               "BL      sub_FFC5F950\n" 
     181               "BL      sub_FFC62BE0_my\n"                              // Continue here 
     182               "MOV     R0, #1\n" 
     183               "BL      sub_FFC5DCB4\n" 
     184               "BL      sub_FFC5E15C\n" 
     185               "LDMFD   SP!, {R4,LR}\n" 
     186               "B       sub_FFC5E3CC\n" 
     187 ); 
     188} // #fe 
     189 
     190 
     191 
     192 
     193// Note: One sub_ missing from this firmware compared to A720 
     194void __attribute__((naked,noinline)) sub_FFC62BE0_my(){ 
     195 asm volatile( 
     196               "STMFD   SP!, {R4-R6,LR}\n" 
     197               "LDR     R1, =0xFFC62DEC\n" // aStartrecmode ; "StartRecMode" 
     198               "MOV     R0, #0x20\n" 
     199               "BL      sub_FFC5556C\n" 
     200               "LDR     R4, =0x59C0\n" 
     201               "MOV     R0, #6\n" 
     202               "MOV     R5, #1\n" 
     203               "STR     R0, [R4,#0x5C]\n" 
     204               "STR     R5, [R4,#0x10]\n" 
     205               "BL      sub_FFD2D98C\n" 
     206               "BL      sub_FFD33794\n" 
     207               "BL      sub_FFD3206C\n" 
     208               // One sub_ missing from this firmware compared to A720 
     209               "BL      sub_FFC63000_my\n" //-------------> 
     210               "BL      sub_FFD3B758\n" 
     211               "MOV     R0, #1\n" 
     212               "STR     R5, [R4,#0x18]\n" 
     213               "BL      sub_FFC630B0\n" 
     214               "MOV     R0, #3\n" 
     215               "STR     R0, [R4,#0x60]\n" 
     216               "LDR     R1, [R4,#0x64]\n" 
     217               "LDMFD   SP!, {R4-R6,LR}\n" 
     218               "MOV     R0, #0\n" 
     219               "BX      R1\n" 
     220 ); 
     221} //#fe          
     222 
     223 
     224 
     225 
     226 
     227 
     228 
     229void __attribute__((naked,noinline)) sub_FFC63000_my(){ 
     230 asm volatile( 
     231                "STMFD   SP!, {R4,LR}\n" 
     232                "LDR     R0, =0x855\n" 
     233                "BL      sub_FFD2A1E8\n" 
     234                "BL      sub_FFC19B98\n" 
     235                "BL      sub_FFC629A8_my\n" //-------------> 
     236                "BL      sub_FFD2D294\n" 
     237                "BL      sub_FFD1CFBC\n" 
     238                "BL      sub_FFD35574\n" 
     239                "BL      sub_FFD35990\n" 
     240                "BL      sub_FFD3ADFC\n" 
     241                "BL      sub_FFD35BAC\n" 
     242                "BL      sub_FFD35774\n" 
     243                "BL      sub_FFD33EC4\n" 
     244                "BL      sub_FFD3AA5C\n" 
     245                "BL      sub_FFC66A3C\n" // taskcreate_DSITask 
     246                "LDMFD   SP!, {R4,LR}\n" 
     247                "B       sub_FFC6686C\n" // taskcreate_FaceFrame 
     248  
     249 ); 
     250} //#fe 
     251 
     252 
     253 
     254 
     255 
     256 
     257 
     258 
     259// branches are together 
     260 
     261void __attribute__((naked,noinline)) sub_FFC629A8_my(){ 
     262 asm volatile( 
     263                "STMFD   SP!, {R4,LR}\n" 
     264                "LDR     R0, =0x5A28\n" 
     265                //ADR     R1, sub_FFC627A8 
     266                "LDR     R1, =sub_FFC627A8_my\n" //-------------> (branch 1) 
     267                "BL      sub_FFC671F0\n" 
     268                "LDR     R1, =0x59C0\n" 
     269                //ADR     R0, sub_FFC628D0 
     270                "LDR     R0, =sub_FFC628D0_my\n" //-------------> (branch 2) 
     271                "STR     R0, [R1,#0x64]\n" 
     272                "LDMFD   SP!, {R4,PC}\n" 
    67273 ); 
    68274} 
     
    70276 
    71277 
    72  
    73  
    74  
    75 void __attribute__((naked,noinline)) sub_FFC5E1E0_my(){ 
    76 asm volatile( 
    77                  "STMFD   SP!, {R4-R6,LR}\n" 
    78                  "BL      sub_FFC5EDD0\n" 
    79                  "CMP     R0, #1\n" 
    80                  "BLEQ    sub_FFC5EE5C\n" 
    81                  "LDR     R4, =0x59EC\n" 
    82                  "MOV     R5, #1\n" 
    83                  "LDR     R0, [R4,#0x24]\n" 
    84                  "CMP     R0, #0\n" 
    85                  "LDRNE   R0, [R4,#0x4C]\n" 
    86                  "CMPNE   R0, #0\n" 
    87                  "BEQ     loc_FFC5E24C\n" 
    88                  "BL      sub_FFC5EDD0\n" 
    89                  "CMP     R0, #1\n" 
    90                  "BNE     loc_FFC5E24C\n" 
    91                  "BL      sub_FFC5EE5C\n" 
    92                  "LDR     R0, [R4,#0x78]\n" 
    93                  "CMP     R0, #0\n" 
    94                  "BNE     loc_FFC5E24C\n" 
    95                  "LDR     R1, =0xFFC5E360\n" 
    96                  "MOV     R0, #0x20\n" 
    97                  "BL      sub_FFC57EC4\n" 
    98                  "BL      sub_FFD621F8\n" 
    99                  "BL      sub_FFD62184\n" 
    100                  "MOV     R1, #0\n" 
    101                  "MOV     R0, #0x51\n" 
    102                  "BL      sub_FFC661AC\n" 
    103                  "STR     R5, [R4,#0x78]\n" 
    104  "loc_FFC5E24C:\n" 
    105                  "BL      sub_FFC5EDD0\n" 
    106                  "CMP     R0, #1\n" 
    107                  "BNE     loc_FFC5E298\n" 
    108                  "LDR     R0, [R4,#0x44]\n" 
    109                  "CMP     R0, #0\n" 
    110                  "BEQ     loc_FFC5E298\n" 
    111                  "LDR     R0, [R4,#0x74]\n" 
    112                  "CMP     R0, #0\n" 
    113                  "BNE     loc_FFC5E298\n" 
    114                  "LDR     R1, =0xFFC5E374\n" 
    115                  "MOV     R0, #0x20\n" 
    116                  "BL      sub_FFC57EC4\n" 
    117                  "MOV     R1, #0\n" 
    118                  "MOV     R0, #0x8C\n" 
    119                  "BL      sub_FFC661AC\n" 
    120                  "BL      sub_FFC64550\n" 
    121                  "MOV     R0, #0x21\n" 
    122                  "BL      sub_FFC661EC\n" 
    123                  "STR     R5, [R4,#0x74]\n" 
    124  "loc_FFC5E298:\n" 
    125                  "LDR     R0, [R4,#0x38]\n" 
    126                  "CMP     R0, #0\n" 
    127                  "LDRNE   R0, [R4,#0x3C]\n" 
    128                  "CMPNE   R0, #0\n" 
    129                  "LDRNE   R0, [R4,#0x44]\n" 
    130                  "CMPNE   R0, #0\n" 
    131                  "LDRNE   R0, [R4,#0x48]\n" 
    132                  "CMPNE   R0, #0\n" 
    133                  "LDRNE   R0, [R4,#0x1C]\n" 
    134                  "LDRNE   R1, [R4,#0x20]\n" 
    135                  "ORRNES  R0, R0, R1\n" 
    136                  "BEQ     loc_FFC5E2D4\n" 
    137                  "BL      sub_FFC5DB14\n" 
    138                  "BL      sub_FFC5DC74\n" 
    139                  "B       loc_FFC5E2FC\n" 
    140  "loc_FFC5E2D4:\n" 
    141                  "LDR     R0, [R4,#0x58]\n" 
    142                  "CMP     R0, #0\n" 
    143                  "BEQ     loc_FFC5E304\n" 
    144                  "BL      sub_FFC5DB5C\n" 
    145                  "CMP     R0, #1\n" 
    146                  "BNE     loc_FFC5E304\n" 
    147                  "BL      sub_FFC6039C\n" 
    148                  "BL      sub_FFC60358\n" 
    149                  "BL      sub_FFC15EF0\n" 
    150                  "BL      sub_FFC5D664\n" 
    151  "loc_FFC5E2FC:\n" 
    152                  "MOV     R0, #0\n" 
    153                  "LDMFD   SP!, {R4-R6,PC}\n" 
    154  "loc_FFC5E304:\n" 
    155                  "BL      sub_FFC5DB5C\n" 
    156                  "CMP     R0, #1\n" 
    157                  "BNE     loc_FFC5E32C\n" 
    158                  "LDR     R0, [R4,#0x7C]\n" 
    159                  "CMP     R0, #0\n" 
    160                  "BLEQ    sub_FFC5EEA0_my\n" //-------------> 
    161                  "MOV     R0, #0\n" 
    162                  "STR     R0, [R4,#0x70]\n" 
    163                  "STR     R0, [R4,#0x74]\n" 
    164                  "STR     R0, [R4,#0x78]\n" 
    165  "loc_FFC5E32C:\n" 
    166                  "MOV     R0, #1\n" 
    167                  "LDMFD   SP!, {R4-R6,PC}\n" 
    168 ); 
    169 } 
    170  
    171  
    172  
    173  
    174  
    175  
    176 void __attribute__((naked,noinline)) sub_FFC5EEA0_my(){  
    177  asm volatile( 
    178                 "STMFD   SP!, {R4,LR}\n" 
    179                 "LDR     R1, =0xFFC5EF48\n" 
     278//branch 1 
     279 
     280void __attribute__((naked,noinline)) sub_FFC627A8_my(){ 
     281 asm volatile( 
     282                "STMFD   SP!, {R3-R5,LR}\n" 
     283                "LDR     R4, =0x59C0\n" 
     284                "LDR     R0, [R4,#0x3C]\n" 
     285                "CMP     R0, #0\n" 
     286                "BLEQ    sub_FFD1BD20\n" 
     287                "LDR     R0, [R4,#0x30]\n" 
     288                "CMP     R0, #1\n" 
     289                "BNE     loc_FFC627E8\n" 
     290                "LDR     R1, =0xFFC628B0\n" // a__preparecaptu ; "__PrepareCaptureModeChange__" 
    180291                "MOV     R0, #0x20\n" 
    181                 "BL      sub_FFC57EC4\n" 
    182                 "BL      sub_FFC1BFB8\n" 
    183                 "BL      sub_FFC5F208\n" 
    184                 "BL      sub_FFC6226C_my\n" //-------------> 
    185                 "MOV     R0, #1\n" 
    186                 "BL      sub_FFC5D5B0\n" 
    187                 "BL      sub_FFC5DA98\n" 
    188                 "LDMFD   SP!, {R4,LR}\n" 
    189                 "B       sub_FFC5DD0C\n" 
    190  ); 
    191 }  
    192  
    193  
    194  
    195  
    196  
    197 void __attribute__((naked,noinline)) sub_FFC6226C_my(){  
    198  asm volatile( 
    199                 "STMFD   SP!, {R4-R6,LR}\n" 
    200                 "LDR     R1, =0xFFC62460\n" 
    201                 "MOV     R0, #0x20\n" 
    202                 "BL      sub_FFC57EC4\n" 
    203                 "LDR     R4, =0x5C6C\n" 
    204                 "MOV     R0, #6\n" 
    205                 "MOV     R5, #1\n" 
    206                 "STR     R0, [R4,#0x5C]\n" 
    207                 "STR     R5, [R4,#0x10]\n" 
    208                 "BL      sub_FFD1DE70\n" 
    209                 "BL      sub_FFD2CECC\n" 
    210                 "BL      sub_FFD2472C\n" 
    211                 "BL      sub_FFD22580\n" 
    212                 "BL      sub_FFC627E4_my\n"  //-------------> 
    213                 "BL      sub_FFD2D800\n" 
    214                 "BL      sub_FFD2CD74\n" 
    215                 "MOV     R0, #1\n" 
    216                 "STR     R5, [R4,#0x18]\n" 
    217                 "BL      sub_FFC628BC\n" 
    218                 "MOV     R0, #3\n" 
    219                 "STR     R0, [R4,#0x68]\n" 
    220                 "LDR     R1, [R4,#0x6C]\n" 
    221                 "LDMFD   SP!, {R4-R6,LR}\n" 
    222                 "MOV     R0, #0\n" 
    223                 "BX      R1\n" 
    224  ); 
    225 }  
    226  
    227  
    228  
    229  
    230  
    231 void __attribute__((naked,noinline)) sub_FFC627E4_my(){  
    232  asm volatile( 
    233                 "STMFD   SP!, {R4,LR}\n" 
    234                 "MOV     R0, #1\n" 
    235                 "BL      sub_FFD25000\n" 
    236                 "LDR     R0, =0x855\n" 
    237                 "BL      sub_FFD19A30\n" 
    238                 "BL      sub_FFC1BDA4\n" 
    239                 "BL      sub_FFC62044_my\n"  //--------------> 
    240                 "BL      sub_FFD1D768\n" 
    241                 "BL      sub_FFD178B0\n" 
    242                 "BL      sub_FFD25434\n" 
    243                 "BL      sub_FFD25A10\n" 
    244                 "BL      sub_FFD25C00\n" 
    245                 "BL      sub_FFD2D25C\n" 
    246                 "BL      sub_FFD2CA4C\n" 
    247                 "BL      sub_FFD2560C\n" 
    248                 "BL      sub_FFD2C498\n" 
    249                 "BL      sub_FFD24E60\n" 
    250                 "BL      sub_FFD2BCD0\n" 
    251                 "BL      sub_FFD2333C\n" 
    252                 "BL      sub_FFC66320\n" 
    253                 "LDMFD   SP!, {R4,LR}\n" 
    254                 "B       sub_FFC65FE8\n" 
    255  ); 
    256 }  
    257  
    258  
    259  
    260  
    261 // branches are together 
    262  
    263 void __attribute__((naked,noinline)) sub_FFC62044_my(){  
    264  asm volatile( 
    265                 "STMFD   SP!, {R4,LR}\n" 
    266                 "LDR     R0, =0x5CDC\n" 
    267                 "LDR     R1, =sub_FFC61E1C_my\n" //-------------> 
    268                 "BL      sub_FFC67B64\n" 
    269                 "LDR     R1, =0x5C6C\n" 
    270                 "LDR     R0, =sub_FFC61F54_my\n" //-------------> 
    271                 "STR     R0, [R1,#0x6C]\n" 
    272                 "LDMFD   SP!, {R4,PC}\n" 
    273  ); 
    274 }  
    275  
    276  
    277  
    278 //branch 1 
    279  
    280 void __attribute__((naked,noinline)) sub_FFC61E1C_my(){  
    281  asm volatile( 
    282                 "STMFD   SP!, {R3-R5,LR}\n" 
    283                 "BL      sub_FFD16674\n" 
    284                 "LDR     R4, =0x5C6C\n" 
    285                 "LDR     R0, [R4,#0x30]\n" 
    286                 "CMP     R0, #1\n" 
    287                 "BNE     loc_FFC61E54\n" 
    288                 "LDR     R1, =0xFFC61F34\n" 
    289                 "MOV     R0, #0x20\n" 
    290                 "BL      sub_FFC57EC4\n" 
     292                "BL      sub_FFC5556C\n" 
    291293                "MOV     R0, #0\n" 
    292294                "STR     R0, [R4,#0x30]\n" 
    293295                "STR     R0, [R4,#0x2C]\n" 
    294                 "BL      sub_FFC61D38\n" 
     296                "BL      sub_FFC626A0\n" 
    295297                "LDMFD   SP!, {R3-R5,PC}\n" 
    296 "loc_FFC61E54:\n" 
    297                 "BL      sub_FFC16684\n" 
    298                 "LDRH    R0, [R4,#4]\n" 
    299                 "SUB     R12, R0, #0x8200\n" 
    300                 "SUBS    R12, R12, #0xA\n" 
    301                 "BNE     loc_FFC61E78\n" 
    302                 "MOV     R0, #0x24\n" 
    303                 "BL      sub_FFC661EC\n" 
    304                 "MOV     R0, #0x25\n" 
    305                 "BL      sub_FFC661EC\n" 
    306 "loc_FFC61E78:\n" 
     298"loc_FFC627E8:\n" 
     299                "BL      sub_FFC15514\n" 
    307300                "LDRH    R0, [R4,#4]\n" 
    308301                "MOV     R1, SP\n" 
    309302                "STRH    R0, [SP]\n" 
    310303                "LDR     R0, [R4,#0x5C]\n" 
    311                 "STRH    R0, [SP,#2]\n" 
     304                "STRH    R0, [SP,#0x2]\n" 
    312305                "MOV     R0, #0x40\n" 
    313                 "BL      sub_FFC661AC\n" 
     306                "BL      sub_FFC6695C\n" 
    314307                "LDR     R0, [R4,#0x1C]\n" 
    315308                "CMP     R0, #0\n" 
    316309                "LDREQH  R0, [R4,#4]\n" 
    317                 "BLEQ    sub_FFC5C900\n" 
     310                "BLEQ    sub_FFC5D030\n" // PTM_SetCurrentCaptureMode 
    318311                "LDRH    R0, [R4,#4]\n" 
    319312                "MOV     R1, #1\n" 
    320                 "BL      sub_FFC61244_my\n" //-----------> 
    321                 "LDR     R0, [R4,#0x68]\n" 
    322                 "BL      sub_FFC628BC\n" 
     313                "BL      sub_FFC61AB0_my\n" //-------------> (branches are joining here, DecideCaptureMode) 
     314                "LDR     R0, [R4,#0x60]\n" 
     315                "BL      sub_FFC630B0\n" 
    323316                "MOV     R0, #3\n" 
    324                 "STR     R0, [R4,#0x68]\n" 
    325                 "LDR     R1, [R4,#0x6C]\n" 
     317                "STR     R0, [R4,#0x60]\n" 
     318                "LDR     R1, [R4,#0x64]\n" 
    326319                "ADD     SP, SP, #4\n" 
    327320                "LDMFD   SP!, {R4,R5,LR}\n" 
     
    334327 
    335328 
     329 
     330 
     331 
     332 
     333 
     334 
     335 
    336336//branch 2 
    337337 
    338 void __attribute__((naked,noinline)) sub_FFC61F54_my(){  
     338void __attribute__((naked,noinline)) sub_FFC628D0_my(){ 
    339339 asm volatile( 
    340340                "STMFD   SP!, {R4-R6,LR}\n" 
    341                 "LDR     R4, =0x5C6C\n" 
     341                "LDR     R4, =0x59C0\n" 
    342342                "LDRH    R0, [R4,#4]\n" 
    343                 "BL      sub_FFD24964\n" 
    344                 "BL      sub_FFD22768\n" 
    345                 "BL      sub_FFD25688\n" 
    346                 "BL      sub_FFD25C80\n" 
    347              // "BL      nullsub_70\n" 
    348                 "BL      sub_FFD25048\n" 
     343                "BL      sub_FFD339CC\n" 
     344                "BL      sub_FFD3222C\n" 
     345                "BL      sub_FFD35C3C\n" 
     346                //"BL      nullsub_98\n" 
     347                "BL      sub_FFD34050\n" 
     348                "BL      sub_FFD1ECC0\n" 
    349349                "MOV     R5, #0\n" 
    350350                "MOV     R0, R5\n" 
    351351                "STR     R5, [R4,#0x24]\n" 
    352                 "BL      sub_FFC1676C\n" 
    353              // "BL      nullsub_76\n" 
     352                "BL      sub_FFC155F8\n" 
     353                "BL      sub_FFD1E38C\n" 
    354354                "STR     R5, [R4,#0x3C]\n" 
    355355                "LDRH    R0, [R4,#4]\n" 
    356356                "MOV     R1, #0\n" 
    357                 "BL      sub_FFC61244_my\n" //-----------> 
    358                 "BL      sub_FFC64550\n" 
    359                 "LDR     R0, [R4,#0x60]\n" 
    360                 "CMP     R0, #0\n" 
    361                 "STRNE   R5, [R4,#0x60]\n" 
    362                 "BLNE    sub_FFC6241C\n" 
    363                 "BL      sub_FFD23410\n" 
     357                "BL      sub_FFC61AB0_my\n" //-------------> (branches are joining here, DecideCaptureMode) 
     358                "BL      sub_FFC64D10\n" 
    364359                "LDR     R1, [R4,#0x5C]\n" 
    365360                "MOV     R0, #0x41\n" 
    366                 "BL      sub_FFC661AC\n" 
    367                 "BL      sub_FFC6241C\n" 
    368                 "BL      sub_FFD22728\n" 
    369                 "BL      sub_FFD1DFE4\n" 
    370                 "CMP     R0, #0\n" 
    371                 "BLEQ    sub_FFD2276C\n" 
    372                 "BL      sub_FFD248EC\n" 
    373                 "BL      sub_FFD164E4\n" 
    374                 "BL      sub_FFC5AC2C\n" 
     361                "BL      sub_FFC6695C\n" 
     362                "BL      sub_FFD3221C\n" 
     363                "BL      sub_FFD2DB00\n" 
     364                "CMP     R0, #0\n" 
     365                "BLEQ    sub_FFD32230\n" 
     366                "BL      sub_FFD33954\n" 
     367                "BL      sub_FFD1BB90\n" 
     368                "BL      sub_FFC5B440\n" 
    375369                "STR     R0, [R4,#0x58]\n" 
    376370                "LDR     R0, =0x8003\n" 
    377371                "STR     R5, [R4,#0x2C]\n" 
    378                 "BL      sub_FFC5CA44\n" 
     372                "BL      sub_FFC5D158\n" // PTM_GetCurrentItem 
    379373                "STRH    R0, [R4]\n" 
    380374                "LDR     R0, =0x313D\n" 
    381375                "MOV     R1, #0\n" 
    382                 "BL      sub_FFC5B69C\n" 
    383                 "BL      sub_FFC62760\n" 
     376                "BL      sub_FFC5BEC4\n" // PostLogicalEventToUI 
     377                "BL      sub_FFC62F9C\n" 
    384378                "LDR     R0, [R4,#0x30]\n" 
    385379                "CMP     R0, #1\n" 
    386380                "STREQ   R5, [R4,#0x30]\n" 
    387381                "LDMEQFD SP!, {R4-R6,LR}\n" 
    388                 "BEQ     sub_FFC61D38\n" 
     382                "BEQ     sub_FFC626A0\n" 
    389383                "LDMFD   SP!, {R4-R6,PC}\n" 
    390  ); 
    391 }  
     384  
     385 ); 
     386} //#fe 
     387 
     388 
     389 
     390 
     391 
    392392 
    393393 
     
    396396//branches are joining here 
    397397 
    398 void __attribute__((naked,noinline)) sub_FFC61244_my(){  
     398void __attribute__((naked,noinline)) sub_FFC61AB0_my(){ 
    399399 asm volatile( 
    400400                "STMFD   SP!, {R4-R6,LR}\n" 
    401                 "MOV     R5, R0\n" 
    402                 "MOV     R4, R1\n" 
    403                 "LDR     R1, =0xFFC6143C\n" 
     401                "MOV     R5, R1\n" 
     402                "MOV     R4, R0\n" 
    404403                "MOV     R0, #0x60\n" 
    405                 "BL      sub_FFC57EC4\n" 
    406                 "LDR     R6, =0x5C6C\n" 
     404                "LDR     R1, =0xFFC61D80\n" // a_decidecapture ; "_DecideCaptureMode" 
     405                "BL      sub_FFC5556C\n" 
     406                "LDR     R6, =0x59C0\n" 
    407407                "LDR     R0, [R6,#0x10]\n" 
    408408                "CMP     R0, #0\n" 
    409                 "BEQ     loc_FFC613FC\n" 
     409                "BEQ     loc_FFC61BDC\n" 
    410410                "LDR     R0, [R6,#0x18]\n" 
    411                 "LDR     R1, =0x820A\n" 
    412                 "LDR     R2, =0xFFC61458\n" 
    413                 "CMP     R0, #1\n" 
    414                 "BNE     loc_FFC612C4\n" 
    415                 "CMP     R4, #1\n" 
     411                "LDR     R2, =0x820A\n" 
     412                "LDR     R1, =0xFFFE0000\n" // aVer_011_001 
     413                "CMP     R0, #1\n" 
     414                "BNE     loc_FFC61B24\n" 
     415                "CMP     R5, #1\n" 
    416416                "LDMEQFD SP!, {R4-R6,PC}\n" 
    417                 "CMP     R4, #0\n" 
    418                 "BNE     loc_FFC612C4\n" 
    419                 "CMP     R5, R1\n" 
    420                 "BNE     loc_FFC612A4\n" 
    421                 "BL      sub_FFC627E0\n" 
    422                 "BL      sub_FFC62480\n" 
    423                 "B       loc_FFC613FC\n" 
    424 "loc_FFC612A4:\n" 
    425                 "CMP     R2, R5,LSL#17\n" 
    426                 "TSTNE   R5, #0xC00\n" 
    427                 "BEQ     loc_FFC612B8\n" 
    428                 "BL      sub_FFC62528_my\n" //-------------> 
    429                 "B       loc_FFC612BC\n" 
    430 "loc_FFC612B8:\n" 
    431                 "BL      sub_FFC624DC\n" 
    432 "loc_FFC612BC:\n" 
    433                 "BL      sub_FFC627E0\n" 
    434                 "B       loc_FFC613FC\n" 
    435 "loc_FFC612C4:\n" 
    436                 "CMP     R5, R1\n" 
    437                 "BNE     loc_FFC61318\n" 
     417                "CMP     R5, #0\n" 
     418                "BNE     loc_FFC61B24\n" 
     419                "CMP     R4, R2\n" 
     420                "BEQ     loc_FFC61B1C\n" 
     421                "CMP     R1, R4,LSL#17\n" 
     422                "TSTNE   R4, #0xC00\n" 
     423                "BEQ     loc_FFC61B18\n" 
     424                "BL      sub_FFC62E84_my\n" //-------------> (StartMovie) 
     425                "B       loc_FFC61B1C\n" 
     426"loc_FFC61B18:\n" 
     427                "BL      sub_FFC62E38\n" 
     428"loc_FFC61B1C:\n" 
     429                "BL      sub_FFC62FFC\n" 
     430                "B       loc_FFC61BDC\n" 
     431"loc_FFC61B24:\n" 
     432                "CMP     R4, R2\n" 
     433                "BEQ     loc_FFC61BD4\n" 
     434                "CMP     R1, R4,LSL#17\n" 
    438435                "LDRH    R0, [R6,#2]\n" 
    439                 "CMP     R0, R1\n" 
    440                 "BEQ     loc_FFC613F4\n" 
    441                 "CMP     R2, R0,LSL#17\n" 
     436                "TSTNE   R4, #0xC00\n" 
     437                "BEQ     loc_FFC61B84\n" 
     438                "CMP     R0, R2\n" 
     439                "BEQ     loc_FFC61BD4\n" 
     440                "CMP     R1, R0,LSL#17\n" 
    442441                "TSTNE   R0, #0xC00\n" 
    443                 "BEQ     loc_FFC612FC\n" 
    444                 "LDR     R1, =0xFFC6145C\n" 
     442                "BEQ     loc_FFC61B68\n" 
     443                "LDR     R1, =0xFFC61DA0\n" // a_movietomovie ; "_MovieToMovie" 
    445444                "MOV     R0, #0x60\n" 
    446                 "BL      sub_FFC57EC4\n" 
    447                 "CMP     R4, #1\n" 
    448                 "BEQ     loc_FFC613CC\n" 
    449                 "B       loc_FFC61310\n" 
    450 "loc_FFC612FC:\n" 
    451                 "LDR     R1, =0xFFC6146C\n" 
     445                "BL      sub_FFC5556C\n" 
     446                "CMP     R5, #1\n" 
     447                "BEQ     loc_FFC61BAC\n" 
     448                "B       loc_FFC61B7C\n" 
     449"loc_FFC61B68:\n" 
     450                "LDR     R1, =0xFFC61DB0\n" // a_stilltomovie ; "_StillToMovie" 
    452451                "MOV     R0, #0x60\n" 
    453                 "BL      sub_FFC57EC4\n" 
    454                 "CMP     R4, #1\n" 
    455                 "BEQ     loc_FFC613E8\n" 
    456 "loc_FFC61310:\n" 
    457                 "BL      sub_FFC62480\n" 
    458                 "B       loc_FFC613F4\n" 
    459 "loc_FFC61318:\n" 
    460                 "CMP     R2, R5,LSL#17\n" 
    461                 "LDRH    R0, [R6,#2]\n" 
    462                 "TSTNE   R5, #0xC00\n" 
    463                 "BEQ     loc_FFC61388\n" 
    464                 "CMP     R0, R1\n" 
    465                 "BNE     loc_FFC61348\n" 
    466                 "LDR     R1, =0xFFC6147C\n" 
     452                "BL      sub_FFC5556C\n" 
     453                "CMP     R5, #1\n" 
     454                "BEQ     loc_FFC61BC8\n" 
     455"loc_FFC61B7C:\n" 
     456                "BL      sub_FFC62E84_my\n" //-------------> (StartMovie) 
     457                "B       loc_FFC61BD4\n" 
     458"loc_FFC61B84:\n" 
     459                "CMP     R0, R2\n" 
     460                "BEQ     loc_FFC61BD4\n" 
     461                "CMP     R1, R0,LSL#17\n" 
     462                "TSTNE   R0, #0xC00\n" 
     463                "BEQ     loc_FFC61BB4\n" 
     464                "LDR     R1, =0xFFC61DC0\n"                             // a_movietostill ; "_MovieToStill"\n" 
    467465                "MOV     R0, #0x60\n" 
    468                 "BL      sub_FFC57EC4\n" 
    469                 "CMP     R4, #1\n" 
    470                 "BEQ     loc_FFC613A4\n" 
    471                 "B       loc_FFC61380\n" 
    472 "loc_FFC61348:\n" 
    473                 "CMP     R2, R0,LSL#17\n" 
    474                 "TSTNE   R0, #0xC00\n" 
    475                 "BEQ     loc_FFC6136C\n" 
    476                 "LDR     R1, =0xFFC6148C\n" 
     466                "BL      sub_FFC5556C\n" 
     467                "CMP     R5, #1\n" 
     468                "BNE     loc_FFC61BD0\n" 
     469"loc_FFC61BAC:\n" 
     470                "LDMFD   SP!, {R4-R6,LR}\n" 
     471                "B       sub_FFC62EB0\n" 
     472"loc_FFC61BB4:\n" 
     473                "LDR     R1, =0xFFC61DD0\n"                             // a_stilltostill ; "_StillToStill"\n" 
    477474                "MOV     R0, #0x60\n" 
    478                 "BL      sub_FFC57EC4\n" 
    479                 "CMP     R4, #1\n" 
    480                 "BEQ     loc_FFC613CC\n" 
    481                 "B       loc_FFC61380\n" 
    482 "loc_FFC6136C:\n" 
    483                 "LDR     R1, =0xFFC6149C\n" 
    484                 "MOV     R0, #0x60\n" 
    485                 "BL      sub_FFC57EC4\n" 
    486                 "CMP     R4, #1\n" 
    487                 "BEQ     loc_FFC613E8\n" 
    488 "loc_FFC61380:\n" 
    489                 "BL      sub_FFC62528_my\n"  //--------------> 
    490                 "B       loc_FFC613F4\n" 
    491 "loc_FFC61388:\n" 
    492                 "CMP     R0, R1\n" 
    493                 "BNE     loc_FFC613AC\n" 
    494                 "LDR     R1, =0xFFC614AC\n" 
    495                 "MOV     R0, #0x60\n" 
    496                 "BL      sub_FFC57EC4\n" 
    497                 "CMP     R4, #1\n" 
    498                 "BNE     loc_FFC613F0\n" 
    499 "loc_FFC613A4:\n" 
     475                "BL      sub_FFC5556C\n" 
     476                "CMP     R5, #1\n" 
     477                "BNE     loc_FFC61BD0\n" 
     478"loc_FFC61BC8:\n" 
    500479                "LDMFD   SP!, {R4-R6,LR}\n" 
    501                 "B       sub_FFC624B0\n" 
    502 "loc_FFC613AC:\n" 
    503                 "CMP     R2, R0,LSL#17\n" 
    504                 "TSTNE   R0, #0xC00\n" 
    505                 "BEQ     loc_FFC613D4\n" 
    506                 "LDR     R1, =0xFFC614BC\n" 
    507                 "MOV     R0, #0x60\n" 
    508                 "BL      sub_FFC57EC4\n" 
    509                 "CMP     R4, #1\n" 
    510                 "BNE     loc_FFC613F0\n" 
    511 "loc_FFC613CC:\n" 
    512                 "LDMFD   SP!, {R4-R6,LR}\n" 
    513                 "B       sub_FFC62554\n" 
    514 "loc_FFC613D4:\n" 
    515                 "LDR     R1, =0xFFC614CC\n" 
    516                 "MOV     R0, #0x60\n" 
    517                 "BL      sub_FFC57EC4\n" 
    518                 "CMP     R4, #1\n" 
    519                 "BNE     loc_FFC613F0\n" 
    520 "loc_FFC613E8:\n" 
    521                 "LDMFD   SP!, {R4-R6,LR}\n" 
    522                 "B       sub_FFC62504\n" 
    523 "loc_FFC613F0:\n" 
    524                 "BL      sub_FFC624DC\n" 
    525 "loc_FFC613F4:\n" 
    526                 "CMP     R4, #0\n" 
     480                "B       sub_FFC62E60\n" 
     481"loc_FFC61BD0:\n" 
     482                "BL      sub_FFC62E38\n" 
     483"loc_FFC61BD4:\n" 
     484                "CMP     R5, #0\n" 
    527485                "LDMNEFD SP!, {R4-R6,PC}\n" 
    528 "loc_FFC613FC:\n" 
    529                 "STRH    R5, [R6,#2]\n" 
     486"loc_FFC61BDC:\n" 
     487                "STRH    R4, [R6,#2]\n" 
    530488                "LDMFD   SP!, {R4-R6,PC}\n" 
    531489 ); 
    532 }  
    533  
    534  
    535  
    536  
    537  
    538  
    539 void __attribute__((naked,noinline)) sub_FFC62528_my(){  
     490} // #fe 
     491 
     492//StartMovie 
     493void __attribute__((naked,noinline)) sub_FFC62E84_my(){ 
    540494 asm volatile( 
    541495                "STMFD   SP!, {R4,LR}\n" 
    542                 "LDR     R1, =0xFFC62740\n" 
     496                "LDR     R1, =0xFFC62FDC\n"               // a_startmovie ; "_StartMovie"\n" 
    543497                "MOV     R0, #0x20\n" 
    544                 "BL      sub_FFC57EC4\n" 
    545                 "LDR     R0, =0x5C6C\n" 
     498                "BL      sub_FFC5556C\n" 
     499                "LDR     R0, =0x59C0\n" 
    546500                "LDR     R0, [R0,#0x28]\n" 
    547501                "CMP     R0, #0\n" 
    548                 "BLNE    sub_FFC63060\n" 
     502                "BLNE    sub_FFC63860\n" 
    549503                "LDMFD   SP!, {R4,LR}\n" 
    550504                "MOV     R0, #0\n" 
    551                 "B       sub_FFC65380_my\n"  //-----------> 
    552  ); 
    553 }  
    554  
    555  
    556  
    557  
    558  
    559 void __attribute__((naked,noinline)) sub_FFC65380_my(){  
     505                "B       sub_FFC65BBC_my\n"                     // Continue here 
     506 ); 
     507} 
     508 
     509 
     510void __attribute__((naked,noinline)) sub_FFC65BBC_my(){ 
    560511 asm volatile( 
    561512                "STMFD   SP!, {R4,LR}\n" 
    562                 "LDR     R4, =0x5E18\n" 
     513                "LDR     R4, =0x5B6C\n" 
    563514                "MOV     R0, #0\n" 
    564515                "STR     R0, [R4,#0x30]\n" 
    565516                "LDR     R0, [R4,#8]\n" 
    566517                "CMP     R0, #0\n" 
    567                 "BNE     loc_FFC653AC\n" 
    568                 "LDR     R0, =sub_FFC64F8C_my\n" //-----------> 
     518                "BNE     loc_FFC65BE8\n" 
     519                "LDR     R0, =sub_FFC657C8_my\n"                        // Continue here 
    569520                "MOV     R1, #0\n" 
    570                 "BL      sub_FFC5AEA0\n" 
     521                "BL      sub_FFC5AEA0\n"        // CreateController 
    571522                "STR     R0, [R4,#8]\n" 
    572 "loc_FFC653AC:\n" 
     523"loc_FFC65BE8:\n" 
    573524                "LDR     R0, [R4,#0xC]\n" 
    574525                "CMP     R0, #0\n" 
    575                 "BNE     loc_FFC653C8\n" 
    576                 "LDR     R0, =0xFFC64C2C\n" 
     526                "BNE     loc_FFC65C04\n" 
     527                "LDR     R0, =0xFFC65468\n" 
    577528                "MOV     R1, #0\n" 
    578                 "BL      sub_FFC62194\n" 
     529                "BL      sub_FFC62B0C\n" 
    579530                "STR     R0, [R4,#0xC]\n" 
    580 "loc_FFC653C8:\n" 
    581                 "BL      sub_FFC65B88\n" 
    582                 "BL      sub_FFC64C90\n" 
    583                 "BL      sub_FFD2C228\n" 
    584                 "BL      sub_FFD2DF94\n" 
     531"loc_FFC65C04:\n" 
     532                "BL      sub_FFC663CC\n" 
     533                "BL      sub_FFC654CC\n" 
     534                "BL      sub_FFD3B164\n" 
     535                "BL      sub_FFD3BFAC\n" 
    585536                "LDMFD   SP!, {R4,LR}\n" 
    586                 "B       sub_FFD24154\n" 
    587  ); 
    588 }  
    589  
    590  
    591  
    592  
    593  
    594  
    595 void __attribute__((naked,noinline)) sub_FFC64F8C_my(){  
     537                "B       sub_FFD330C8\n" 
     538 ); 
     539} 
     540 
     541 
     542void __attribute__((naked,noinline)) sub_FFC657C8_my(){ 
    596543 asm volatile( 
    597544                "STMFD   SP!, {R3-R11,LR}\n" 
    598                 "LDR     R5, =0x5E18\n" 
     545                "LDR     R5, =0x5B6C\n" 
    599546                "MOV     R4, R1\n" 
    600547                "LDR     R2, [R5,#0x2C]\n" 
     
    606553                "MOV     R11, R3\n" 
    607554                "MVN     R8, #0\n" 
    608                 "BEQ     loc_FFC65004\n" 
     555                "BEQ     loc_FFC65840\n" 
    609556                "CMP     R4, R9\n" 
    610                 "BEQ     loc_FFC651F4\n" 
     557                "BEQ     loc_FFC65A30\n" 
    611558                "CMP     R4, #0x800\n" 
    612559                "LDREQ   R2, [R5,#0x38]\n" 
    613560                "CMPEQ   R11, R2\n" 
    614                 "BNE     loc_FFC65304\n" 
     561                "BNE     loc_FFC65B40\n" 
    615562                "STR     R1, [R5,#0x2C]!\n" 
    616563                "CMP     R0, #0\n" 
    617564                "STR     R8, [R5,#0xC]\n" 
    618                 "BNE     loc_FFC65378\n" 
    619                 "BL      sub_FFC1C744\n" 
    620                 "CMP     R0, #1\n" 
    621                 "BEQ     loc_FFC64FFC\n" 
    622                 "BL      sub_FFC1C74C\n" 
    623                 "CMP     R0, #1\n" 
    624                 "BNE     loc_FFC65378\n" 
    625 "loc_FFC64FFC:\n" 
    626                 "BL      sub_FFC64DDC\n" 
    627                 "B       loc_FFC65378\n" 
    628 "loc_FFC65004:\n" 
     565                "BNE     loc_FFC65BB4\n" 
     566                "BL      sub_FFC1A540\n" 
     567                "CMP     R0, #1\n" 
     568                "BEQ     loc_FFC65838\n" 
     569                "BL      sub_FFC1A548\n" 
     570                "CMP     R0, #1\n" 
     571                "BNE     loc_FFC65BB4\n" 
     572"loc_FFC65838:\n" 
     573                "BL      sub_FFC65618\n" 
     574                "B       loc_FFC65BB4\n" 
     575"loc_FFC65840:\n" 
    629576                "CMP     R0, #1\n" 
    630577                "SUBEQ   R12, R4, #0x2000\n" 
    631578                "SUBEQS  R12, R12, #0x1C\n" 
    632                 "BNE     loc_FFC65020\n" 
    633                 "MOV     R0, #0\n" 
    634                 "BL      sub_FFC65684\n" 
    635                 "B       loc_FFC65378\n" 
    636 "loc_FFC65020:\n" 
    637                 "BL      sub_FFC70D30\n" 
     579                "BNE     loc_FFC6585C\n" 
     580                "MOV     R0, #0\n" 
     581                "BL      sub_FFC65EBC\n" 
     582                "B       loc_FFC65BB4\n" 
     583"loc_FFC6585C:\n" 
     584                "BL      sub_FFC5A964\n" 
    638585                "LDR     R10, =0x9A5\n" 
    639586                "CMP     R0, #1\n" 
    640587                "SUB     R6, R10, #4\n" 
    641588                "SUB     R7, R10, #2\n" 
    642                 "BNE     loc_FFC65054\n" 
     589                "BNE     loc_FFC65890\n" 
    643590                "CMP     R4, R10\n" 
    644591                "CMPNE   R4, R6\n" 
    645592                "CMPNE   R4, R7\n" 
    646                 "BNE     loc_FFC65054\n" 
    647                 "BL      sub_FFC6FED4\n" 
     593                "BNE     loc_FFC65890\n" 
     594                "BL      sub_FFC59B08\n" 
    648595                "STR     R4, [R5,#0x3C]\n" 
    649                 "B       loc_FFC65304\n" 
    650 "loc_FFC65054:\n" 
    651                 "BL      sub_FFD22588\n" 
    652                 "CMP     R0, #1\n" 
    653                 "BNE     loc_FFC65074\n" 
     596                "B       loc_FFC65B40\n" 
     597"loc_FFC65890:\n" 
     598                "BL      sub_FFD32074\n"                // GetAEIntegralServiceMode_7 
     599                "CMP     R0, #1\n" 
     600                "BNE     loc_FFC658B0\n" 
    654601                "MOV     R0, R4\n" 
    655                 "BL      sub_FFC5B3DC\n" 
     602                "BL      sub_FFC5BBFC\n" 
    656603                "CMP     R0, #1\n" 
    657604                "CMPNE   R4, R10\n" 
    658                 "BEQ     loc_FFC65304\n" 
    659 "loc_FFC65074:\n" 
    660                 "BL      sub_FFC1C81C\n" 
    661                 "CMP     R0, #1\n" 
    662                 "BNE     loc_FFC6508C\n" 
     605                "BEQ     loc_FFC65B40\n" 
     606"loc_FFC658B0:\n" 
     607                "BL      sub_FFC1A618\n" 
     608                "CMP     R0, #1\n" 
     609                "BNE     loc_FFC658C8\n" 
    663610                "CMP     R4, R6\n" 
    664611                "CMPNE   R4, R7\n" 
    665                 "BEQ     loc_FFC65378\n" 
    666 "loc_FFC6508C:\n" 
    667                 "BL      sub_FFC6235C\n" 
     612                "BEQ     loc_FFC65BB4\n" 
     613"loc_FFC658C8:\n" 
     614                "BL      sub_FFC6279C\n" 
    668615                "LDR     R1, =0x9A2\n" 
    669616                "CMP     R0, #1\n" 
    670617                "ADD     R2, R1, #2\n" 
    671                 "BNE     loc_FFC650B4\n" 
     618                "BNE     loc_FFC658F0\n" 
    672619                "CMP     R4, R6\n" 
    673620                "CMPNE   R4, R1\n" 
    674621                "CMPNE   R4, R7\n" 
    675622                "CMPNE   R4, R2\n" 
    676                 "BEQ     loc_FFC65378\n" 
    677 "loc_FFC650B4:\n" 
     623                "BEQ     loc_FFC65BB4\n" 
     624"loc_FFC658F0:\n" 
    678625                "LDR     R12, =0x200A\n" 
    679626                "CMP     R4, R12\n" 
    680                 "BEQ     loc_FFC65368\n" 
    681                 "BGT     loc_FFC65130\n" 
     627                "BEQ     loc_FFC65BA4\n" 
     628                "BGT     loc_FFC6596C\n" 
    682629                "LDR     R12, =0x907\n" 
    683630                "CMP     R4, R12\n" 
    684631                "MOVEQ   R1, #2\n" 
    685632                "MOVEQ   R0, R10\n" 
    686                 "BEQ     loc_FFC652A4\n" 
    687                 "BGT     loc_FFC6510C\n" 
     633                "BEQ     loc_FFC65AE0\n" 
     634                "BGT     loc_FFC65948\n" 
    688635                "SUB     R12, R4, #0x800\n" 
    689636                "LDR     R6, =0x2003\n" 
    690637                "SUBS    R12, R12, #0x26\n" 
    691                 "BEQ     loc_FFC65208\n" 
     638                "BEQ     loc_FFC65A44\n" 
    692639                "SUB     R12, R4, #0x800\n" 
    693640                "SUBS    R12, R12, #0x29\n" 
    694                 "BEQ     loc_FFC6524C\n" 
     641                "BEQ     loc_FFC65A88\n" 
    695642                "CMP     R4, #0x860\n" 
    696643                "SUBNE   R12, R4, #0x800\n" 
    697644                "SUBNES  R12, R12, #0x61\n" 
    698                 "BNE     loc_FFC6531C\n" 
    699                 "B       loc_FFC65304\n" 
    700 "loc_FFC6510C:\n" 
     645                "BNE     loc_FFC65B58\n" 
     646                "B       loc_FFC65B40\n" 
     647"loc_FFC65948:\n" 
    701648                "CMP     R4, R6\n" 
    702                 "BEQ     loc_FFC6529C\n" 
     649                "BEQ     loc_FFC65AD8\n" 
    703650                "CMP     R4, R1\n" 
    704                 "BEQ     loc_FFC65368\n" 
     651                "BEQ     loc_FFC65BA4\n" 
    705652                "CMP     R4, R7\n" 
    706                 "BEQ     loc_FFC6529C\n" 
     653                "BEQ     loc_FFC65AD8\n" 
    707654                "CMP     R4, R2\n" 
    708                 "BEQ     loc_FFC65368\n" 
    709                 "B       loc_FFC6531C\n" 
    710 "loc_FFC65130:\n" 
     655                "BEQ     loc_FFC65BA4\n" 
     656                "B       loc_FFC65B58\n" 
     657"loc_FFC6596C:\n" 
    711658                "LDR     R12, =0x3149\n" 
    712659                "CMP     R4, R12\n" 
    713660                "MOVEQ   R1, #0\n" 
    714661                "MOVEQ   R0, #0x84\n" 
    715                 "BEQ     loc_FFC65314\n" 
    716                 "BGT     loc_FFC65188\n" 
     662                "BEQ     loc_FFC65B50\n" 
     663                "BGT     loc_FFC659C4\n" 
    717664                "SUB     R12, R4, #0x2000\n" 
    718665                "SUBS    R12, R12, #0x20\n" 
    719666                "MOVEQ   R1, R11\n" 
    720667                "MOVEQ   R0, #0x83\n" 
    721                 "BEQ     loc_FFC65314\n" 
     668                "BEQ     loc_FFC65B50\n" 
    722669                "CMP     R4, R9\n" 
    723                 "BEQ     loc_FFC651E0\n" 
     670                "BEQ     loc_FFC65A1C\n" 
    724671                "SUB     R12, R4, #0x3100\n" 
    725672                "SUBS    R12, R12, #0x35\n" 
    726                 "BEQ     loc_FFC651C4\n" 
     673                "BEQ     loc_FFC65A00\n" 
    727674                "SUB     R12, R4, #0x3000\n" 
    728675                "SUBS    R12, R12, #0x148\n" 
    729                 "BNE     loc_FFC6531C\n" 
     676                "BNE     loc_FFC65B58\n" 
    730677                "MOV     R1, #0\n" 
    731678                "MOV     R0, #0x86\n" 
    732                 "B       loc_FFC65314\n" 
    733 "loc_FFC65188:\n" 
     679                "B       loc_FFC65B50\n" 
     680"loc_FFC659C4:\n" 
    734681                "SUB     R12, R4, #0x3100\n" 
    735682                "SUBS    R12, R12, #0x4A\n" 
    736                 "BEQ     loc_FFC6530C\n" 
     683                "BEQ     loc_FFC65B48\n" 
    737684                "SUB     R12, R4, #0x4000\n" 
    738685                "SUBS    R12, R12, #3\n" 
    739                 "BEQ     loc_FFC652C8\n" 
     686                "BEQ     loc_FFC65B04\n" 
    740687                "SUB     R12, R4, #0x4000\n" 
    741688                "SUBS    R12, R12, #8\n" 
    742                 "BEQ     loc_FFC652AC\n" 
     689                "BEQ     loc_FFC65AE8\n" 
    743690                "SUB     R12, R4, #0x4000\n" 
    744691                "SUBS    R12, R12, #0xF\n" 
    745                 "BNE     loc_FFC6531C\n" 
     692                "BNE     loc_FFC65B58\n" 
    746693                "MOV     R0, #0x82\n" 
    747                 "BL      sub_FFC661EC\n" 
    748                 "B       loc_FFC65378\n" 
    749 "loc_FFC651C4:\n" 
    750                 "BL      sub_FFC65BBC\n" 
     694                "BL      sub_FFC6699C\n" 
     695                "B       loc_FFC65BB4\n" 
     696"loc_FFC65A00:\n" 
     697                "BL      sub_FFC66400\n"                        // GetVRAMHPixelsSize_2 
    751698                "CMP     R0, #4\n" 
    752                 "BEQ     loc_FFC65368\n" 
     699                "BEQ     loc_FFC65BA4\n" 
    753700                "LDR     R0, [R5,#0x1C]\n" 
    754701                "CMP     R0, #0\n" 
    755                 "BLNE    sub_FFC64D24\n" 
    756                 "B       loc_FFC65378\n" 
    757 "loc_FFC651E0:\n" 
     702                "BLNE    sub_FFC65560\n" 
     703                "B       loc_FFC65BB4\n" 
     704"loc_FFC65A1C:\n" 
    758705                "MOV     R0, #1\n" 
    759706                "STR     R0, [R5,#0x1C]\n" 
    760707                "LDR     R0, [R5,#0x18]\n" 
    761708                "CMP     R0, #1\n" 
    762                 "BNE     loc_FFC651FC\n" 
    763 "loc_FFC651F4:\n" 
    764                 "BL      sub_FFC64D24\n" 
     709                "BNE     loc_FFC65A38\n" 
     710"loc_FFC65A30:\n" 
     711                "BL      sub_FFC65560\n" 
    765712                "LDMFD   SP!, {R3-R11,PC}\n" 
    766 "loc_FFC651FC:\n" 
     713"loc_FFC65A38:\n" 
    767714                "MOV     R0, R4\n" 
    768                 "BL      sub_FFC64EFC\n" 
    769                 "B       loc_FFC65378\n" 
    770 "loc_FFC65208:\n" 
    771                 "BL      sub_FFC6235C\n" 
    772                 "CMP     R0, #0\n" 
    773                 "BEQ     loc_FFC65220\n" 
     715                "BL      sub_FFC65738\n" 
     716                "B       loc_FFC65BB4\n" 
     717"loc_FFC65A44:\n" 
     718                "BL      sub_FFC6279C\n" 
     719                "CMP     R0, #0\n" 
     720                "BEQ     loc_FFC65A5C\n" 
    774721                "MOV     R0, R4\n" 
    775                 "BL      sub_FFC62350\n" 
    776                 "B       loc_FFC65378\n" 
    777 "loc_FFC65220:\n" 
     722                "BL      sub_FFC62CD0\n" 
     723                "B       loc_FFC65BB4\n" 
     724"loc_FFC65A5C:\n" 
    778725                "LDR     R0, [R5,#0x10]\n" 
    779726                "LDR     R1, [R5,#0x14]\n" 
     
    781728                "LDR     R1, [R5,#0x1C]\n" 
    782729                "ORRS    R0, R0, R1\n" 
    783                 "BNE     loc_FFC65378\n" 
     730                "BNE     loc_FFC65BB4\n" 
    784731                "MOV     R1, #0\n" 
    785732                "MOV     R0, R6\n" 
    786                 "BL      sub_FFC4A82C\n" 
    787                 "BL      sub_FFD49F28\n" 
    788                 "B       loc_FFC65378\n" 
    789 "loc_FFC6524C:\n" 
     733                "BL      sub_FFC47374\n" 
     734                "BL      sub_FFD21708\n"                        // StartRecModeMenu 
     735                "B       loc_FFC65BB4\n" 
     736"loc_FFC65A88:\n" 
    790737                "LDR     R0, [R5,#0x10]\n" 
    791738                "LDR     R1, [R5,#0x14]\n" 
    792739                "ORRS    R0, R0, R1\n" 
    793                 "BNE     loc_FFC65378\n" 
    794                 "BL      sub_FFC62368\n" 
     740                "BNE     loc_FFC65BB4\n" 
     741                "BL      sub_FFC62CDC\n" 
    795742                "CMP     R0, #0\n" 
    796743                "LDREQ   R0, [R5,#0x1C]\n" 
    797744                "CMPEQ   R0, #0\n" 
    798                 "BNE     loc_FFC65378\n" 
    799                 "BL      sub_FFC6235C\n" 
    800                 "CMP     R0, #0\n" 
    801                 "BNE     loc_FFC65378\n" 
    802                 "BL      sub_FFD2E03C\n" 
    803                 "CMP     R0, #0\n" 
    804                 "BNE     loc_FFC65378\n" 
     745                "BNE     loc_FFC65BB4\n" 
     746                "BL      sub_FFC6279C\n" 
     747                "CMP     R0, #0\n" 
     748                "BNE     loc_FFC65BB4\n" 
     749                "BL      sub_FFD3B92C\n"                        // j_IsEvfDriveMode_16\n" 
     750                "CMP     R0, #0\n" 
     751                "BNE     loc_FFC65BB4\n" 
    805752                "MOV     R1, #0\n" 
    806753                "MOV     R0, R6\n" 
    807                 "BL      sub_FFC4A82C\n" 
    808                 "BL      sub_FFD173A8\n" 
    809                 "B       loc_FFC65378\n" 
    810 "loc_FFC6529C:\n" 
     754                "BL      sub_FFC47374\n" 
     755                "BL      sub_FFD1C988\n" 
     756                "B       loc_FFC65BB4\n" 
     757"loc_FFC65AD8:\n" 
    811758                "MOV     R1, #1\n" 
    812759                "MOV     R0, R4\n" 
    813 "loc_FFC652A4:\n" 
    814                 "BL      sub_FFC64E38_my\n" //-------------> 
     760"loc_FFC65AE0:\n" 
     761                "BL      sub_FFC65674_my\n"             // Continue here 
    815762                "LDMFD   SP!, {R3-R11,PC}\n" 
    816 "loc_FFC652AC:\n" 
     763"loc_FFC65AE8:\n" 
    817764                "MOV     R0, R11\n" 
    818                 "BL      sub_FFC60C94\n" 
     765                "BL      sub_FFC6145C\n" 
    819766                "CMP     R0, #0\n" 
    820767                "MOVEQ   R1, R11\n" 
    821768                "MOVEQ   R0, R4\n" 
    822                 "BLEQ    sub_FFC65828_my\n"  //-----------> 
    823                 "B       loc_FFC65304\n" 
    824 "loc_FFC652C8:\n" 
     769                "BLEQ    sub_FFC6606C_my\n"                     // Continue here 
     770                "B       loc_FFC65B40\n" 
     771"loc_FFC65B04:\n" 
    825772                "LDR     R0, [R5,#0x3C]\n" 
    826773                "CMN     R0, #1\n" 
    827                 "BEQ     loc_FFC65304\n" 
    828                 "MOV     R0, #0\n" 
    829                 "BL      sub_FFC6EF6C\n" 
     774                "BEQ     loc_FFC65B40\n" 
     775                "MOV     R0, #0\n" 
     776                "BL      sub_FFC58BEC\n" 
    830777                "LDR     R0, [R5,#0x3C]\n" 
    831778                "CMP     R0, R6\n" 
    832                 "BNE     loc_FFC652F4\n" 
    833                 "BL      sub_FFC1C744\n" 
    834                 "CMP     R0, #0\n" 
    835                 "BEQ     loc_FFC65300\n" 
    836 "loc_FFC652F4:\n" 
     779                "BNE     loc_FFC65B30\n" 
     780                "BL      sub_FFC1A540\n" 
     781                "CMP     R0, #0\n" 
     782                "BEQ     loc_FFC65B3C\n" 
     783"loc_FFC65B30:\n" 
    837784                "LDR     R0, [R5,#0x3C]\n" 
    838785                "MOV     R1, #0\n" 
    839                 "BL      sub_FFC5B650\n" 
    840 "loc_FFC65300:\n" 
     786                "BL      sub_FFC5BE78\n"                        // PostLogicalEventForNotPowerType\n" 
     787"loc_FFC65B3C:\n" 
    841788                "STR     R8, [R5,#0x3C]\n" 
    842 "loc_FFC65304:\n" 
     789"loc_FFC65B40:\n" 
    843790                "MOV     R0, #1\n" 
    844791                "LDMFD   SP!, {R3-R11,PC}\n" 
    845 "loc_FFC6530C:\n" 
     792"loc_FFC65B48:\n" 
    846793                "MOV     R1, #0\n" 
    847794                "MOV     R0, #0x85\n" 
    848 "loc_FFC65314:\n" 
    849                 "BL      sub_FFC661AC\n" 
    850                 "B       loc_FFC65378\n" 
    851 "loc_FFC6531C:\n" 
     795"loc_FFC65B50:\n" 
     796                "BL      sub_FFC6695C\n" 
     797                "B       loc_FFC65BB4\n" 
     798"loc_FFC65B58:\n" 
    852799                "LDR     R12, =0x855\n" 
    853800                "CMP     R4, R12\n" 
    854                 "BEQ     loc_FFC65358\n" 
    855                 "BGT     loc_FFC65344\n" 
     801                "BEQ     loc_FFC65B94\n" 
     802                "BGT     loc_FFC65B80\n" 
    856803                "SUB     R12, R4, #0x800\n" 
    857804                "SUBS    R12, R12, #0x38\n" 
    858805                "SUBNE   R12, R4, #0x800\n" 
    859806                "SUBNES  R12, R12, #0x39\n" 
    860                 "BNE     loc_FFC65368\n" 
    861                 "B       loc_FFC65358\n" 
    862 "loc_FFC65344:\n" 
     807                "BNE     loc_FFC65BA4\n" 
     808                "B       loc_FFC65B94\n" 
     809"loc_FFC65B80:\n" 
    863810                "SUB     R12, R4, #0x800\n" 
    864811                "SUBS    R12, R12, #0x56\n" 
    865812                "SUBNE   R12, R4, #0x800\n" 
    866813                "SUBNES  R12, R12, #0x5D\n" 
    867                 "BNE     loc_FFC65368\n" 
    868 "loc_FFC65358:\n" 
     814                "BNE     loc_FFC65BA4\n" 
     815"loc_FFC65B94:\n" 
    869816                "LDR     R0, [R5,#0x10]\n" 
    870817                "LDR     R1, [R5,#0x14]\n" 
    871818                "ORRS    R0, R0, R1\n" 
    872                 "BNE     loc_FFC65378\n" 
    873 "loc_FFC65368:\n" 
     819                "BNE     loc_FFC65BB4\n" 
     820"loc_FFC65BA4:\n" 
    874821                "MOV     R1, R11\n" 
    875822                "MOV     R0, R4\n" 
    876                 "BL      sub_FFC65828_my\n"  //-----------------> 
     823                "BL      sub_FFC6606C_my\n"                     // Continue here 
    877824                "LDMFD   SP!, {R3-R11,PC}\n" 
    878 "loc_FFC65378:\n" 
     825"loc_FFC65BB4:\n" 
    879826                "MOV     R0, #0\n" 
    880827                "LDMFD   SP!, {R3-R11,PC}\n" 
    881828 ); 
    882 }  
    883  
    884  
    885  
    886  
    887  
    888  
    889 void __attribute__((naked,noinline)) sub_FFC64E38_my(){ 
    890 asm volatile( 
    891                  "STMFD   SP!, {R4-R6,LR}\n" 
    892                  "MOV     R4, R0\n" 
    893                  "LDR     R0, =0x5E18\n" 
    894                  "MOV     R5, R1\n" 
    895                  "LDR     R0, [R0,#0x1C]\n" 
    896                  "CMP     R0, #0\n" 
    897                  "LDRNE   R1, =0xFFC64F68\n" 
    898                  "BNE     loc_FFC64EE4\n" 
    899                  "BL      sub_FFC65BC8\n" 
    900                  "CMP     R0, #1\n" 
    901                  "BNE     loc_FFC64E74\n" 
    902  "loc_FFC64E64:\n" 
    903                  "MOV     R0, R4\n" 
    904                  "LDMFD   SP!, {R4-R6,LR}\n" 
    905                  "MOV     R1, #0\n" 
    906                  "B       sub_FFC65828_my\n" //-------------> 
    907  "loc_FFC64E74:\n" 
    908                  "CMP     R5, #2\n" 
    909                  "BNE     loc_FFC64E8C\n" 
    910                  "BL      sub_FFC64550\n" 
    911                  "CMP     R0, #0\n" 
    912                  "BEQ     loc_FFC64ED4\n" 
    913                  "B       loc_FFC64EA0\n" 
    914  "loc_FFC64E8C:\n" 
    915                  "CMP     R5, #1\n" 
    916                  "BNE     loc_FFC64ED4\n" 
    917                  "BL      sub_FFC64568\n" 
    918                  "CMP     R0, #0\n" 
    919                  "BNE     loc_FFC64ED4\n" 
    920  "loc_FFC64EA0:\n" 
    921                  "MOV     R0, #0\n" 
    922                  "BL      sub_FFC6EF6C\n" 
    923                  "SUB     R12, R4, #0x900\n" 
    924                  "SUBS    R12, R12, #0xA1\n" 
    925                  "SUBNE   R12, R4, #0x900\n" 
    926                  "SUBNES  R12, R12, #0xA3\n" 
    927                  "SUBNE   R12, R4, #0x900\n" 
    928                  "SUBNES  R12, R12, #0xA5\n" 
    929                  "LDREQ   R0, =0xC507\n" 
    930                  "MOVEQ   R1, #0\n" 
    931                  "BLEQ    sub_FFC4A82C\n" 
    932  "loc_FFC64ECC:\n" 
    933                  "MOV     R0, #0\n" 
    934                  "LDMFD   SP!, {R4-R6,PC}\n" 
    935  "loc_FFC64ED4:\n" 
    936                  "BL      sub_FFC64DDC\n" 
    937                  "CMP     R0, #0\n" 
    938                  "BNE     loc_FFC64EF0\n" 
    939                  "LDR     R1, =0xFFC64F78\n" 
    940  "loc_FFC64EE4:\n" 
    941                  "MOV     R0, #0x60\n" 
    942                  "BL      sub_FFC57EC4\n" 
    943                  "B       loc_FFC64ECC\n" 
    944  "loc_FFC64EF0:\n" 
    945                  "MOV     R0, R5\n" 
    946                  "BL      sub_FFD21504\n" 
    947                  "B       loc_FFC64E64\n" 
    948  ); 
    949 } 
    950  
    951  
    952  
    953  
    954  
    955  
    956  
    957  
    958 void __attribute__((naked,noinline)) sub_FFC65828_my(){  
     829} // #fe 
     830 
     831// sub_FFC65674_my 
     832//sub_FFC6606C_my 
     833 
     834 
     835 
     836void __attribute__((naked,noinline)) sub_FFC65674_my(){ 
     837 asm volatile( 
     838                "STMFD   SP!, {R4-R6,LR}\n" 
     839                "MOV     R4, R0\n" 
     840                "LDR     R0, =0x5B6C\n" 
     841                "MOV     R5, R1\n" 
     842                "LDR     R0, [R0,#0x1C]\n" 
     843                "CMP     R0, #0\n" 
     844                "LDRNE   R1, =0xFFC657A4\n"                             // aMvicon_fshtdwn ; "MviCon_fShtDwn" 
     845                "BNE     loc_FFC65720\n" 
     846                "BL      sub_FFC6640C\n" 
     847                "CMP     R0, #1\n" 
     848                "BNE     loc_FFC656B0\n" 
     849"loc_FFC656A0:\n" 
     850                "MOV     R0, R4\n" 
     851                "LDMFD   SP!, {R4-R6,LR}\n" 
     852                "MOV     R1, #0\n" 
     853                "B       sub_FFC6606C_my\n"                                     // Continue here 
     854"loc_FFC656B0:\n" 
     855                "CMP     R5, #2\n" 
     856                "BNE     loc_FFC656C8\n" 
     857                "BL      sub_FFC64D10\n" 
     858                "CMP     R0, #0\n" 
     859                "BEQ     loc_FFC65710\n" 
     860                "B       loc_FFC656DC\n" 
     861"loc_FFC656C8:\n" 
     862                "CMP     R5, #1\n" 
     863                "BNE     loc_FFC65710\n" 
     864                "BL      sub_FFC64D28\n" 
     865                "CMP     R0, #0\n" 
     866                "BNE     loc_FFC65710\n" 
     867"loc_FFC656DC:\n" 
     868                "MOV     R0, #0\n" 
     869                "BL      sub_FFC58BEC\n" 
     870                "SUB     R12, R4, #0x900\n" 
     871                "SUBS    R12, R12, #0xA1\n" 
     872                "SUBNE   R12, R4, #0x900\n" 
     873                "SUBNES  R12, R12, #0xA3\n" 
     874                "SUBNE   R12, R4, #0x900\n" 
     875                "SUBNES  R12, R12, #0xA5\n" 
     876                "LDREQ   R0, =0xC507\n" 
     877                "MOVEQ   R1, #0\n" 
     878                "BLEQ    sub_FFC47374\n" 
     879"loc_FFC65708:\n" 
     880                "MOV     R0, #0\n" 
     881                "LDMFD   SP!, {R4-R6,PC}\n" 
     882"loc_FFC65710:\n" 
     883                "BL      sub_FFC65618\n" 
     884                "CMP     R0, #0\n" 
     885                "BNE     loc_FFC6572C\n" 
     886                "LDR     R1, =0xFFC657B4\n"                             // aMvicon_initchk ; "MviCon_InitChkBuf"\n" 
     887"loc_FFC65720:\n" 
     888                "MOV     R0, #0x60\n" 
     889                "BL      sub_FFC5556C\n" 
     890                "B       loc_FFC65708\n" 
     891"loc_FFC6572C:\n" 
     892                "MOV     R0, R5\n" 
     893                "BL      sub_FFD31120\n" 
     894                "B       loc_FFC656A0\n" 
     895 ); 
     896} // #fe 
     897 
     898 
     899 
     900void __attribute__((naked,noinline)) sub_FFC6606C_my(){ 
    959901 asm volatile( 
    960902                "STMFD   SP!, {R4-R8,LR}\n" 
    961903                "MOV     R7, R1\n" 
    962904                "MOV     R4, R0\n" 
    963                 "BL      sub_FFC65C44\n" 
    964                 "LDR     R5, =0x5E5C\n" 
     905                "BL      sub_FFC66488\n" 
     906                "LDR     R5, =0x5BB0\n" 
    965907                "LDR     R3, =0x200A\n" 
    966908                "LDR     R12, [R5]\n" 
     
    972914                "ADD     LR, R3, #0x15\n" 
    973915                "ADDLS   PC, PC, R12,LSL#2\n" 
    974                 "B       loc_FFC65B80\n" 
    975 "loc_FFC65864:\n" 
    976                 "B       loc_FFC6588C\n" 
    977 "loc_FFC65868:\n" 
    978                 "B       loc_FFC6589C\n" 
    979 "loc_FFC6586C:\n" 
    980                 "B       loc_FFC658AC\n" 
    981 "loc_FFC65870:\n" 
    982                 "B       loc_FFC65920\n" 
    983 "loc_FFC65874:\n" 
    984                 "B       loc_FFC65960\n" 
    985 "loc_FFC65878:\n" 
    986                 "B       loc_FFC659E8\n" 
    987 "loc_FFC6587C:\n" 
    988                 "B       loc_FFC65A18\n" 
    989 "loc_FFC65880:\n" 
    990                 "B       loc_FFC65AC8\n" 
    991 "loc_FFC65884:\n" 
    992                 "B       loc_FFC65A28\n" 
    993 "loc_FFC65888:\n" 
    994                 "B       loc_FFC65AF0\n" 
    995 "loc_FFC6588C:\n" 
     916                "B       loc_FFC663C4\n" 
     917"loc_FFC660A8:\n" 
     918                "B       loc_FFC660D0\n" 
     919"loc_FFC660AC:\n" 
     920                "B       loc_FFC660E0\n" 
     921"loc_FFC660B0:\n" 
     922                "B       loc_FFC660F0\n" 
     923"loc_FFC660B4:\n" 
     924                "B       loc_FFC66164\n" 
     925"loc_FFC660B8:\n" 
     926                "B       loc_FFC661A4\n" 
     927"loc_FFC660BC:\n" 
     928                "B       loc_FFC6622C\n" 
     929"loc_FFC660C0:\n" 
     930                "B       loc_FFC6625C\n" 
     931"loc_FFC660C4:\n" 
     932                "B       loc_FFC6630C\n" 
     933"loc_FFC660C8:\n" 
     934                "B       loc_FFC662D0\n" 
     935"loc_FFC660CC:\n" 
     936                "B       loc_FFC66334\n" 
     937"loc_FFC660D0:\n" 
    996938                "MOV     R1, R7\n" 
    997939                "MOV     R0, R4\n" 
    998940                "LDMFD   SP!, {R4-R8,LR}\n" 
    999                 "B       sub_FFC657B0\n" 
    1000 "loc_FFC6589C:\n" 
     941                "B       sub_FFC65FE8\n" 
     942"loc_FFC660E0:\n" 
    1001943                "MOV     R1, R7\n" 
    1002944                "MOV     R0, R4\n" 
    1003945                "LDMFD   SP!, {R4-R8,LR}\n" 
    1004                 "B       sub_FFC65DC0_my\n"  //------------> 
    1005 "loc_FFC658AC:\n" 
     946                "B       sub_FFC66608_my\n"                                     // Continue here 
     947"loc_FFC660F0:\n" 
    1006948                "CMP     R4, R1\n" 
    1007                 "BEQ     loc_FFC65910\n" 
     949                "BEQ     loc_FFC66154\n" 
    1008950                "SUB     R12, R4, #0x2000\n" 
    1009951                "SUBS    R12, R12, #6\n" 
    1010                 "BEQ     loc_FFC658D4\n" 
     952                "BEQ     loc_FFC66118\n" 
    1011953                "CMP     R4, R0\n" 
    1012                 "BEQ     loc_FFC65918\n" 
     954                "BEQ     loc_FFC6615C\n" 
    1013955                "SUB     R12, R4, #0x3100\n" 
    1014956                "SUBS    R12, R12, #0x4B\n" 
    1015                 "BNE     loc_FFC65B80\n" 
    1016 "loc_FFC658D4:\n" 
    1017                 "BL      sub_FFC64DB8\n" 
    1018                 "MOV     R0, #0\n" 
    1019                 "BL      sub_FFC65C2C\n" 
     957                "BNE     loc_FFC663C4\n" 
     958"loc_FFC66118:\n" 
     959                "BL      sub_FFC655F4\n" 
     960                "MOV     R0, #0\n" 
     961                "BL      sub_FFC66470\n" 
    1020962                "LDR     R0, [R5,#8]\n" 
    1021963                "CMP     R0, #0\n" 
    1022964                "MOVNE   R1, #0\n" 
    1023965                "MOVNE   R0, R6\n" 
    1024                 "BNE     loc_FFC65908\n" 
     966                "BNE     loc_FFC6614C\n" 
    1025967                "LDR     R0, [R5,#4]\n" 
    1026968                "CMP     R0, #0\n" 
    1027                 "BEQ     loc_FFC65B30\n" 
     969                "BEQ     loc_FFC66374\n" 
    1028970                "LDR     R0, =0x9A1\n" 
    1029971                "MOV     R1, #0\n" 
    1030 "loc_FFC65908:\n" 
    1031                 "BL      sub_FFC657B0\n" 
    1032                 "B       loc_FFC65B30\n" 
    1033 "loc_FFC65910:\n" 
    1034                 "BL      sub_FFC65D34\n" 
    1035                 "B       loc_FFC65B30\n" 
    1036 "loc_FFC65918:\n" 
    1037                 "BL      sub_FFC65D4C\n" 
    1038                 "B       loc_FFC65B30\n" 
    1039 "loc_FFC65920:\n" 
     972"loc_FFC6614C:\n" 
     973                "BL      sub_FFC65FE8\n" 
     974                "B       loc_FFC66374\n" 
     975"loc_FFC66154:\n" 
     976                "BL      sub_FFC6657C\n" 
     977                "B       loc_FFC66374\n" 
     978"loc_FFC6615C:\n" 
     979                "BL      sub_FFC66594\n" 
     980                "B       loc_FFC66374\n" 
     981"loc_FFC66164:\n" 
    1040982                "SUB     R12, R4, #0x900\n" 
    1041983                "SUBS    R12, R12, #0xA2\n" 
    1042                 "BEQ     loc_FFC65950\n" 
     984                "BEQ     loc_FFC66194\n" 
    1043985                "CMP     R4, R6\n" 
    1044                 "BEQ     loc_FFC65948\n" 
     986                "BEQ     loc_FFC6618C\n" 
    1045987                "CMP     R4, R1\n" 
    1046                 "BEQ     loc_FFC65958\n" 
     988                "BEQ     loc_FFC6619C\n" 
    1047989                "CMP     R4, R0\n" 
    1048                 "BLEQ    sub_FFC65D4C\n" 
    1049                 "B       loc_FFC65B80\n" 
    1050 "loc_FFC65948:\n" 
    1051                 "BL      sub_FFC65754_my\n"  //----------------> 
    1052                 "B       loc_FFC65B80\n" 
    1053 "loc_FFC65950:\n" 
    1054                 "BL      sub_FFC65D14\n" 
    1055                 "B       loc_FFC65B80\n" 
    1056 "loc_FFC65958:\n" 
    1057                 "BL      sub_FFC65D34\n" 
    1058                 "B       loc_FFC65B80\n" 
    1059 "loc_FFC65960:\n" 
     990                "BLEQ    sub_FFC66594\n" 
     991                "B       loc_FFC663C4\n" 
     992"loc_FFC6618C:\n" 
     993                "BL      sub_FFC65F8C_my\n"                             // Continue here EntryActionOnPreMoving 
     994                "B       loc_FFC663C4\n" 
     995"loc_FFC66194:\n" 
     996                "BL      sub_FFC66558\n" 
     997                "B       loc_FFC663C4\n" 
     998"loc_FFC6619C:\n" 
     999                "BL      sub_FFC6657C\n" 
     1000                "B       loc_FFC663C4\n" 
     1001"loc_FFC661A4:\n" 
    10601002                "CMP     R4, LR\n" 
    1061                 "BEQ     loc_FFC659BC\n" 
    1062                 "BGT     loc_FFC65988\n" 
     1003                "BEQ     loc_FFC66200\n" 
     1004                "BGT     loc_FFC661CC\n" 
    10631005                "CMP     R4, R6\n" 
    1064                 "BEQ     loc_FFC659A4\n" 
     1006                "BEQ     loc_FFC661E8\n" 
    10651007                "CMP     R4, R1\n" 
    1066                 "BEQ     loc_FFC659D4\n" 
    1067 "loc_FFC6597C:\n" 
     1008                "BEQ     loc_FFC66218\n" 
     1009"loc_FFC661C0:\n" 
    10681010                "CMP     R4, R3\n" 
    1069                 "BNE     loc_FFC65B80\n" 
    1070                 "B       loc_FFC65998\n" 
    1071 "loc_FFC65988:\n" 
     1011                "BNE     loc_FFC663C4\n" 
     1012                "B       loc_FFC661DC\n" 
     1013"loc_FFC661CC:\n" 
    10721014                "CMP     R4, R0\n" 
    1073                 "BEQ     loc_FFC659C8\n" 
    1074 "loc_FFC65990:\n" 
     1015                "BEQ     loc_FFC6620C\n" 
     1016"loc_FFC661D4:\n" 
    10751017                "CMP     R4, R2\n" 
    1076                 "BNE     loc_FFC65B80\n" 
    1077 "loc_FFC65998:\n" 
    1078                 "BL      sub_FFC65D9C\n" 
    1079                 "BL      sub_FFC65D14\n" 
    1080                 "B       loc_FFC65B30\n" 
    1081 "loc_FFC659A4:\n" 
    1082                 "BL      sub_FFC18464\n" 
     1018                "BNE     loc_FFC663C4\n" 
     1019"loc_FFC661DC:\n" 
     1020                "BL      sub_FFC665E4\n" 
     1021                "BL      sub_FFC66558\n" 
     1022                "B       loc_FFC66374\n" 
     1023"loc_FFC661E8:\n" 
     1024                "BL      sub_FFC16BA4\n" 
    10831025                "MOV     R0, #5\n" 
    1084                 "BL      sub_FFC65C2C\n" 
     1026                "BL      sub_FFC66470\n" 
    10851027                "MOV     R0, #0\n" 
    10861028                "STR     R0, [R5,#0xC]\n" 
    1087                 "B       loc_FFC65B30\n" 
    1088 "loc_FFC659BC:\n" 
     1029                "B       loc_FFC66374\n" 
     1030"loc_FFC66200:\n" 
    10891031                "MOV     R0, #5\n" 
    1090                 "BL      sub_FFC65C2C\n" 
    1091                 "B       loc_FFC65A0C\n" 
    1092 "loc_FFC659C8:\n" 
    1093                 "BL      sub_FFC18464\n" 
    1094                 "BL      sub_FFC65D9C\n" 
    1095                 "B       loc_FFC65AC0\n" 
    1096 "loc_FFC659D4:\n" 
    1097                 "BL      sub_FFC18464\n" 
    1098                 "BL      sub_FFC65D9C\n" 
    1099                 "B       loc_FFC65A20\n" 
    1100 "loc_FFC659E0:\n" 
    1101                 "BL      sub_FFC65C2C\n" 
    1102                 "B       loc_FFC65B30\n" 
    1103 "loc_FFC659E8:\n" 
     1032                "BL      sub_FFC66470\n" 
     1033                "B       loc_FFC66250\n" 
     1034"loc_FFC6620C:\n" 
     1035                "BL      sub_FFC16BA4\n" 
     1036                "BL      sub_FFC665E4\n" 
     1037                "B       loc_FFC66304\n" 
     1038"loc_FFC66218:\n" 
     1039                "BL      sub_FFC16BA4\n" 
     1040                "BL      sub_FFC665E4\n" 
     1041                "B       loc_FFC66264\n" 
     1042"loc_FFC66224:\n" 
     1043                "BL      sub_FFC66470\n" 
     1044                "B       loc_FFC66374\n" 
     1045"loc_FFC6622C:\n" 
    11041046                "CMP     R4, LR\n" 
    1105                 "BEQ     loc_FFC65A0C\n" 
    1106                 "BGT     loc_FFC65A00\n" 
     1047                "BEQ     loc_FFC66250\n" 
     1048                "BGT     loc_FFC66244\n" 
    11071049                "CMP     R4, R1\n" 
    1108                 "BNE     loc_FFC6597C\n" 
    1109                 "B       loc_FFC65A20\n" 
    1110 "loc_FFC65A00:\n" 
     1050                "BNE     loc_FFC661C0\n" 
     1051                "B       loc_FFC66264\n" 
     1052"loc_FFC66244:\n" 
    11111053                "CMP     R4, R0\n" 
    1112                 "BNE     loc_FFC65990\n" 
    1113                 "B       loc_FFC65AC0\n" 
    1114 "loc_FFC65A0C:\n" 
     1054                "BNE     loc_FFC661D4\n" 
     1055                "B       loc_FFC66304\n" 
     1056"loc_FFC66250:\n" 
    11151057                "MOV     R0, R7\n" 
    1116                 "BL      sub_FFC65D68\n" 
    1117                 "B       loc_FFC65B30\n" 
    1118 "loc_FFC65A18:\n" 
     1058                "BL      sub_FFC665B0\n" 
     1059                "B       loc_FFC66374\n" 
     1060"loc_FFC6625C:\n" 
    11191061                "CMP     R4, R1\n" 
    1120                 "BNE     loc_FFC65B80\n" 
    1121 "loc_FFC65A20:\n" 
     1062                "BNE     loc_FFC663C4\n" 
     1063"loc_FFC66264:\n" 
    11221064                "MOV     R0, #8\n" 
    1123                 "B       loc_FFC659E0\n" 
    1124 "loc_FFC65A28:\n" 
     1065                "B       loc_FFC66224\n" 
     1066"loc_FFC662D0:\n" 
    11251067                "CMP     R4, R0\n" 
    1126                 "BEQ     loc_FFC65AC0\n" 
    1127                 "BGT     loc_FFC65AAC\n" 
     1068                "BEQ     loc_FFC66304\n" 
     1069                "BGT     loc_FFC662F0\n" 
    11281070                "CMP     R4, R3\n" 
    1129                 "BEQ     loc_FFC65910\n" 
     1071                "BEQ     loc_FFC66154\n" 
    11301072                "CMP     R4, LR\n" 
    1131                 "BEQ     loc_FFC65A0C\n" 
    1132                 "B       loc_FFC65B80\n" 
    1133 "loc_FFC65AAC:\n" 
     1073                "BEQ     loc_FFC66250\n" 
     1074                "B       loc_FFC663C4\n" 
     1075"loc_FFC662F0:\n" 
    11341076                "CMP     R4, R2\n" 
    11351077                "SUBNE   R12, R4, #0x4000\n" 
    11361078                "SUBNES  R12, R12, #0xE\n" 
    1137                 "BEQ     loc_FFC65910\n" 
    1138                 "B       loc_FFC65B80\n" 
    1139 "loc_FFC65AC0:\n" 
     1079                "BEQ     loc_FFC66154\n" 
     1080                "B       loc_FFC663C4\n" 
     1081"loc_FFC66304:\n" 
    11401082                "MOV     R0, #7\n" 
    1141                 "B       loc_FFC659E0\n" 
    1142 "loc_FFC65AC8:\n" 
     1083                "B       loc_FFC66224\n" 
     1084"loc_FFC6630C:\n" 
    11431085                "CMP     R4, R3\n" 
    1144                 "BEQ     loc_FFC65AE0\n" 
     1086                "BEQ     loc_FFC66324\n" 
    11451087                "CMP     R4, LR\n" 
    1146                 "BEQ     loc_FFC65A0C\n" 
     1088                "BEQ     loc_FFC66250\n" 
    11471089                "CMP     R4, R2\n" 
    1148                 "BNE     loc_FFC65B80\n" 
    1149 "loc_FFC65AE0:\n" 
    1150                 "BL      sub_FFC65D14\n" 
    1151                 "MOV     R0, #0\n" 
    1152                 "BL      sub_FFC64EFC\n" 
    1153                 "B       loc_FFC65B30\n" 
    1154 "loc_FFC65AF0:\n" 
     1090                "BNE     loc_FFC663C4\n" 
     1091"loc_FFC66324:\n" 
     1092                "BL      sub_FFC66558\n" 
     1093                "MOV     R0, #0\n" 
     1094                "BL      sub_FFC65738\n" 
     1095                "B       loc_FFC66374\n" 
     1096"loc_FFC66334:\n" 
    11551097                "SUB     R12, R4, #0x800\n" 
    11561098                "SUBS    R12, R12, #0x4A\n" 
    1157                 "BEQ     loc_FFC65B38\n" 
     1099                "BEQ     loc_FFC6637C\n" 
    11581100                "CMP     R4, R1\n" 
    1159                 "BEQ     loc_FFC65B70\n" 
     1101                "BEQ     loc_FFC663B4\n" 
    11601102                "CMP     R4, R0\n" 
    1161                 "BEQ     loc_FFC65B60\n" 
     1103                "BEQ     loc_FFC663A4\n" 
    11621104                "SUB     R12, R4, #0x3100\n" 
    11631105                "SUBS    R12, R12, #0x2A\n" 
    1164                 "BNE     loc_FFC65B80\n" 
    1165                 "BL      sub_FFC65CCC\n" 
     1106                "BNE     loc_FFC663C4\n" 
     1107                "BL      sub_FFC66510\n" 
    11661108                "LDR     R0, [R5,#0x14]\n" 
    11671109                "CMP     R0, #0\n" 
    1168                 "BNE     loc_FFC65B30\n" 
    1169                 "BL      sub_FFC65CE8_my\n"  //----------------> 
    1170                 "BL      sub_FFD22594\n" 
    1171 "loc_FFC65B30:\n" 
     1110                "BNE     loc_FFC66374\n" 
     1111                "BL      sub_FFC6652C_my\n"                             // Continue here EntryActionOnMoving 
     1112                "BL      sub_FFD32080\n" 
     1113"loc_FFC66374:\n" 
    11721114                "MOV     R0, #0\n" 
    11731115                "LDMFD   SP!, {R4-R8,PC}\n" 
    1174 "loc_FFC65B38:\n" 
    1175                 "BL      sub_FFC65CCC\n" 
     1116"loc_FFC6637C:\n" 
     1117                "BL      sub_FFC66510\n" 
    11761118                "LDR     R0, =0x8007\n" 
    11771119                "MOV     R1, #0\n" 
    1178                 "BL      sub_FFC5CA38\n" 
    1179                 "BL      sub_FFD214B8\n" 
    1180                 "BL      sub_FFC65D14\n" 
    1181                 "BL      sub_FFD22594\n" 
    1182                 "BL      sub_FFC64DB8\n" 
    1183                 "MOV     R0, #0\n" 
    1184                 "B       loc_FFC659E0\n" 
    1185 "loc_FFC65B60:\n" 
    1186                 "BL      sub_FFC65CCC\n" 
    1187                 "BL      sub_FFD214B8\n" 
    1188                 "BL      sub_FFD22594\n" 
    1189                 "B       loc_FFC65918\n" 
    1190 "loc_FFC65B70:\n" 
    1191                 "BL      sub_FFC65CCC\n" 
    1192                 "BL      sub_FFD214B8\n" 
    1193                 "BL      sub_FFD22594\n" 
    1194                 "B       loc_FFC65910\n" 
    1195 "loc_FFC65B80:\n" 
     1120                "BL      sub_FFC5D14C\n"                                        // j_PTM_SetCurrentItem 
     1121                "BL      sub_FFD310D4\n" 
     1122                "BL      sub_FFC66558\n" 
     1123                "BL      sub_FFD32080\n" 
     1124                "BL      sub_FFC655F4\n" 
     1125                "MOV     R0, #0\n" 
     1126                "B       loc_FFC66224\n" 
     1127"loc_FFC663A4:\n" 
     1128                "BL      sub_FFC66510\n" 
     1129                "BL      sub_FFD310D4\n" 
     1130                "BL      sub_FFD32080\n" 
     1131                "B       loc_FFC6615C\n" 
     1132"loc_FFC663B4:\n" 
     1133                "BL      sub_FFC66510\n" 
     1134                "BL      sub_FFD310D4\n" 
     1135                "BL      sub_FFD32080\n" 
     1136                "B       loc_FFC66154\n" 
     1137"loc_FFC663C4:\n" 
    11961138                "MOV     R0, #1\n" 
    11971139                "LDMFD   SP!, {R4-R8,PC}\n" 
    1198                 ".ltorg\n"   
    1199  ); 
    1200 }  
    1201  
    1202  
    1203  
    1204  
    1205  
    1206  
    1207  
    1208  
    1209 void __attribute__((naked,noinline)) sub_FFC65DC0_my(){  
    1210  asm volatile( 
    1211                 "LDR     R3, =0x5E5C\n" 
     1140                ".ltorg\n" 
     1141 ); 
     1142} // #fe 
     1143 
     1144// subs used in the sub above :  
     1145//sub_FFC66608_my 
     1146//sub_FFC65F8C_my 
     1147//sub_FFC6652C_my 
     1148 
     1149 
     1150 
     1151 
     1152void __attribute__((naked,noinline)) sub_FFC66608_my(){ 
     1153 asm volatile( 
     1154                "LDR     R3, =0x5BB0\n" 
    12121155                "LDR     R12, =0x2006\n" 
    12131156                "STMFD   SP!, {R4,LR}\n" 
     
    12151158                "LDR     R2, [R3,#0x14]\n" 
    12161159                "CMP     R0, R12\n" 
    1217                 "BEQ     loc_FFC65E34\n" 
    1218                 "BGT     loc_FFC65E00\n" 
     1160                "BEQ     loc_FFC6667C\n" 
     1161                "BGT     loc_FFC66648\n" 
    12191162                "SUB     R12, R0, #0x900\n" 
    12201163                "SUBS    R12, R12, #0xA2\n" 
    1221                 "BEQ     loc_FFC65E58\n" 
     1164                "BEQ     loc_FFC666A0\n" 
    12221165                "SUB     R12, R0, #0x1000\n" 
    12231166                "SUBS    R12, R12, #0x51\n" 
    1224                 "BNE     loc_FFC65E7C\n" 
    1225                 "BL      sub_FFC65D34\n" 
    1226                 "B       loc_FFC65E74\n" 
    1227 "loc_FFC65E00:\n" 
     1167                "BNE     loc_FFC666C4\n" 
     1168                "BL      sub_FFC6657C\n" 
     1169                "B       loc_FFC666BC\n" 
     1170"loc_FFC66648:\n" 
    12281171                "SUB     R12, R0, #0x3000\n" 
    12291172                "SUBS    R12, R12, #7\n" 
    1230                 "BEQ     loc_FFC65E70\n" 
     1173                "BEQ     loc_FFC666B8\n" 
    12311174                "SUB     R12, R0, #0x3100\n" 
    12321175                "SUBS    R12, R12, #0x4B\n" 
    1233                 "BNE     loc_FFC65E7C\n" 
     1176                "BNE     loc_FFC666C4\n" 
    12341177                "CMP     R2, #0\n" 
    1235                 "BNE     loc_FFC65E74\n" 
     1178                "BNE     loc_FFC666BC\n" 
    12361179                "LDR     R0, [R3,#8]\n" 
    12371180                "ORRS    R0, R0, R1\n" 
    1238                 "BEQ     loc_FFC65E40\n" 
    1239                 "BL      sub_FFC65754_my\n"  //------------> 
    1240                 "B       loc_FFC65E74\n" 
    1241 "loc_FFC65E34:\n" 
     1181                "BEQ     loc_FFC66688\n" 
     1182                "BL      sub_FFC65F8C_my\n"                             // Continue here 
     1183                "B       loc_FFC666BC\n" 
     1184"loc_FFC6667C:\n" 
    12421185                "CMP     R2, #0\n" 
    1243                 "BLEQ    sub_FFC64588\n" 
    1244                 "B       loc_FFC65E74\n" 
    1245 "loc_FFC65E40:\n" 
     1186                "BLEQ    sub_FFC64D48\n" 
     1187                "B       loc_FFC666BC\n" 
     1188"loc_FFC66688:\n" 
    12461189                "LDR     R0, [R3,#4]\n" 
    12471190                "CMP     R0, #0\n" 
    12481191                "MOVNE   R0, #3\n" 
    1249                 "BNE     loc_FFC65E68\n" 
    1250                 "BL      sub_FFC65D14\n" 
    1251                 "B       loc_FFC65E74\n" 
    1252 "loc_FFC65E58:\n" 
     1192                "BNE     loc_FFC666B0\n" 
     1193                "BL      sub_FFC66558\n" 
     1194                "B       loc_FFC666BC\n" 
     1195"loc_FFC666A0:\n" 
    12531196                "CMP     R1, #0\n" 
    1254                 "BNE     loc_FFC65E74\n" 
    1255                 "BL      sub_FFC1806C\n" 
     1197                "BNE     loc_FFC666BC\n" 
     1198                "BL      sub_FFC16760\n" 
    12561199                "MOV     R0, #2\n" 
    1257 "loc_FFC65E68:\n" 
    1258                 "BL      sub_FFC65C2C\n" 
    1259                 "B       loc_FFC65E74\n" 
    1260 "loc_FFC65E70:\n" 
    1261                 "BL      sub_FFC65D4C\n" 
    1262 "loc_FFC65E74:\n" 
     1200"loc_FFC666B0:\n" 
     1201                "BL      sub_FFC66470\n" 
     1202                "B       loc_FFC666BC\n" 
     1203"loc_FFC666B8:\n" 
     1204                "BL      sub_FFC66594\n" 
     1205"loc_FFC666BC:\n" 
    12631206                "MOV     R0, #0\n" 
    12641207                "LDMFD   SP!, {R4,PC}\n" 
    1265 "loc_FFC65E7C:\n" 
     1208"loc_FFC666C4:\n" 
    12661209                "MOV     R0, #1\n" 
    12671210                "LDMFD   SP!, {R4,PC}\n" 
    12681211 ); 
    1269 }  
    1270  
    1271  
    1272  
    1273  
    1274  
    1275 void __attribute__((naked,noinline)) sub_FFC65754_my(){  
     1212} //#fe 
     1213 
     1214 
     1215 
     1216 
     1217 
     1218void __attribute__((naked,noinline)) sub_FFC65F8C_my(){ 
    12761219 asm volatile( 
    12771220                "STMFD   SP!, {R4,LR}\n" 
    1278                 "LDR     R1, =0xFFC65A48\n" 
     1221                "LDR     R1, =0xFFC6626C\n"                                     // a_entryactionon ; "_EntryActionOnPreMoving" 
    12791222                "MOV     R0, #0x60\n" 
    1280                 "BL      sub_FFC57EC4\n" 
    1281                 "LDR     R4, =0x5E5C\n" 
     1223                "BL      sub_FFC5556C\n" 
     1224                "LDR     R4, =0x5BB0\n" 
    12821225                "LDR     R0, [R4,#0x10]\n" 
    12831226                "CMP     R0, #0\n" 
    12841227                "LDMEQFD SP!, {R4,LR}\n" 
    1285                 "BEQ     sub_FFC65CE8_my\n"  //-------------> 
    1286                 "LDR     R1, =0xFFC65A64\n" 
     1228                "BEQ     sub_FFC6652C_my\n"                                             // Continue here 
     1229                "LDR     R1, =0xFFC66288\n"                                     // a_entryaction_0 ; "_EntryActionOnSelfTimer" 
    12871230                "MOV     R0, #0x60\n" 
    1288                 "BL      sub_FFC57EC4\n" 
    1289                 "BL      sub_FFD225C0\n" 
     1231                "BL      sub_FFC5556C\n" 
     1232                "BL      sub_FFD320AC\n" 
    12901233                "LDR     R0, [R4,#0x18]\n" 
    12911234                "CMP     R0, #1\n" 
    12921235                "MOVNE   R0, #1\n" 
    12931236                "STRNE   R0, [R4,#0x18]\n" 
    1294                 "BLNE    sub_FFC5BF6C\n" 
     1237                "BLNE    sub_FFC5C808\n"                                                        // LockMainPower\n" 
    12951238                "MOV     R0, #9\n" 
    1296                 "BL      sub_FFC65C2C\n" 
     1239                "BL      sub_FFC66470\n" 
    12971240                "LDMFD   SP!, {R4,LR}\n" 
    1298                 "B       sub_FFD21374\n" 
    1299  ); 
    1300 }  
    1301  
    1302  
    1303  
    1304  
    1305  
    1306 void __attribute__((naked,noinline)) sub_FFC65CE8_my(){  
     1241                "B       sub_FFD30F90\n" 
     1242 ); 
     1243} // #fe 
     1244 
     1245 
     1246 
     1247 
     1248void __attribute__((naked,noinline)) sub_FFC6652C_my(){ 
    13071249 asm volatile( 
    13081250                "STMFD   SP!, {R4,LR}\n" 
    1309                 "LDR     R1, =0xFFC65E9C\n" 
     1251                "LDR     R1, =0xFFC666E4\n"                                     // a_entryaction_1 ; "_EntryActionOnMoving" 
    13101252                "MOV     R0, #0x60\n" 
    1311                 "BL      sub_FFC57EC4\n" 
    1312                 "LDR     R1, =0x5E5C\n" 
     1253                "BL      sub_FFC5556C\n" 
     1254                "LDR     R1, =0x5BB0\n" 
    13131255                "MOV     R0, #0\n" 
    13141256                "STR     R0, [R1,#0xC]\n" 
    13151257                "MOV     R0, #4\n" 
    1316                 "BL      sub_FFC65C2C\n" 
     1258                "BL      sub_FFC66470\n" 
    13171259                "LDMFD   SP!, {R4,LR}\n" 
    1318                 "B       sub_FFC65420_my\n" //-------------> 
    1319  ); 
    1320 }  
    1321  
    1322 void __attribute__((naked,noinline)) sub_FFC65420_my(){  
    1323  asm volatile( 
    1324                 "LDR     R0, =0x5E18\n" 
     1260                "B       sub_FFC65C5C_my\n"                     // Continue here 
     1261  
     1262 ); 
     1263} //#fe 
     1264 
     1265void __attribute__((naked,noinline)) sub_FFC65C5C_my(){ 
     1266 asm volatile( 
     1267                "LDR     R0, =0x5B6C\n" 
    13251268                "STMFD   SP!, {R3,LR}\n" 
    13261269                "LDR     R1, [R0,#0x40]\n" 
     
    13281271                "MOVNE   R1, #1\n" 
    13291272                "STRNE   R1, [R0,#0x40]\n" 
    1330                 "BLNE    sub_FFC5BF6C\n" 
     1273                "BLNE    sub_FFC5C808\n"                        // LockMainPower\n" 
    13311274                "MOV     R1, #0\n" 
    13321275                "MOV     R0, #0x80\n" 
    1333                 "BL      sub_FFC661AC\n" 
     1276                "BL      sub_FFC6695C\n" 
    13341277                "MOV     R2, #2\n" 
    13351278                "MOV     R1, SP\n" 
    13361279                "MOV     R0, #0x6B\n" 
    1337                 "BL      sub_FFC59C2C\n" 
     1280                "BL      sub_FFC5819C\n"                        // PT_GetPropertyCaseString_0\n" 
    13381281                "MOV     R2, #2\n" 
    13391282                "MOV     R1, SP\n" 
    13401283                "MOV     R0, #0xA3\n" 
    1341                 "BL      sub_FFC59B24\n" 
    1342                 "BL      sub_FFC4A918\n" 
    1343                 "BL      sub_FFC647FC\n" 
    1344                 "BL      sub_FFC1842C_my\n" //----------------> 
    1345                 "BL      sub_FFC64D70\n" 
     1284                "BL      sub_FFC5809C\n"                        // PT_GetPropertyCaseString\n" 
     1285                "BL      sub_FFC47434\n" 
     1286                "BL      sub_FFC65000\n" 
     1287                "BL      sub_FFC16B74_my\n"             // Continue here (SSAPI:RecordMovie) 
     1288                "BL      sub_FFC655AC\n" 
    13461289                "LDMFD   SP!, {R12,PC}\n" 
    13471290 ); 
    1348 }  
    1349  
    1350  
    1351  
    1352  
    1353  
    1354 void __attribute__((naked,noinline)) sub_FFC1842C_my(){  
     1291} //#fe 
     1292 
     1293 
     1294 
     1295 
     1296 
     1297void __attribute__((naked,noinline)) sub_FFC16B74_my(){ 
    13551298 asm volatile( 
    13561299                "STMFD   SP!, {R4,LR}\n" 
    13571300                "MOV     R4, R0\n" 
    13581301                "MOV     R0, #0x20\n" 
    1359                 "LDR     R1, =0xFFC18554\n" 
    1360                 "BL      sub_FFC57EC4\n" 
    1361                 "BL      sub_FFC189A8\n" 
     1302                "LDR     R1, =0xFFC16C94\n"              // aSsapiRecordmov ; "SSAPI::RecordMovie" 
     1303                "BL      sub_FFC5556C\n" 
     1304                "BL      sub_FFC16FC8\n" 
    13621305                "CMP     R0, #0\n" 
    13631306                "LDMNEFD SP!, {R4,PC}\n" 
    1364                 "MOV     R0, #4\n" 
    1365                 "BL      sub_FFC48200\n" 
    1366                 "BL      sub_FFC4B9CC\n" 
     1307                "BL      sub_FFC48A68\n" 
    13671308                "MOV     R0, R4\n" 
    13681309                "LDMFD   SP!, {R4,LR}\n" 
    1369                 "B       sub_FFC4DB58_my\n" //-----------------> 
    1370  ); 
    1371 }  
    1372  
    1373  
    1374  
    1375  
    1376  
    1377  
    1378  
    1379  
    1380 void __attribute__((naked,noinline)) sub_FFC4DB58_my(){  
     1310                "B       sub_FFC4AB5C_my\n"             // Continue here 
     1311 ); 
     1312} // #fe 
     1313 
     1314 
     1315 
     1316void __attribute__((naked,noinline)) sub_FFC4AB5C_my(){ 
    13811317 asm volatile( 
    13821318                "STMFD   SP!, {R4-R8,LR}\n" 
     
    13861322                "MOV     R5, #0\n" 
    13871323                "STR     R0, [SP,#0x34]\n" 
    1388                 "BL      sub_FFC4DB28\n" 
    1389                 "CMP     R0, #0\n" 
    1390                 "LDRNE   R1, =0x13B\n" 
    1391                 "BNE     loc_FFC4DD04\n" 
    1392                 "LDR     R4, =0x56B8\n" 
    1393                 "MOV     R1, #0x1E\n" 
    1394                 "LDR     R0, [R4,#0xC]\n" 
    1395                 "BL      sub_FFC18E20\n" 
    1396                 "BL      sub_FFC59DBC\n" 
     1324                "BL      sub_FFC4AB2C\n" 
     1325                "CMP     R0, #0\n" 
     1326                "LDRNE   R1, =0x163\n" 
     1327                "BNE     loc_FFC4AD08\n" 
     1328                "LDR     R4, =0x52E4\n" 
     1329                "MOV     R1, #0x5E\n" 
     1330                "LDR     R0, [R4,#8]\n" 
     1331                "BL      sub_FFC173FC\n" 
     1332                "BL      sub_FFC5832C\n" 
    13971333                "STR     R0, [R4,#4]\n" 
    13981334                "MOV     R0, #0\n" 
    1399                 "BL      sub_FFC55F0C\n" 
     1335                "BL      sub_FFC52170\n" 
    14001336                "STR     R0, [SP,#0x28]\n" 
    14011337                "ADD     R0, SP, #0x28\n" 
    14021338                "MOV     R1, SP\n" 
    1403                 "BL      sub_FFC56058\n" 
     1339                "BL      sub_FFC522BC\n" 
    14041340                "MOV     R0, SP\n" 
    1405                 "BL      sub_FFC55F40\n" 
     1341                "BL      sub_FFC521A4\n" 
    14061342                "STR     R0, [SP,#0x2C]\n" 
    14071343                "LDR     R0, [R4,#4]\n" 
     
    14091345                "ADD     R2, SP, #0x2C\n" 
    14101346                "MOV     R1, #0x34\n" 
    1411                 "BL      sub_FFC5A0DC\n" 
     1347                "BL      sub_FFC58640\n" 
    14121348                "LDR     R7, [SP,#0x2C]\n" 
    1413                 "BL      sub_FFC4E080\n" 
     1349                "BL      sub_FFC4B04C\n" 
    14141350                "MOV     R6, #0\n" 
    14151351                "ADD     R1, SP, #0x28\n" 
     
    14171353                "STR     R6, [SP,#0x2C]\n" 
    14181354                "STR     R6, [SP,#0x28]\n" 
    1419                 "BL      sub_FFC21C3C\n" 
     1355                "BL      sub_FFC1F6E8\n" 
    14201356                "LDR     R0, [R4,#4]\n" 
    14211357                "MOV     R3, #2\n" 
    14221358                "ADD     R2, SP, #0x2C\n" 
    14231359                "MOV     R1, #0x2F\n" 
    1424                 "BL      sub_FFC5A0DC\n" 
     1360                "BL      sub_FFC58640\n" 
    14251361                "LDR     R0, [R4,#4]\n" 
    14261362                "MOV     R3, #2\n" 
    14271363                "ADD     R2, SP, #0x28\n" 
    14281364                "MOV     R1, #0x2D\n" 
    1429                 "BL      sub_FFC5A0DC\n" 
     1365                "BL      sub_FFC58640\n" 
    14301366                "ADD     R1, SP, #0x28\n" 
    14311367                "ADD     R0, SP, #0x2C\n" 
    1432                 "BL      sub_FFC24B70\n" 
     1368                "BL      sub_FFC23048\n" 
    14331369                "LDR     R0, [R4,#4]\n" 
    14341370                "MOV     R3, #2\n" 
    14351371                "ADD     R2, SP, #0x2C\n" 
    14361372                "MOV     R1, #0x30\n" 
    1437                 "BL      sub_FFC5A0DC\n" 
     1373                "BL      sub_FFC58640\n" 
    14381374                "ADD     R1, SP, #0x28\n" 
    14391375                "ADD     R0, SP, #0x2C\n" 
    1440                 "BL      sub_FFC22400\n" 
     1376                "BL      sub_FFC1FEC0\n" 
    14411377                "LDR     R0, [R4,#4]\n" 
    14421378                "MOV     R3, #2\n" 
    14431379                "ADD     R2, SP, #0x28\n" 
    14441380                "MOV     R1, #0x2E\n" 
    1445                 "BL      sub_FFC5A0DC\n" 
     1381                "BL      sub_FFC58640\n" 
    14461382                "LDR     R0, [R4,#4]\n" 
    14471383                "MOV     R3, #2\n" 
    14481384                "ADD     R2, SP, #0x2C\n" 
    14491385                "MOV     R1, #0xB8\n" 
    1450                 "BL      sub_FFC5A188\n" 
     1386                "BL      sub_FFC586EC\n" 
    14511387                "TST     R0, #1\n" 
    1452                 "LDRNE   R1, =0x11D\n" 
    1453                 "LDRNE   R0, =0xFFC4DF7C\n" 
    1454                 "BLNE    sub_FFC0C098\n" 
     1388                "LDRNE   R1, =0x142\n" 
     1389                "LDRNE   R0, =0xFFC4AF80\n"                             // aSsmovierec_c ; "SsMovieRec.c" 
     1390                "BLNE    sub_FFC0BDB8\n"                                        //      DebugAssert 
    14551391                "LDRH    R0, [SP,#0x2C]\n" 
    14561392                "MOV     R3, #4\n" 
     
    14611397                "LDR     R0, [R4,#4]\n" 
    14621398                "MOV     R1, #0x92\n" 
    1463                 "BL      sub_FFC5A0DC\n" 
     1399                "BL      sub_FFC58640\n" 
    14641400                "MOV     R2, #1\n" 
    14651401                "ADD     R1, SP, #0x34\n" 
    14661402                "MOV     R0, #0xFA\n" 
    1467                 "BL      sub_FFC59C2C\n" 
     1403                "BL      sub_FFC5819C\n"                                // PT_GetPropertyCaseString 
    14681404                "TST     R0, #1\n" 
    1469                 "LDRNE   R1, =0x152\n" 
    1470                 "LDRNE   R0, =0xFFC4DF7C\n" 
    1471                 "BLNE    sub_FFC0C098\n" 
     1405                "LDRNE   R1, =0x17A\n" 
     1406                "LDRNE   R0, =0xFFC4AF80\n"                     // aSsmovierec_c ; "SsMovieRec.c" 
     1407                "BLNE    sub_FFC0BDB8\n"                                // DebugAssert 
    14721408                "LDRB    R0, [SP,#0x34]\n" 
    14731409                "MOV     R3, R8\n" 
     
    14761412                "ADD     R0, SP, #0x30\n" 
    14771413                "STR     R7, [SP]\n" 
    1478                 "BL      sub_FFCE6924\n" 
     1414                "BL      sub_FFCEBB1C\n" 
    14791415                "TST     R0, #1\n" 
    1480                 "LDRNE   R1, =0x156\n" 
    1481                 "BNE     loc_FFC4DD04\n" 
    1482                 "LDR     R0, =0x1926C\n" 
     1416                "LDRNE   R1, =0x17E\n" 
     1417                "BNE     loc_FFC4AD08\n" 
     1418                "LDR     R0, =0x18370\n" 
    14831419                "LDR     R1, [SP,#0x30]\n" 
    14841420                "MOV     R2, #0x10\n" 
    1485                 "BL      sub_FFCDCDE8\n" 
     1421                "BL      sub_FFCDE9C0\n" 
    14861422                "TST     R0, #1\n" 
    1487                 "BEQ     loc_FFC4DD14\n" 
    1488                 "LDR     R1, =0x15E\n" 
    1489 "loc_FFC4DD04:\n" 
    1490                 "LDR     R0, =0xFFC4DF7C\n" 
    1491                 "BL      sub_FFC0C098\n" 
    1492 "loc_FFC4DD0C:\n" 
     1423                "BEQ     loc_FFC4AD18\n" 
     1424                "LDR     R1, =0x186\n" 
     1425"loc_FFC4AD08:\n" 
     1426                "LDR     R0, =0xFFC4AF80\n" //                  aSsmovierec_c ; "SsMovieRec.c" 
     1427                "BL      sub_FFC0BDB8\n"                        // DebugAssert 
     1428"loc_FFC4AD10:\n" 
    14931429                "ADD     SP, SP, #0x38\n" 
    14941430                "LDMFD   SP!, {R4-R8,PC}\n" 
    1495 "loc_FFC4DD14:\n" 
     1431"loc_FFC4AD18:\n" 
    14961432                "LDR     R0, [R4,#4]\n" 
    14971433                "MOV     R3, #4\n" 
    14981434                "ADD     R2, SP, #0x30\n" 
    14991435                "MOV     R1, #0x2B\n" 
    1500                 "BL      sub_FFC5A0DC\n" 
    1501                 "BL      sub_FFC674DC\n" 
     1436                "BL      sub_FFC58640\n" 
     1437                "BL      sub_FFC66B40\n" 
    15021438                "LDRSB   R1, [SP,#0x34]\n" 
    15031439                "CMP     R0, R1\n" 
    15041440                "MOVEQ   R7, #0\n" 
    1505                 "BEQ     loc_FFC4DD68\n" 
    1506                 "LDR     R5, =0x1926C\n" 
     1441                "BEQ     loc_FFC4AD6C\n" 
     1442                "LDR     R5, =0x18370\n" 
    15071443                "MOV     R0, R5\n" 
    1508                 "BL      sub_FFC67658\n" 
     1444                "BL      sub_FFC66CBC\n" 
    15091445                "MOV     R8, R0\n" 
    1510                 "BL      sub_FFC959E4\n" 
     1446                "BL      sub_FFC95774\n" 
    15111447                "CMP     R8, R0\n" 
    15121448                "MOV     R7, R0\n" 
    1513                 "LDRLS   R1, =0x16B\n" 
    1514                 "LDRLS   R0, =0xFFC4DF7C\n" 
    1515                 "BLLS    sub_FFC0C098\n" 
     1449                "LDRLS   R1, =0x193\n" 
     1450                "LDRLS   R0, =0xFFC4AF80\n"                     // aSsmovierec_c ; "SsMovieRec.c" 
     1451                "BLLS    sub_FFC0BDB8\n"                                        // DebugAssert 
    15161452                "SUB     R7, R8, R7\n" 
    1517 "loc_FFC4DD68:\n" 
    1518                 "BL      sub_FFC49C20_my\n"   //-----------------------> 
    1519                 "LDR     R0, =0x19290\n" 
     1453"loc_FFC4AD6C:\n" 
     1454                "BL      sub_FFC46780_my\n"                                     // Continue here  (taskcreate_MovieRecord) 
     1455                "LDR     R0, =0x18394\n" 
    15201456                "LDRH    R3, [R0,#0x46]\n" 
    15211457                "LDRH    R2, [R0,#0x44]\n" 
    15221458                "LDR     R1, [R0,#0x40]\n" 
    15231459                "LDR     R0, [R0,#0x3C]\n" 
    1524                 "BL      sub_FFC48CA0\n" 
     1460                "BL      sub_FFC45800\n" 
    15251461                "MOV     R3, #0\n" 
    1526                 "LDR     R2, =0xFFC4DAF0\n" 
     1462                "LDR     R2, =0xFFC4AAF4\n" 
    15271463                "MOV     R1, #0\n" 
    1528                 "LDR     R0, =0xFFC4DB04\n" 
     1464                "LDR     R0, =0xFFC4AB08\n" 
    15291465                "ADD     R8, SP, #0xC\n" 
    15301466                "STMIA   R8, {R0-R3}\n" 
    1531                 "LDR     R2, =0xFFC4DB14\n" 
    1532                 "LDR     R1, =0xFFC4DB00\n" 
     1467                "LDR     R2, =0xFFC4AB18\n" 
     1468                "LDR     R1, =0xFFC4AB04\n" 
    15331469                "STMEA   SP, {R1-R3}\n" 
    15341470                "LDR     R1, [R4,#4]\n" 
     
    15361472                "MOV     R2, R7\n" 
    15371473                "MOV     R0, R5\n" 
    1538                 "BL      sub_FFC48FFC\n" 
    1539                 "LDR     R0, [R4,#0xC]\n" 
     1474                "BL      sub_FFC45B5C\n" 
     1475                "LDR     R0, [R4,#8]\n" 
    15401476                "MOV     R1, #0x20\n" 
    1541                 "BL      sub_FFC18DEC\n" 
    1542                 "B       loc_FFC4DD0C\n" 
    1543  ); 
    1544 }  
    1545  
    1546  
    1547 void __attribute__((naked,noinline)) sub_FFC49C20_my(){  
     1477                "BL      sub_FFC173C8\n" 
     1478                "B       loc_FFC4AD10\n" 
     1479 ); 
     1480} // #fe 
     1481 
     1482void __attribute__((naked,noinline)) sub_FFC46780_my(){ 
    15481483 asm volatile( 
    15491484                "STMFD   SP!, {R3-R9,LR}\n" 
    1550                 "LDR     R5, =0x5538\n" 
     1485                "LDR     R5, =0x5178\n" 
    15511486                "MOV     R6, #0\n" 
    15521487                "STR     R6, [R5,#0x20]\n" 
     
    15541489                "LDR     R8, =0x2710\n" 
    15551490                "CMP     R0, #0\n" 
    1556                 "BNE     loc_FFC49CD8\n" 
     1491                "BNE     loc_FFC46838\n" 
    15571492                "MOV     R0, #1\n" 
    15581493                "STR     R0, [R5,#4]\n" 
    15591494                "MOV     R0, #0\n" 
    15601495                "MOV     R1, #0\n" 
    1561                 "BL      sub_FFC0BF14\n" 
     1496                "BL      sub_FFC0BC34\n" 
    15621497                "STR     R0, [R5,#0x10]\n" 
    15631498                "MOV     R0, #0\n" 
    15641499                "MOV     R1, #0\n" 
    1565                 "BL      sub_FFC0BF14\n" 
     1500                "BL      sub_FFC0BC34\n" 
    15661501                "STR     R0, [R5,#0x14]\n" 
    15671502                "MOV     R0, #0\n" 
    15681503                "MOV     R1, #0xA\n" 
    1569                 "BL      sub_FFC0BECC\n" 
     1504                "BL      sub_FFC0BBEC\n" 
    15701505                "STR     R0, [R5,#0x18]\n" 
    15711506                "MOV     R0, #0\n" 
    15721507                "MOV     R1, #0xA\n" 
    1573                 "BL      sub_FFC0BECC\n" 
    1574                 "LDR     R7, =0x18E70\n" 
     1508                "BL      sub_FFC0BBEC\n" 
     1509                "LDR     R7, =0x17F84\n" 
    15751510                "MOV     R4, #9\n" 
    15761511                "ADD     R9, R4, #0x2D4\n" 
    15771512                "STR     R0, [R5,#0x1C]\n" 
    1578 "loc_FFC49C94:\n" 
     1513"loc_FFC467F4:\n" 
    15791514                "RSB     R0, R4, R4,LSL#3\n" 
    15801515                "STR     R6, [R7,R0,LSL#2]\n" 
     
    15821517                "STR     R9, [SP]\n" 
    15831518                "LDR     R0, [R5,#0x1C]\n" 
    1584                 "LDR     R3, =0xFFC48F9C\n" 
     1519                "LDR     R3, =0xFFC45AFC\n"                             // aMovierecorder_ 
    15851520                "MOV     R2, R8\n" 
    1586                 "BL      sub_FFC0BFD8\n" 
     1521                "BL      sub_FFC0BCF8\n" 
    15871522                "SUBS    R4, R4, #1\n" 
    1588                 "BPL     loc_FFC49C94\n" 
     1523                "BPL     loc_FFC467F4\n" 
    15891524                "MOV     R3, #0\n" 
    15901525                "STR     R3, [SP]\n" 
    1591                 "LDR     R3, =MovieRecord_Task_my\n"    // -----------------> 
     1526                "LDR     R3, =MovieRecord_Task_my\n"                    // FFC46678 task_MovieRecord 
    15921527                "MOV     R2, #0x1000\n" 
    15931528                "MOV     R1, #0x14\n" 
    1594                 "LDR     R0, =0xFFC49E28\n"    // "Movierecord" 
    1595                 "BL      sub_FFC0BE98\n" 
    1596 "loc_FFC49CD8:\n" 
    1597                 "BL      sub_FFD071E4\n" 
    1598                 "BL      sub_FFC49D3C\n" 
     1529                "LDR     R0, =0xFFC46988\n"                                                             // aMovierecord ; "MovieRecord" 
     1530                "BL      sub_FFC0BBB8\n"                                                                        // KernelCreateTask 
     1531"loc_FFC46838:\n" 
     1532                "BL      sub_FFD0A4C8\n"                                                                        // taskcreate_AviWrite 
     1533                "BL      sub_FFC4689C\n" 
    15991534                "MOV     R1, R0\n" 
    16001535                "MOV     R0, #0xB\n" 
     
    16021537                "STR     R0, [R1]\n" 
    16031538                "STR     R3, [SP]\n" 
    1604                 "LDR     R3, =0xFFC48F9C\n" 
     1539                "LDR     R3, =0xFFC45AFC\n"                                                     // aMovierecorder_ ; "MovieRecorder.c" 
    16051540                "MOV     R2, R8\n" 
    16061541                "LDR     R0, [R5,#0x18]\n" 
    1607                 "BL      sub_FFC0BFD8\n" 
     1542                "BL      sub_FFC0BCF8\n" 
    16081543                "LDMFD   SP!, {R3-R9,PC}\n" 
    16091544 ); 
    1610 }  
    1611  
    1612  
    1613 void __attribute__((naked,noinline)) MovieRecord_Task_my(){  
     1545} // #fe 
     1546*/ 
     1547 
     1548void __attribute__((naked,noinline)) MovieRecord_Task_my(){ 
    16141549 asm volatile( 
    16151550                "STMFD   SP!, {R2-R8,LR}\n" 
    16161551                "LDR     R8, =0x32B\n" 
    16171552                "LDR     R7, =0x2710\n" 
    1618                 "LDR     R4, =0x5538\n" 
     1553                "LDR     R4, =0x5178\n" 
    16191554                "MOV     R6, #0\n" 
    16201555                "MOV     R5, #1\n" 
    1621 "loc_FFC49B30:\n" 
     1556"loc_FFC46690:\n" 
    16221557                "LDR     R0, [R4,#0x18]\n" 
    16231558                "MOV     R2, #0\n" 
    16241559                "ADD     R1, SP, #4\n" 
    1625                 "BL      sub_FFC19070\n" 
     1560                "BL      sub_FFC1764C\n" 
    16261561                "LDR     R0, [R4,#0x20]\n" 
    16271562                "CMP     R0, #0\n" 
    1628                 "BNE     loc_FFC49C00\n" 
     1563                "BNE     loc_FFC46760\n" 
    16291564                "LDR     R0, [SP,#4]\n" 
    16301565                "LDR     R1, [R0]\n" 
     
    16321567                "CMP     R1, #9\n" 
    16331568                "ADDLS   PC, PC, R1,LSL#2\n" 
    1634                 "B       loc_FFC49C00\n" 
    1635 "loc_FFC49B64:\n" 
    1636                 "B       loc_FFC49BB4\n" 
    1637 "loc_FFC49B68:\n" 
    1638                 "B       loc_FFC49BD4\n" 
    1639 "loc_FFC49B6C:\n" 
    1640                 "B       loc_FFC49BE4\n" 
    1641 "loc_FFC49B70:\n" 
    1642                 "B       loc_FFC49BEC\n" 
    1643 "loc_FFC49B74:\n" 
    1644                 "B       loc_FFC49BBC\n" 
    1645 "loc_FFC49B78:\n" 
    1646                 "B       loc_FFC49BF4\n" 
    1647 "loc_FFC49B7C:\n" 
    1648                 "B       loc_FFC49BC4\n" 
    1649 "loc_FFC49B80:\n" 
    1650                 "B       loc_FFC49C00\n" 
    1651 "loc_FFC49B84:\n" 
    1652                 "B       loc_FFC49BFC\n" 
    1653 "loc_FFC49B88:\n" 
    1654                 "B       loc_FFC49B8C\n" 
    1655 "loc_FFC49B8C:\n" 
    1656                 "LDR     R0, =0xFFC49814\n" 
     1569                "B       loc_FFC46760\n" 
     1570"loc_FFC466C4:\n" 
     1571                "B       loc_FFC46714\n" 
     1572"loc_FFC466C8:\n" 
     1573                "B       loc_FFC46734\n" 
     1574"loc_FFC466CC:\n" 
     1575                "B       loc_FFC46744\n" 
     1576"loc_FFC466D0:\n" 
     1577                "B       loc_FFC4674C\n" 
     1578"loc_FFC466D4:\n" 
     1579                "B       loc_FFC4671C\n" 
     1580"loc_FFC466D8:\n" 
     1581                "B       loc_FFC46754\n" 
     1582"loc_FFC466DC:\n" 
     1583                "B       loc_FFC46724\n" 
     1584"loc_FFC466E0:\n" 
     1585                "B       loc_FFC46760\n" 
     1586"loc_FFC466E4:\n" 
     1587                "B       loc_FFC4675C\n" 
     1588"loc_FFC466E8:\n" 
     1589                "B       loc_FFC466EC\n" 
     1590"loc_FFC466EC:\n" 
     1591                "LDR     R0, =0xFFC46374\n" 
    16571592                "STR     R6, [R4,#0x34]\n" 
    16581593                "STR     R0, [R4,#0xA0]\n" 
    1659                 "LDR     R0, =0xFFC4928C\n" 
    1660                 "LDR     R2, =0xFFC491A8\n" 
    1661                 "LDR     R1, =0x18F98\n" 
     1594                "LDR     R0, =0xFFC45DEC\n" 
     1595                "LDR     R2, =0xFFC45D08\n" 
     1596                "LDR     R1, =0x180AC\n" 
    16621597                "STR     R6, [R4,#0x24]\n" 
    1663                 "BL      sub_FFC2B58C\n" 
     1598                "BL      sub_FFCA2C98\n" 
    16641599                "STR     R5, [R4,#0x38]\n" 
    1665                 "B       loc_FFC49C00\n" 
    1666 "loc_FFC49BB4:\n" 
    1667                 "BL      unlock_optical_zoom\n" //  + 
    1668                 "BL      sub_FFC4990C\n" 
    1669                 "B       loc_FFC49C00\n" 
    1670 "loc_FFC49BBC:\n" 
    1671                 "BL      sub_FFC49614_my\n"  //-------------------> 
    1672                 "B       loc_FFC49C00\n" 
    1673 "loc_FFC49BC4:\n" 
     1600                "B       loc_FFC46760\n" 
     1601"loc_FFC46714:\n" 
     1602                "BL      unlock_optical_zoom\n"         //  + 
     1603                "BL      sub_FFC4646C\n" 
     1604                "B       loc_FFC46760\n" 
     1605"loc_FFC4671C:\n" 
     1606                "BL      sub_FFC46174_my\n"             //-----------------> 
     1607                "B       loc_FFC46760\n" 
     1608"loc_FFC46724:\n" 
    16741609                "LDR     R1, [R0,#0x10]\n" 
    16751610                "LDR     R0, [R0,#4]\n" 
    1676                 "BL      sub_FFD07DF0\n" 
    1677                 "B       loc_FFC49C00\n" 
    1678 "loc_FFC49BD4:\n" 
     1611                "BL      sub_FFD0B0D4\n" 
     1612                "B       loc_FFC46760\n" 
     1613"loc_FFC46734:\n"