Assembla home | Assembla project page
 

Changeset 453

Show
Ignore:
Timestamp:
07/23/08 00:10:40 (2 years ago)
Author:
phyrephox
Message:

* added video_overrides, SDHC & touchwheel "patch" from mil22 from here: http://chdk.setepontos.com/index.php/topic,1962.msg18265.html#msg18265

-> needs a bit ironing out (supposedly bitrate setting is fubared)

+ added fast movie switches:
it is now possible to quickly change video quality during recording via the up/down buttons
also you can pause a movie by pressing left, unpause it by pressing right
for this feature a new option has been added to the video override menu.

drawbacks: there is no visual feedback yet on quality change/pause/unpause functions
+ new ubasic command: set_movie_status. If you set it to 1, movie will be paused. 2 will unpause movie and 3 will stop movie.

needs proper testing, proper visual representation

thanks to Hacki & ewavr


Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/juciphox/core/conf.c

    r451 r453  
    339339                CONF_INFO(200, conf.raw_exceptions_warn,      CONF_DEF_VALUE, i:1, NULL), 
    340340                CONF_INFO(201, conf.menu_select_first_entry,      CONF_DEF_VALUE, i:1, NULL), 
     341                CONF_INFO(202, conf.fast_movie_control,           CONF_DEF_VALUE, i:1, NULL), 
    341342 
    342343}; 
  • branches/juciphox/core/gui.c

    r451 r453  
    403403      {0x60,LANG_MENU_VIDEO_QUALITY,           MENUITEM_INT|MENUITEM_F_UNSIGNED|MENUITEM_F_MINMAX,  &conf.video_quality, MENU_MINMAX(1, 99)},  
    404404      {0x5c,LANG_MENU_CLEAR_VIDEO_VALUES,    MENUITEM_BOOL,    (int*)&conf.clear_video}, 
     405      {0x5c,LANG_MENU_FAST_SWITCH_VIDEO,   MENUITEM_BOOL,  &conf.fast_movie_control}, 
    405406#if CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 
    406407      {0x5c,LANG_MENU_OPTICAL_ZOOM_IN_VIDEO,   MENUITEM_BOOL,  &conf.unlock_optical_zoom_for_video},                                                     
  • branches/juciphox/core/gui_lang.c

    r448 r453  
    513513"393 \"script\"\n" 
    514514"394 \"scriptless\"\n" 
     515"395 \"Fast Video Control?\"\n" 
    515516; 
    516517 
  • branches/juciphox/core/gui_lang.h

    r448 r453  
    502502#define LANG_MENU_SCRIPTLESS   394 
    503503 
     504#define LANG_MENU_FAST_SWITCH_VIDEO 395 
     505 
    504506//------------------------------------------------------------------- 
    505507 
    506 #define GUI_LANG_ITEMS                  394 
     508#define GUI_LANG_ITEMS                  395 
    507509 
    508510//------------------------------------------------------------------- 
  • branches/juciphox/core/kbd.c

    r451 r453  
    11451145                    return 1; 
    11461146                } 
    1147                 if (conf.fast_ev && kbd_use_up_down_as_fast_ev()) { 
     1147                if ((conf.fast_ev || conf.fast_movie_control) && kbd_use_up_down_left_right_as_fast_switch()) { 
    11481148                    return 1; 
    11491149                } 
     
    11921192} 
    11931193 
    1194 long kbd_use_up_down_as_fast_ev() { 
     1194int kbd_is_blocked() { 
     1195        return kbd_blocked; 
     1196
     1197 
     1198long kbd_use_up_down_left_right_as_fast_switch() { 
     1199            static const char* modes[]={ "0.25x", "0.5x","0.75x", "1x", "1.25x", "1.5x", "1.75x", "2x", "2.5x", "3x"}; 
    11951200    static long key_pressed = 0; 
    11961201if (!(kbd_is_key_pressed(KEY_UP)) && !(kbd_is_key_pressed(KEY_DOWN))) key_pressed = 0; 
     
    12051210            shooting_set_prop(207,shooting_get_prop(207)+(conf.fast_ev_step+1)*16); 
    12061211#endif 
     1212            key_pressed = KEY_UP; 
     1213            return 1; 
     1214        } 
     1215 
     1216    }  
     1217    if (kbd_is_key_pressed(KEY_UP) && (mode_get()&MODE_MASK) == MODE_REC && movie_status == 4 && (canon_shoot_menu_active==0)) { 
     1218 
     1219        if (conf.fast_movie_control && key_pressed == 0) { 
     1220                         
     1221                         
     1222                            conf.video_bitrate+=1; 
     1223    if (conf.video_bitrate<0) 
     1224        conf.video_bitrate=sizeof(modes)/sizeof(modes[0])-1; 
     1225    else if (conf.video_bitrate>=(sizeof(modes)/sizeof(modes[0]))) 
     1226        conf.video_bitrate=sizeof(modes)/sizeof(modes[0])-1; 
     1227    shooting_video_bitrate_change(conf.video_bitrate); 
     1228                         
     1229                         
    12071230            key_pressed = KEY_UP; 
    12081231            return 1; 
     
    12271250 
    12281251    }  
     1252     
     1253       if (kbd_is_key_pressed(KEY_DOWN) && (mode_get()&MODE_MASK) == MODE_REC && movie_status == 4 && (canon_shoot_menu_active==0)) { 
     1254 
     1255             
     1256       if (conf.fast_movie_control && key_pressed == 0) { 
     1257                         
     1258                         
     1259    conf.video_bitrate+=-1; 
     1260    if (conf.video_bitrate<0) 
     1261        conf.video_bitrate=0; 
     1262    else if (conf.video_bitrate>=(sizeof(modes)/sizeof(modes[0]))) 
     1263        conf.video_bitrate=0; 
     1264 
     1265    shooting_video_bitrate_change(conf.video_bitrate); 
     1266 
     1267    return modes[conf.video_bitrate]; 
     1268                         
     1269                         
     1270            key_pressed = KEY_DOWN; 
     1271            return 1; 
     1272        } 
     1273 
     1274    }  
     1275     
     1276       if (kbd_is_key_pressed(KEY_LEFT) && (mode_get()&MODE_MASK) == MODE_REC && movie_status == 4 && (canon_shoot_menu_active==0)) { 
     1277 
     1278             
     1279       if (conf.fast_movie_control && key_pressed == 0) { 
     1280                         
     1281movie_status = 1; 
     1282                         
     1283                         
     1284            key_pressed = KEY_LEFT; 
     1285            return 1; 
     1286        } 
     1287 
     1288    }  
     1289     
     1290       if (kbd_is_key_pressed(KEY_RIGHT) && (mode_get()&MODE_MASK) == MODE_REC && movie_status == 1 && (canon_shoot_menu_active==0)) { 
     1291 
     1292             
     1293       if (conf.fast_movie_control && key_pressed == 0) { 
     1294                         
     1295movie_status = 4; 
     1296                         
     1297                         
     1298            key_pressed = KEY_RIGHT; 
     1299            return 1; 
     1300        } 
     1301 
     1302    }  
     1303     
    12291304    return 0; 
    12301305} 
  • branches/juciphox/include/camera.h

    r451 r453  
    461461    #undef  CAM_HAS_USER_TV_MODES 
    462462    #define CAM_SHOW_OSD_IN_SHOOT_MENU  1 
    463     #undef  CAM_CHDK_HAS_EXT_VIDEO_MENU 
     463        #define CAM_CAN_UNLOCK_OPTICAL_ZOOM_IN_VIDEO 1 
     464    #undef  CAM_CAN_MUTE_MICROPHONE 
    464465     
    465466//---------------------------------------------------------- 
  • branches/juciphox/include/conf.h

    r445 r453  
    134134    int fast_ev; 
    135135    int fast_ev_step; 
     136    int fast_movie_control; 
    136137    int splash_show; 
    137138 
  • branches/juciphox/include/platform.h

    r447 r453  
    295295void kbd_reset_autoclicked_key(); 
    296296long kbd_use_zoom_as_mf(); 
    297 long kbd_use_up_down_as_fast_ev(); 
     297long kbd_use_up_down_left_right_as_fast_switch(); 
    298298void kbd_set_alt_mode_key_mask(long key); 
    299299int get_usb_power(int edge); 
  • branches/juciphox/lang/english.lng

    r448 r453  
    531531393 "script" 
    532532394 "scriptless" 
     533395 "Fast Video Control?" 
  • branches/juciphox/lang/german.lng

    r445 r453  
    525525391 "Warnung bei Ausnahme?" 
    526526392 "Erste Zeile selektiert?" 
     527393 "script" 
     528394 "scriptless" 
     529395 "Schnelle Video Kontrolle?" 
  • branches/juciphox/lib/ubasic/tokenizer.c

    r437 r453  
    144144  {"set_iso",                 TOKENIZER_SET_ISO_MODE}, //FOR COMPATIBILITY 
    145145  {"set_led",                 TOKENIZER_SET_LED}, 
     146  {"set_movie_status",        TOKENIZER_SET_MOVIE_STATUS},   
    146147  {"set_nd_filter",           TOKENIZER_SET_ND_FILTER}, 
    147148  {"set_prop",                TOKENIZER_SET_PROP}, 
  • branches/juciphox/lib/ubasic/tokenizer.h

    r437 r453  
    172172  TOKENIZER_SHOT_HISTO_ENABLE, 
    173173  TOKENIZER_GET_HISTO_RANGE, 
     174  TOKENIZER_SET_MOVIE_STATUS, 
    174175   
    175176} ubasic_token; 
  • branches/juciphox/lib/ubasic/ubasic.c

    r445 r453  
    14191419 
    14201420static void set_ev_statement() 
    1421 
    1422     int to; 
    1423     accept(TOKENIZER_SET_EV); 
    1424     to = expr(); 
    1425         shooting_set_prop(PROPCASE_EV_CORRECTION_1, to); 
    1426         shooting_set_prop(PROPCASE_EV_CORRECTION_2, to); 
     1421        { 
     1422            int to; 
     1423            accept(TOKENIZER_SET_EV); 
     1424            to = expr(); 
     1425                shooting_set_prop(PROPCASE_EV_CORRECTION_1, to); 
     1426                shooting_set_prop(PROPCASE_EV_CORRECTION_2, to); 
     1427            accept_cr(); 
     1428        } 
     1429 
     1430static void set_movie_status_statement() 
     1431
     1432    int to; 
     1433    accept(TOKENIZER_SET_MOVIE_STATUS); 
     1434    to = expr(); 
     1435if (to==1) { 
     1436        if (movie_status == 4) { 
     1437        movie_status = 1; 
     1438}} 
     1439if (to==2) { 
     1440        if (movie_status == 1) { 
     1441        movie_status = 4; 
     1442
     1443
     1444if (to==3) { 
     1445        if (movie_status == 1 || 4) { 
     1446        movie_status = 5; 
     1447}} 
     1448 
     1449 
    14271450    accept_cr(); 
    14281451} 
     
    19421965        set_ev_statement(); 
    19431966   break; 
     1967    
     1968    case TOKENIZER_SET_MOVIE_STATUS: 
     1969        set_movie_status_statement(); 
     1970   break; 
    19441971 
    19451972  case TOKENIZER_WAIT_CLICK: 
  • branches/juciphox/platform/ixus860_sd870/main.c

    r341 r453  
    107107    return 4100; 
    108108} 
    109  
    110 void change_video_tables(int a, int b){ 
    111  
    112 } 
  • branches/juciphox/platform/ixus860_sd870/sub/100c/Makefile

    r379 r453  
    11topdir=../../../../ 
    22 
    3 OBJS=boot.o stubs_min.o stubs_auto.o stubs_entry.o lib.o stubs_entry_2.o capt_seq.o 
    4 STUBS_AUTO_DEPS=boot.c capt_seq.c 
     3OBJS=boot.o stubs_min.o stubs_auto.o stubs_entry.o lib.o stubs_entry_2.o capt_seq.o movie_rec.o touch_wheel.o 
     4STUBS_AUTO_DEPS=boot.c capt_seq.c movie_rec.c touch_wheel.c 
    55 
    66include $(topdir)/platform/makefile_sub.inc 
  • branches/juciphox/platform/ixus860_sd870/sub/100c/boot.c

    r341 r453  
    238238}; //#fe 
    239239 
     240// Extracted method: task_Startup (FF81DC78-FF81DCD0) 
    240241void __attribute__((naked,noinline)) task_Startup_my() { //#fs  
    241242        asm volatile ( 
    242                "STMFD SP!, {R4,LR}    \n" 
    243                 "BL     sub_FF8151CC    \n"       //taskcreate_ClockSave 
     243        "STMFD        SP!, {R4,LR}    \n" 
     244                "BL     _taskcreate_ClockSave    \n" 
    244245                "BL     sub_FF823FA8    \n" 
    245246                "BL     sub_FF820E84    \n" 
     
    251252        CreateTask_spytask(); 
    252253 
     254                //*((int*)0x9C10) = 1; // this turns on wheel debug mode 
     255                //*((int*)0x9C18) = 1; // this completely disables the wheel and buttons 
     256 
    253257        asm volatile ( 
    254258                "BL     sub_FF82BE24    \n" 
    255                 "BL     sub_FF82BCAC   \n" 
     259                "BL     sub_FF82BCAC_my        \n"  // ---------> touch_wheel.c 
    256260                "BL     sub_FF828B4C    \n" 
    257261                "BL     sub_FF82BE28    \n" 
     
    266270                //"BL   nullsub_2       \n" 
    267271                "BL     sub_FF82213C    \n" 
    268                 "BL     sub_FF82B828   \n"       //taskcreate_Bye 
     272                "BL     _taskcreate_Bye        \n" 
    269273                "BL     sub_FF8228D8    \n" 
    270                 "BL     sub_FF822048    \n"       //taskcreate_TempCheck 
    271                 "BL     sub_FF82C8E4   \n"       // !!!divert for SDHC-bootdisk-support 
     274                "BL     _taskcreate_TempCheck    \n" 
     275                "BL     sub_FF82C8E4_my        \n"       //   ---------------> for SDHC and movie rec 
    272276                "BL     sub_FF822004    \n" 
    273277 
     
    393397// SDHC-Boot-Support 
    394398// ----------------- 
    395 // Required subs: 
    396 //   Startup -> FFC1C6C4 -> FFC1C294 ->           FFC5E6C0 -> uAC_Boot -> CreateTask_InitFileModules -> task_InitFileModules -> FFC5A4E8 -> FFC3F0CC -> FFC3EF08 -> FFC3EDA0 
    397 //                           \->FFC5F474 -> FFC5F410 ->/| 
    398 //                   -> StartFactoryModeController =>|| 
    399 // 
    400 // uAC_Boot:                   FFC5E06C 
    401 // CreateTask_InitFileModules: FFC5F7A4  
    402 // task_InitFileModules:       FFC5F754  
    403  
    404 /* 
    405 void __attribute__((naked,noinline)) sub_FFC1C6C4_my() { //#fs   
     399 
     400// Extracted method: sub_FF82C8E4 (FF82C8E4-FF82C928) 
     401// Overridden calls: 
     402//     sub_FF82C3F0 
     403void __attribute__((naked,noinline)) sub_FF82C8E4_my() { //#fs   
     404    asm volatile ( 
     405                "STMFD  SP!, {R4,LR}\n" 
     406                "BL     sub_FF86DC24\n" 
     407                "BL     _IsFactoryMode\n" 
     408                "CMP    R0, #1\n" 
     409                "BNE    loc_FF82C904\n" 
     410                "BL     sub_FF870E44\n" 
     411                "LDMFD  SP!, {R4,LR}\n" 
     412                "B      _StartFactoryModeController\n" 
     413 
     414 
     415        "loc_FF82C904:\n" 
     416                "BL     sub_FF86FE00\n" 
     417                "LDR    R4, =0x1DD0\n" 
     418                "LDR    R0, [R4,#4]\n" 
     419                "CMP    R0, #0\n" 
     420                "LDMNEFD        SP!, {R4,PC}\n" 
     421                "MOV    R1, #0\n" 
     422                "LDR    R0, =sub_FF82C3F0_my\n"    //   ---------------> for SDHC and movie rec 
     423                "BL     _CreateController\n" 
     424                "STR    R0, [R4,#4]\n" 
     425                "LDMFD  SP!, {R4,PC}\n" 
     426    ); 
     427}; //#fe 
     428 
     429// Extracted method: sub_FF82C3F0 (FF82C3F0-FF82C8E0) 
     430// Overridden calls: 
     431//     sub_FF82C1B0 
     432//     sub_FF86FB00 
     433//     sub_FF870B0C 
     434void __attribute__((naked,noinline)) sub_FF82C3F0_my() { 
     435    asm volatile ( 
     436        "     STMFD   SP!, {R3-R11,LR}\n" 
     437        "     LDR     R6, =0x1DD0\n" 
     438        "     MOV     R5, R1\n" 
     439        "     LDR     R0, [R6,#0x14]\n" 
     440        "     MOV     R4, R3\n" 
     441        "     CMP     R0, #1\n" 
     442        "     BNE     loc_FF82C414\n" 
     443        "     BL         sub_FF86E44C\n" 
     444        "     B         loc_FF82C814\n" 
     445 
     446 
     447    "loc_FF82C414:\n"    // CODE XREF: sub_FF82C3F0+18j 
     448        "     LDR     R12, =0x1162\n" 
     449        "     LDR     R10, =0x1005\n" 
     450        "     CMP     R5, R12\n" 
     451        "     MOV     R7, #0\n" 
     452        "     MOV     R8, #1\n" 
     453        "     BEQ     loc_FF82C840\n" 
     454        "     BGT     loc_FF82C568\n" 
     455        "     LDR     R12, =0x1062\n" 
     456        "     CMP     R5, R12\n" 
     457        "     BEQ     loc_FF82C8DC\n" 
     458        "     BGT     loc_FF82C4DC\n" 
     459        "     CMP     R5, R10\n" 
     460        "     BEQ     loc_FF82C86C\n" 
     461        "     BGT     loc_FF82C4B4\n" 
     462        "     LDR     R9, =0x9A3\n" 
     463        "     CMP     R5, R9\n" 
     464        "     ADD     R10, R9, #2\n" 
     465        "     BEQ     loc_FF82C7F4\n" 
     466        "     BGT     loc_FF82C494\n" 
     467        "     SUB     R12, R5, #0x800\n" 
     468        "     SUBS    R12, R12, #3\n" 
     469        "     BEQ     loc_FF82C6EC\n" 
     470        "     SUB     R12, R5, #0x800\n" 
     471        "     SUBS    R12, R12, #0x158\n" 
     472        "     BNE     loc_FF82C830\n" 
     473        "     TST     R4, #0x80000000\n" 
     474        "     MOVNE   R0, #1\n" 
     475        "     BNE     locret_FF82C750\n" 
     476        "     BL         sub_FF8781D0\n" 
     477        "     CMP     R0, #0\n" 
     478        "     BLEQ    sub_FF828A3C\n" 
     479        "     B         loc_FF82C814\n" 
     480 
     481 
     482    "loc_FF82C494:\n"    // CODE XREF: sub_FF82C3F0+6Cj 
     483        "     CMP     R5, R10\n" 
     484        "     BEQ     loc_FF82C7F4\n" 
     485        "     SUB     R12, R5, #0x1000\n" 
     486        "     SUBS    R12, R12, #3\n" 
     487        "     BNE     loc_FF82C830\n" 
     488        "     BL         sub_FF82C324\n" 
     489        "     MOV     R1, R4\n" 
     490        "     B         loc_FF82C838\n" 
     491 
     492 
     493    "loc_FF82C4B4:\n"    // CODE XREF: sub_FF82C3F0+58j 
     494        "     SUB     R12, R5, #0x1000\n" 
     495        "     SUBS    R12, R12, #0x56\n" 
     496        "     SUBNE   R12, R5, #0x1000\n" 
     497        "     SUBNES  R12, R12, #0x5B\n" 
     498        "     SUBNE   R12, R5, #0x1000\n" 
     499        "     SUBNES  R12, R12, #0x5E\n" 
     500        "     SUBNE   R12, R5, #0x1000\n" 
     501        "     SUBNES  R12, R12, #0x61\n" 
     502        "     BNE     loc_FF82C830\n" 
     503        "     B         loc_FF82C8DC\n" 
     504 
     505 
     506    "loc_FF82C4DC:\n"    // CODE XREF: sub_FF82C3F0+4Cj 
     507        "     LDR     R12, =0x10AD\n" 
     508        "     CMP     R5, R12\n" 
     509        "     BEQ     loc_FF82C85C\n" 
     510        "     BGT     loc_FF82C52C\n" 
     511        "     SUB     R12, R5, #0x1000\n" 
     512        "     SUBS    R12, R12, #0x63\n" 
     513        "     SUBNE   R12, R5, #0x1000\n" 
     514        "     SUBNES  R12, R12, #0x65\n" 
     515        "     BEQ     loc_FF82C8DC\n" 
     516        "     SUB     R12, R5, #0x1000\n" 
     517        "     LDR     R0, =0x10A3\n" 
     518        "     SUBS    R12, R12, #0xA9\n" 
     519        "     BEQ     loc_FF82C850\n" 
     520        "     SUB     R12, R5, #0x1000\n" 
     521        "     SUBS    R12, R12, #0xAA\n" 
     522        "     BNE     loc_FF82C830\n" 
     523        "     BL         _IsControlEventActive\n" 
     524        "     CMP     R0, #0\n" 
     525        "     BEQ     loc_FF82C868\n" 
     526        "     B         loc_FF82C814\n" 
     527 
     528 
     529    "loc_FF82C52C:\n"    // CODE XREF: sub_FF82C3F0+F8j 
     530        "     SUB     R12, R5, #0x1000\n" 
     531        "     SUBS    R12, R12, #0xAE\n" 
     532        "     BEQ     loc_FF82C868\n" 
     533        "     SUB     R12, R5, #0x1000\n" 
     534        "     SUBS    R12, R12, #0xAF\n" 
     535        "     BEQ     loc_FF82C85C\n" 
     536        "     SUB     R12, R5, #0x1000\n" 
     537        "     SUBS    R12, R12, #0xB0\n" 
     538        "     BEQ     loc_FF82C868\n" 
     539        "     SUB     R12, R5, #0x1000\n" 
     540        "     SUBS    R12, R12, #0xB2\n" 
     541        "     BNE     loc_FF82C830\n" 
     542        "     LDR     R0, =0x1008\n" 
     543        "     MOV     R1, R4\n" 
     544        "     B         loc_FF82C838\n" 
     545 
     546 
     547    "loc_FF82C568:\n"    // CODE XREF: sub_FF82C3F0+3Cj 
     548        "     LDR     R11, =0x201B\n" 
     549        "     LDR     R0, =0x1DD0\n" 
     550        "     CMP     R5, R11\n" 
     551        "     LDR     R2, [R0,#0x10]!\n" 
     552        "     LDR     R1, [R0,#0x10]\n" 
     553        "     SUB     R9, R11, #0x17\n" 
     554        "     BEQ     loc_FF82C7C8\n" 
     555        "     BGT     loc_FF82C600\n" 
     556        "     LDR     R11, =0x116A\n" 
     557        "     CMP     R5, R11\n" 
     558        "     BEQ     loc_FF82C7B4\n" 
     559        "     BGT     loc_FF82C5C4\n" 
     560        "     SUB     R0, R5, #0x1100\n" 
     561        "     SUB     R0, R0, #0x63\n" 
     562        "     CMP     R0, #5\n" 
     563        "     ADDLS   PC, PC, R0,LSL#2\n" 
     564        "     B         loc_FF82C830\n" 
     565 
     566 
     567    "loc_FF82C5AC:\n"    // CODE XREF: sub_FF82C3F0+1B4j 
     568        "     B         loc_FF82C7EC\n" 
     569 
     570 
     571    "loc_FF82C5B0:\n"    // CODE XREF: sub_FF82C3F0+1B4j 
     572        "     B         loc_FF82C7E0\n" 
     573 
     574 
     575    "loc_FF82C5B4:\n"    // CODE XREF: sub_FF82C3F0+1B4j 
     576        "     B         loc_FF82C7D8\n" 
     577 
     578 
     579    "loc_FF82C5B8:\n"    // CODE XREF: sub_FF82C3F0+1B4j 
     580        "     B         loc_FF82C830\n" 
     581 
     582 
     583    "loc_FF82C5BC:\n"    // CODE XREF: sub_FF82C3F0+1B4j 
     584        "     B         loc_FF82C774\n" 
     585 
     586 
     587    "loc_FF82C5C0:\n"    // CODE XREF: sub_FF82C3F0+1B4j 
     588        "     B         loc_FF82C774\n" 
     589 
     590 
     591    "loc_FF82C5C4:\n"    // CODE XREF: sub_FF82C3F0+1A4j 
     592        "     SUB     R12, R5, #0x2000\n" 
     593        "     SUBS    R12, R12, #2\n" 
     594        "     BEQ     loc_FF82C8A8\n" 
     595        "     CMP     R5, R9\n" 
     596        "     MOV     R0, R9\n" 
     597        "     BEQ     loc_FF82C8B4\n" 
     598        "     SUB     R12, R5, #0x2000\n" 
     599        "     SUBS    R12, R12, #5\n" 
     600        "     BEQ     loc_FF82C8A8\n" 
     601        "     SUB     R12, R5, #0x2000\n" 
     602        "     SUBS    R12, R12, #0x19\n" 
     603        "     BNE     loc_FF82C830\n" 
     604        "     CMP     R1, #0\n" 
     605        "     BNE     loc_FF82C894\n" 
     606        "     B         loc_FF82C814\n" 
     607 
     608 
     609    "loc_FF82C600:\n"    // CODE XREF: sub_FF82C3F0+194j 
     610        "     LDR     R12, =0x3110\n" 
     611        "     CMP     R5, R12\n" 
     612        "     BEQ     loc_FF82C86C\n" 
     613        "     BGT     loc_FF82C648\n" 
     614        "     SUB     R12, R5, #0x2000\n" 
     615        "     SUBS    R12, R12, #0x1D\n" 
     616        "     BEQ     loc_FF82C8A8\n" 
     617        "     LDR     R0, =0x2027\n" 
     618        "     CMP     R5, R0\n" 
     619        "     BEQ     loc_FF82C874\n" 
     620        "     SUB     R12, R5, #0x3000\n" 
     621        "     SUBS    R12, R12, #6\n" 
     622        "     BEQ     loc_FF82C86C\n" 
     623        "     SUB     R12, R5, #0x3000\n" 
     624        "     SUBS    R12, R12, #0x10\n" 
     625        "     BNE     loc_FF82C830\n" 
     626        "     BL         sub_FF88D5E4\n" 
     627        "     B         loc_FF82C814\n" 
     628 
     629 
     630    "loc_FF82C648:\n"    // CODE XREF: sub_FF82C3F0+21Cj 
     631        "     SUB     R12, R5, #0x3100\n" 
     632        "     SUBS    R12, R12, #0x11\n" 
     633        "     BEQ     loc_FF82C86C\n" 
     634        "     CMP     R5, #0x3140\n" 
     635        "     BEQ     loc_FF82C8D0\n" 
     636        "     SUB     R12, R5, #0x3200\n" 
     637        "     SUBS    R12, R12, #1\n" 
     638        "     BEQ     loc_FF82C830\n" 
     639        "     SUB     R12, R5, #0x3200\n" 
     640        "     SUBS    R12, R12, #2\n" 
     641        "     BNE     loc_FF82C830\n" 
     642        "     B         loc_FF82C86C\n" 
     643 
     644 
     645 
     646 
     647 
     648    "loc_FF82C6EC:\n"    // CODE XREF: sub_FF82C3F0+78j 
     649        "     MOV     R4, #1\n" 
     650        "     MOV     R0, #2\n" 
     651        "     CMP     R0, #1\n" 
     652        "     MOVEQ   R4, #2\n" 
     653        "     MOV     R0, R4\n" 
     654        "     BL         sub_FF8224B4\n" 
     655        "     CMP     R0, #0\n" 
     656        "     STRNE   R8, [R6,#0x14]\n" 
     657        "     BNE     loc_FF82C74C\n" 
     658        "     BL         sub_FF874AD4\n" 
     659        "     BL         sub_FF871808\n" 
     660        "     BL         sub_FF872390\n" 
     661        "     BL         sub_FF8710D4\n" 
     662        "     BL         sub_FF872BD4\n" 
     663        "     BL         sub_FF873024\n" 
     664        "     BL         _GetVRAMHPixelsSize_0\n" 
     665        "     CMP     R0, #0\n" 
     666        "     BEQ     loc_FF82C754\n" 
     667        "     BL         sub_FF82C090\n" 
     668        "     BL         sub_FF87340C\n" 
     669        "     MOV     R1, R0\n" 
     670        "     LDR     R0, =0x1167\n" 
     671        "     BL         _PostLogicalEventToUI\n"    // "DryOS Canon Firmware; A720-based" 
     672 
     673    "loc_FF82C74C:\n"    // CODE XREF: sub_FF82C3F0+320j 
     674 
     675        "     MOV     R0, R7\n" 
     676 
     677    "locret_FF82C750:\n"    // CODE XREF: sub_FF82C3F0+90j 
     678        "     LDMFD   SP!, {R3-R11,PC}\n" 
     679 
     680 
     681    "loc_FF82C754:\n"    // CODE XREF: sub_FF82C3F0+344j 
     682        "     BL         sub_FF82622C\n" 
     683        "     CMP     R0, #1\n" 
     684        "     LDRNE   R0, =0x310B\n" 
     685        "     LDREQ   R0, =0x310C\n" 
     686        "     MOV     R1, #0\n" 
     687        "     BL         _PostLogicalEventToUI\n"    // "DryOS Canon Firmware; A720-based" 
     688        "     BL         sub_FF870B0C_my\n"    //   ---------------> for SDHC and movie rec 
     689        "     B         loc_FF82C74C\n" 
     690 
     691 
     692    "loc_FF82C774:\n"    // CODE XREF: sub_FF82C3F0+1B4j 
     693 
     694 
     695        "     STR     R8, [R6,#0x10]\n" 
     696        "     LDR     R6, =0x4508\n" 
     697        "     LDR     R4, =0x1168\n" 
     698        "     CMP     R1, #0\n" 
     699        "     BEQ     loc_FF82C79C\n" 
     700        "     BL         sub_FF86E480\n" 
     701        "     B         loc_FF82C7A8\n" 
     702 
     703 
     704    "loc_FF82C790:\n"    // CODE XREF: sub_FF82C3F0+3BCj 
     705        "     MOV     R0, R6\n" 
     706        "     BL         sub_FF8595B4\n" 
     707        "     B         loc_FF82C814\n" 
     708 
     709 
     710    "loc_FF82C79C:\n"    // CODE XREF: sub_FF82C3F0+394j 
     711        "     BL         sub_FF871AB0\n" 
     712        "     BL         sub_FF871A14\n" 
     713        "     BL         sub_FF825F4C\n" 
     714 
     715    "loc_FF82C7A8:\n"    // CODE XREF: sub_FF82C3F0+39Cj 
     716        "     CMP     R5, R4\n" 
     717        "     BEQ     loc_FF82C790\n" 
     718        "     B         loc_FF82C814\n" 
     719 
     720 
     721    "loc_FF82C7B4:\n"    // CODE XREF: sub_FF82C3F0+1A0j 
     722        "     MOV     R0, #1\n" 
     723        "     BL         sub_FF86E5AC\n" 
     724        "     MOV     R1, R11\n" 
     725        "     MOV     R0, R10\n" 
     726        "     B         loc_FF82C838\n" 
     727 
     728 
     729    "loc_FF82C7C8:\n"    // CODE XREF: sub_FF82C3F0+190j 
     730        "     CMP     R2, #1\n" 
     731        "     BNE     loc_FF82C86C\n" 
     732        "     BL         sub_FF86E480\n" 
     733        "     B         loc_FF82C814\n" 
     734 
     735 
     736    "loc_FF82C7D8:\n"    // CODE XREF: sub_FF82C3F0+1B4j 
     737 
     738 
     739        "     MOV     R0, #2\n" 
     740        "     B         loc_FF82C7E4\n" 
     741 
     742 
     743    "loc_FF82C7E0:\n"    // CODE XREF: sub_FF82C3F0+1B4j 
     744 
     745 
     746        "     MOV     R0, #1\n" 
     747 
     748    "loc_FF82C7E4:\n"    // CODE XREF: sub_FF82C3F0+3ECj 
     749 
     750        "     BL         sub_FF82CE18\n" 
     751        "     B         loc_FF82C814\n" 
     752 
     753 
     754    "loc_FF82C7EC:\n"    // CODE XREF: sub_FF82C3F0+1B4j 
     755 
     756 
     757        "     MOV     R0, #0\n" 
     758        "     B         loc_FF82C7E4\n" 
     759 
     760 
     761    "loc_FF82C7F4:\n"    // CODE XREF: sub_FF82C3F0+68j 
     762 
     763        "     LDR     R0, [R6,#0xC]\n" 
     764        "     SUB     R12, R0, #0x8000\n" 
     765        "     SUBS    R12, R12, #2\n" 
     766        "     BEQ     loc_FF82C814\n" 
     767        "     LDR     R0, =0x10A5\n" 
     768        "     BL         _IsControlEventActive\n" 
     769        "     CMP     R0, #0\n" 
     770        "     BEQ     loc_FF82C81C\n" 
     771 
     772    "loc_FF82C814:\n"    // CODE XREF: sub_FF82C3F0+20j 
     773 
     774        "     MOV     R0, #0\n" 
     775        "     LDMFD   SP!, {R3-R11,PC}\n" 
     776 
     777 
     778    "loc_FF82C81C:\n"    // CODE XREF: sub_FF82C3F0+420j 
     779        "     CMP     R5, R9\n" 
     780        "     STREQ   R8, [R6,#0x34]\n" 
     781        "     BEQ     loc_FF82C830\n" 
     782        "     CMP     R5, R10\n" 
     783        "     STREQ   R8, [R6,#0x30]\n" 
     784 
     785    "loc_FF82C830:\n"    // CODE XREF: sub_FF82C3F0+84j 
     786 
     787 
     788 
     789        "     MOV     R1, #0\n" 
     790 
     791    "loc_FF82C834:\n"    // CODE XREF: sub_FF82C3F0+480j 
     792        "     MOV     R0, R5\n" 
     793 
     794    "loc_FF82C838:\n"    // CODE XREF: sub_FF82C3F0+C0j 
     795 
     796        "     BL         sub_FF86FB00_my\n"    //   ---------------> for SDHC and movie rec 
     797        "     LDMFD   SP!, {R3-R11,PC}\n" 
     798 
     799 
     800    "loc_FF82C840:\n"    // CODE XREF: sub_FF82C3F0+38j 
     801        "     BL         sub_FF876BDC\n" 
     802        "     CMP     R0, #0\n" 
     803        "     BLNE    sub_FF875AB8\n" 
     804        "     B         loc_FF82C86C\n" 
     805 
     806 
     807    "loc_FF82C850:\n"    // CODE XREF: sub_FF82C3F0+11Cj 
     808        "     BL         _IsControlEventActive\n" 
     809        "     CMP     R0, #0\n" 
     810        "     BNE     loc_FF82C814\n" 
     811 
     812    "loc_FF82C85C:\n"    // CODE XREF: sub_FF82C3F0+F4j 
     813 
     814        "     MOV     R0, R5\n" 
     815        "     BL         sub_FF82C1B0_my\n"    //   ---------------> for movie rec 
     816        "     LDMFD   SP!, {R3-R11,PC}\n" 
     817 
     818 
     819    "loc_FF82C868:\n"    // CODE XREF: sub_FF82C3F0+134j 
     820 
     821        "     BL         sub_FF82CDE8\n" 
     822 
     823    "loc_FF82C86C:\n"    // CODE XREF: sub_FF82C3F0+54j 
     824 
     825        "     MOV     R1, R4\n" 
     826        "     B         loc_FF82C834\n" 
     827 
     828 
     829    "loc_FF82C874:\n"    // CODE XREF: sub_FF82C3F0+234j 
     830        "     MOV     R1, #0\n" 
     831        "     BL         sub_FF86FB00_my\n"    //   ---------------> for SDHC and movie rec 
     832        "     MOV     R1, #0\n" 
     833        "     MOV     R0, R11\n" 
     834        "     BL         sub_FF86FB00_my\n"    //   ---------------> for SDHC and movie rec 
     835        "     MOV     R1, #0\n" 
     836        "     MOV     R0, R9\n" 
     837        "     B         loc_FF82C8A0\n" 
     838 
     839 
     840    "loc_FF82C894:\n"    // CODE XREF: sub_FF82C3F0+208j 
     841        "     CMP     R2, #0\n" 
     842        "     BNE     loc_FF82C814\n" 
     843 
     844    "loc_FF82C89C:\n"    // CODE XREF: sub_FF82C3F0+4F0j 
     845        "     MOV     R1, #0\n" 
     846 
     847    "loc_FF82C8A0:\n"    // CODE XREF: sub_FF82C3F0+4A0j 
     848        "     BL         sub_FF86FB00_my\n"    //   ---------------> for SDHC and movie rec 
     849        "     B         loc_FF82C814\n" 
     850 
     851 
     852    "loc_FF82C8A8:\n"    // CODE XREF: sub_FF82C3F0+1DCj 
     853 
     854        "     STR     R7, [R6,#0x20]\n" 
     855        "     BL         sub_FF82CADC\n" 
     856        "     B         loc_FF82C86C\n" 
     857 
     858 
     859    "loc_FF82C8B4:\n"    // CODE XREF: sub_FF82C3F0+1E8j 
     860        "     STR     R7, [R6,#0x20]\n" 
     861        "     BL         sub_FF82CADC\n" 
     862        "     LDR     R0, [R6,#0x10]\n" 
     863        "     CMP     R0, #1\n" 
     864        "     BNE     loc_FF82C86C\n" 
     865        "     BL         sub_FF86E4C4\n" 
     866        "     B         loc_FF82C814\n" 
     867 
     868 
     869    "loc_FF82C8D0:\n"    // CODE XREF: sub_FF82C3F0+268j 
     870        "     CMP     R1, #0\n" 
     871        "     BLEQ    sub_FF82CADC\n" 
     872        "     B         loc_FF82C814\n" 
     873 
     874 
     875    "loc_FF82C8DC:\n"    // CODE XREF: sub_FF82C3F0+48j 
     876 
     877        "     MOV    R0, #0xFFFFFFFF\n" 
     878        "     B         loc_FF82C89C\n" 
     879        ".LTORG\n" // make literal pool 
     880    ); 
     881
     882 
     883 
     884// Extracted method: sub_FF870B0C (FF870B0C-FF870BF0) 
     885// Overridden calls: 
     886//     sub_FF870958 
     887//     sub_FF870958 
     888void __attribute__((naked,noinline)) sub_FF870B0C_my() { 
     889    asm volatile ( 
     890        "     STMFD   SP!, {R4,LR}\n" 
     891        "     BL         sub_FF82CAA8\n" 
     892        "     MOV     R4, R0\n" 
     893        "     BL         sub_FF870C28\n" 
     894        "     MOV     R0, R4\n" 
     895        "     BL         sub_FF8709BC\n" 
     896        "     BL         sub_FF82CAA8\n" 
     897        "     MOV     R4, R0\n" 
     898        "     LDR     R0, =0x5E1C\n" 
     899        "     LDR     R0, [R0]\n" 
     900        "     TST     R0, #1\n" 
     901        "     BEQ     loc_FF870B48\n" 
     902 
     903    "loc_FF870B3C:\n"    // CODE XREF: sub_FF870B0C+5Cj 
     904 
     905        "     MOV     R1, R4\n" 
     906        "     MOV     R0, #2\n" 
     907        "     B         loc_FF870BB0\n" 
     908 
     909 
     910    "loc_FF870B48:\n"    // CODE XREF: sub_FF870B0C+2Cj 
     911        "     TST     R0, #0x2000\n" 
     912        "     BEQ     loc_FF870B64\n" 
     913        "     TST     R0, #0x200\n" 
     914        "     LDREQ   R1, =0x4004\n" 
     915        "     LDRNE   R1, =0x8002\n" 
     916        "     MOV     R0, #3\n" 
     917        "     B         loc_FF870BB0\n" 
     918 
     919 
     920    "loc_FF870B64:\n"    // CODE XREF: sub_FF870B0C+40j 
     921        "     TST     R0, #0x10\n" 
     922        "     BNE     loc_FF870B3C\n" 
     923        "     TST     R0, #0x40\n" 
     924        "     BEQ     loc_FF870B80\n" 
     925 
     926    "loc_FF870B74:\n"    // CODE XREF: sub_FF870B0C+BCj 
     927        "     MOV     R1, R4\n" 
     928        "     MOV     R0, #1\n" 
     929        "     B         loc_FF870BB0\n" 
     930 
     931 
     932    "loc_FF870B80:\n"    // CODE XREF: sub_FF870B0C+64j 
     933        "     TST     R0, #0x20\n" 
     934        "     BEQ     loc_FF870B9C\n" 
     935        "     TST     R0, #0x4000\n" 
     936        "     BNE     loc_FF870B9C\n" 
     937 
     938    "loc_FF870B90:\n"    // CODE XREF: sub_FF870B0C+C8j 
     939        "     MOV     R1, R4\n" 
     940        "     MOV     R0, #0\n" 
     941        "     B         loc_FF870BB0\n" 
     942 
     943 
     944    "loc_FF870B9C:\n"    // CODE XREF: sub_FF870B0C+78j 
     945 
     946        "     LDR     R1, =0x102\n" 
     947        "     BICS    R1, R1, R0\n" 
     948        "     BNE     loc_FF870BB8\n" 
     949        "     MOV     R1, R4\n" 
     950        "     MOV     R0, #6\n" 
     951 
     952    "loc_FF870BB0:\n"    // CODE XREF: sub_FF870B0C+38j 
     953 
     954        "     LDMFD   SP!, {R4,LR}\n" 
     955        "     B         sub_FF870958_my\n"    //   ---------------> for SDHC and movie rec 
     956 
     957 
     958    "loc_FF870BB8:\n"    // CODE XREF: sub_FF870B0C+98j 
     959        "     TST     R0, #0x100\n" 
     960        "     BNE     loc_FF870B3C\n" 
     961        "     TST     R0, #0x4000\n" 
     962        "     TSTEQ   R0, #0x400\n" 
     963        "     BNE     loc_FF870B74\n" 
     964        "     TST     R0, #0x200\n" 
     965        "     TSTEQ   R0, #2\n" 
     966        "     BNE     loc_FF870B90\n" 
     967        "     TST     R0, #0x40000\n" 
     968        "     BEQ     loc_FF870B3C\n" 
     969        "     TST     R0, #0x200000\n" 
     970        "     MOVEQ   R1, R4\n" 
     971        "     MOVEQ   R0, #1\n" 
     972        "     BLEQ    sub_FF870958_my\n"    //   ---------------> for SDHC and movie rec 
     973        "     B         loc_FF870B3C\n" 
     974    ); 
     975
     976 
     977 
     978// Extracted method: sub_FF870958 (FF870958-FF8709B8) 
     979// Overridden calls: 
     980//     sub_FF86FB00 
     981//     sub_FF86FB00 
     982void __attribute__((naked,noinline)) sub_FF870958_my() { 
     983    asm volatile ( 
     984 
     985        "     STMFD   SP!, {R4-R6,LR}\n" 
     986        "     MOVS    R4, R0\n" 
     987        "     MOV     R0, #1\n" 
     988        "     MOV     R5, R1\n" 
     989        "     BNE     loc_FF870998\n" 
     990        "     MOV     R1, #0\n" 
     991        "     MOV     R0, #0\n" 
     992        "     BL         sub_FF86DC48\n" 
     993        "     BL         sub_FF82CAA8\n" 
     994        "     SUB     R12, R0, #0x1000\n" 
     995        "     SUBS    R12, R12, #0x5B\n" 
     996        "     BNE     loc_FF870990\n" 
     997 
     998    "loc_FF870988:\n"    // CODE XREF: sub_FF870958+44j 
     999        "     BL         sub_FF8708A0\n" 
     1000        "     B         loc_FF8709A0\n" 
     1001 
     1002 
     1003    "loc_FF870990:\n"    // CODE XREF: sub_FF870958+2Cj 
     1004        "     BL         sub_FF8708E0\n" 
     1005        "     B         loc_FF8709A0\n" 
     1006 
     1007 
     1008    "loc_FF870998:\n"    // CODE XREF: sub_FF870958+10j 
     1009        "     CMP     R4, #5\n" 
     1010        "     BEQ     loc_FF870988\n" 
     1011 
     1012    "loc_FF8709A0:\n"    // CODE XREF: sub_FF870958+34j 
     1013 
     1014        "     CMP     R0, #0\n" 
     1015        "     LDREQ   R5, =0x1162\n" 
     1016        "     MOVEQ   R4, #2\n" 
     1017        "     MOV     R0, R4\n" 
     1018        "     MOV     R1, R5\n" 
     1019        "     LDMFD   SP!, {R4-R6,LR}\n" 
     1020        "     B         sub_FF86FB00_my\n"    //   ---------------> for SDHC and movie rec 
     1021    ); 
     1022
     1023 
     1024 
     1025// Extracted method: sub_FF86FB00 (FF86FB00-FF86FDFC) 
     1026// Overridden calls: 
     1027//     sub_FF82BE84 
     1028//     sub_FF86E38C 
     1029//     sub_FF86EDAC 
     1030//     sub_FF86EE0C 
     1031//     sub_FF86EFE4 
     1032//     sub_FF86F224 
     1033//     sub_FF86F5E8 
     1034//     sub_FF86F6F0 
     1035//     sub_FF86F89C 
     1036//     sub_FF86F9F8 
     1037//     sub_FF870430 
     1038//     sub_FF870468 
     1039//     sub_FF870550 
     1040//     sub_FF870694 
     1041//     sub_FF86F224 
     1042//     sub_FF870550 
     1043//     sub_FF86F6F0 
     1044//     sub_FF86EE0C 
     1045//     sub_FF870468 
     1046//     sub_FF86EFE4 
     1047//     sub_FF86F89C 
     1048//     sub_FF86F9F8 
     1049//     sub_FF870694 
     1050//     sub_FF86F5E8 
     1051void __attribute__((naked,noinline)) sub_FF86FB00_my() { 
     1052    asm volatile ( 
     1053 
     1054        "     STMFD   SP!, {R4-R8,LR}\n" 
     1055        "     MOV     R8, R1\n" 
     1056        "     MOV     R4, R0\n" 
     1057        "     BL         _GetVRAMHPixelsSize_0\n" 
     1058        "     CMP     R0, #0\n" 
     1059        "     BNE     loc_FF86FDF8\n" 
     1060        "     MOV     R1, R8\n" 
     1061        "     MOV     R0, R4\n" 
     1062        "     BL         sub_FF86E768\n" 
     1063        "     LDR     R5, =0x5D50\n" 
     1064        "     MOV     R7, #1\n" 
     1065        "     LDR     R0, [R5,#0x10]\n" 
     1066        "     MOV     R6, #0\n" 
     1067        "     CMP     R0, #0x16\n" 
     1068        "     ADDLS   PC, PC, R0,LSL#2\n" 
     1069        "     B         loc_FF86FDF8\n" 
     1070 
     1071 
     1072    "loc_FF86FB40:\n"    // CODE XREF: sub_FF86FB00+38j 
     1073        "     B         loc_FF86FB9C\n" 
     1074 
     1075 
     1076    "loc_FF86FB44:\n"    // CODE XREF: sub_FF86FB00+38j 
     1077        "     B         loc_FF86FBC4\n" 
     1078 
     1079 
     1080    "loc_FF86FB48:\n"    // CODE XREF: sub_FF86FB00+38j 
     1081        "     B         loc_FF86FC08\n" 
     1082 
     1083 
     1084    "loc_FF86FB4C:\n"    // CODE XREF: sub_FF86FB00+38j 
     1085        "     B         loc_FF86FCC8\n" 
     1086 
     1087 
     1088    "loc_FF86FB50:\n"    // CODE XREF: sub_FF86FB00+38j 
     1089        "     B         loc_FF86FCD8\n" 
     1090 
     1091 
     1092    "loc_FF86FB54:\n"    // CODE XREF: sub_FF86FB00+38j 
     1093        "     B         loc_FF86FDF8\n" 
     1094 
     1095 
     1096    "loc_FF86FB58:\n"    // CODE XREF: sub_FF86FB00+38j 
     1097        "     B         loc_FF86FDF8\n" 
     1098 
     1099 
     1100    "loc_FF86FB5C:\n"    // CODE XREF: sub_FF86FB00+38j 
     1101        "     B         loc_FF86FD54\n" 
     1102 
     1103 
     1104    "loc_FF86FB60:\n"    // CODE XREF: sub_FF86FB00+38j 
     1105        "     B         loc_FF86FBAC\n" 
     1106 
     1107 
     1108    "loc_FF86FB64:\n"    // CODE XREF: sub_FF86FB00+38j 
     1109        "     B         loc_FF86FBB8\n" 
     1110 
     1111 
     1112    "loc_FF86FB68:\n"    // CODE XREF: sub_FF86FB00+38j 
     1113        "     B         loc_FF86FD54\n" 
     1114 
     1115 
     1116    "loc_FF86FB6C:\n"    // CODE XREF: sub_FF86FB00+38j 
     1117        "     B         loc_FF86FBFC\n" 
     1118 
     1119 
     1120    "loc_FF86FB70:\n"    // CODE XREF: sub_FF86FB00+38j 
     1121        "     B         loc_FF86FDF8\n" 
     1122 
     1123 
     1124    "loc_FF86FB74:\n"    // CODE XREF: sub_FF86FB00+38j 
     1125        "     B         loc_FF86FDF8\n" 
     1126 
     1127 
     1128    "loc_FF86FB78:\n"    // CODE XREF: sub_FF86FB00+38j 
     1129        "     B         loc_FF86FC14\n" 
     1130 
     1131 
     1132    "loc_FF86FB7C:\n"    // CODE XREF: sub_FF86FB00+38j 
     1133        "     B         loc_FF86FC5C\n" 
     1134 
     1135 
     1136    "loc_FF86FB80:\n"    // CODE XREF: sub_FF86FB00+38j 
     1137        "     B         loc_FF86FC94\n" 
     1138 
     1139 
     1140    "loc_FF86FB84:\n"    // CODE XREF: sub_FF86FB00+38j 
     1141        "     B         loc_FF86FBD0\n" 
     1142 
     1143 
     1144    "loc_FF86FB88:\n"    // CODE XREF: sub_FF86FB00+38j 
     1145        "     B         loc_FF86FDE0\n" 
     1146 
     1147 
     1148    "loc_FF86FB8C:\n"    // CODE XREF: sub_FF86FB00+38j 
     1149        "     B         loc_FF86FD60\n" 
     1150 
     1151 
     1152    "loc_FF86FB90:\n"    // CODE XREF: sub_FF86FB00+38j 
     1153        "     B         loc_FF86FD90\n" 
     1154 
     1155 
     1156    "loc_FF86FB94:\n"    // CODE XREF: sub_FF86FB00+38j 
     1157        "     B         loc_FF86FD90\n" 
     1158 
     1159 
     1160    "loc_FF86FB98:\n"    // CODE XREF: sub_FF86FB00+38j 
     1161        "     B         loc_FF86FCE4\n" 
     1162 
     1163 
     1164    "loc_FF86FB9C:\n"    // CODE XREF: sub_FF86FB00+38j 
     1165 
     1166 
     1167        "     MOV     R1, R8\n" 
     1168        "     MOV     R0, R4\n" 
     1169        "     LDMFD   SP!, {R4-R8,LR}\n" 
     1170        "     B         sub_FF86F224_my\n"    //   ---------------> 
     1171 
     1172 
     1173    "loc_FF86FBAC:\n"    // CODE XREF: sub_FF86FB00+38j 
     1174 
     1175 
     1176        "     MOV     R0, R4\n" 
     1177        "     LDMFD   SP!, {R4-R8,LR}\n" 
     1178        "     B         sub_FF870550_my\n"    //   ---------------> 
     1179 
     1180 
     1181    "loc_FF86FBB8:\n"    // CODE XREF: sub_FF86FB00+38j 
     1182 
     1183 
     1184        "     MOV     R0, R4\n" 
     1185        "     LDMFD   SP!, {R4-R8,LR}\n" 
     1186        "     B         sub_FF86F6F0_my\n"    //   ---------------> 
     1187 
     1188 
     1189    "loc_FF86FBC4:\n"    // CODE XREF: sub_FF86FB00+38j 
     1190 
     1191 
     1192        "     MOV     R0, R4\n" 
     1193        "     LDMFD   SP!, {R4-R8,LR}\n" 
     1194        "     B         sub_FF86EE0C_my\n"    //   ---------------> 
     1195 
     1196 
     1197    "loc_FF86FBD0:\n"    // CODE XREF: sub_FF86FB00+38j 
     1198 
     1199 
     1200        "     SUB     R12, R4, #0x1000\n" 
     1201        "     SUBS    R12, R12, #0xA5\n" 
     1202        "     STREQ   R7, [R5,#0x88]\n" 
     1203        "     BEQ     loc_FF86FDF0\n" 
     1204        "     SUB     R12, R4, #0x3000\n" 
     1205        "     SUBS    R12, R12, #6\n" 
     1206        "     BNE     loc_FF86FDF8\n" 
     1207        "     MOV     R0, #0\n" 
     1208        "     BL         sub_FF82BF28\n" 
     1209        "     BL         sub_FF870430_my\n"    //   ---------------> 
     1210        "     B         loc_FF86FDF0\n" 
     1211 
     1212 
     1213    "loc_FF86FBFC:\n"    // CODE XREF: sub_FF86FB00+38j 
     1214 
     1215 
     1216        "     MOV     R0, R4\n" 
     1217        "     LDMFD   SP!, {R4-R8,LR}\n" 
     1218        "     B         sub_FF870468_my\n"    //   ---------------> 
     1219 
     1220 
     1221    "loc_FF86FC08:\n"    // CODE XREF: sub_FF86FB00+38j 
     1222 
     1223 
     1224        "     MOV     R0, R4\n" 
     1225        "     LDMFD   SP!, {R4-R8,LR}\n" 
     1226        "     B         sub_FF86EFE4_my\n"    //   ---------------> 
     1227 
     1228 
     1229    "loc_FF86FC14:\n"    // CODE XREF: sub_FF86FB00+38j 
     1230 
     1231 
     1232        "     MOV     R0, R4\n" 
     1233        "     LDMFD   SP!, {R4-R8,LR}\n" 
     1234        "     B         sub_FF86F89C_my\n"    //   ---------------> 
     1235 
     1236 
     1237 
     1238 
     1239 
     1240    "loc_FF86FC5C:\n"    // CODE XREF: sub_FF86FB00+38j 
     1241 
     1242 
     1243        "     SUB     R12, R4, #0x3200\n" 
     1244        "     SUBS    R12, R12, #2\n" 
     1245        "     BNE     loc_FF86FDF8\n" 
     1246        "     MOV     R0, #3\n" 
     1247        "     BL         sub_FF86E64C\n" 
     1248        "     MOV     R0, #8\n" 
     1249        "     BL         sub_FF82BE84_my\n"    //   ---------------> 
     1250        "     MOV     R1, #0\n" 
     1251        "     MOV     R0, #0x19\n" 
     1252        "     BL         sub_FF83A068\n" 
     1253        "     BL         sub_FF871AB0\n" 
     1254        "     BL         sub_FF871D48\n" 
     1255        "     BL         sub_FF871144\n" 
     1256        "     B         loc_FF86FDF0\n" 
     1257 
     1258 
     1259    "loc_FF86FC94:\n"    // CODE XREF: sub_FF86FB00+38j 
     1260 
     1261 
     1262        "     SUB     R12, R4, #0x3300\n" 
     1263        "     SUBS    R12, R12, #1\n" 
     1264        "     BNE     loc_FF86FDF8\n" 
     1265        "     LDR     R0, =0x4010\n" 
     1266        "     STR     R6, [R5,#0x80]\n" 
     1267        "     BL         sub_FF82BE84_my\n"    //   ---------------> 
     1268        "     BL         sub_FF98BE68\n" 
     1269        "     BL         sub_FF871144\n" 
     1270        "     MOV     R0, #4\n" 
     1271        "     BL         sub_FF86E64C\n" 
     1272        "     MOV     R0, #1\n" 
     1273        "     BL         sub_FF872CA8\n" 
     1274        "     B         loc_FF86FDF0\n" 
     1275 
     1276 
     1277    "loc_FF86FCC8:\n"    // CODE XREF: sub_FF86FB00+38j 
     1278 
     1279 
     1280        "     MOV     R1, R8\n" 
     1281        "     MOV     R0, R4\n" 
     1282        "     LDMFD   SP!, {R4-R8,LR}\n" 
     1283        "     B         sub_FF86F9F8_my\n"    //   ---------------> 
     1284 
     1285 
     1286    "loc_FF86FCD8:\n"    // CODE XREF: sub_FF86FB00+38j 
     1287 
     1288 
     1289        "     MOV     R0, R4\n" 
     1290        "     LDMFD   SP!, {R4-R8,LR}\n" 
     1291        "     B         sub_FF870694_my\n"    //   ---------------> 
     1292 
     1293 
     1294    "loc_FF86FCE4:\n"    // CODE XREF: sub_FF86FB00+38j 
     1295 
     1296 
     1297        "     LDR     R8, =0x1182\n" 
     1298        "     CMP     R4, R8\n" 
     1299        "     STREQ   R7, [R5,#0xB8]\n" 
     1300        "     BEQ     loc_FF86FDF0\n" 
     1301        "     SUB     R12, R4, #0x1000\n" 
     1302        "     SUBS    R12, R12, #0x1AC\n" 
     1303        "     BEQ     loc_FF86FD3C\n" 
     1304        "     SUB     R12, R4, #0x3000\n" 
     1305        "     SUBS    R12, R12, #0x224\n" 
     1306        "     BNE     loc_FF86FDF8\n" 
     1307        "     MOV     R0, #8\n" 
     1308        "     BL         sub_FF82BE84_my\n"    //   ---------------> 
     1309        "     MOV     R0, #3\n" 
     1310        "     BL         sub_FF86E64C\n" 
     1311        "     STR     R6, [R5,#0xBC]\n" 
     1312        "     LDR     R0, [R5,#0xB8]\n" 
     1313        "     CMP     R0, #0\n" 
     1314        "     MOVNE   R1, #0\n" 
     1315        "     MOVNE   R0, R8\n" 
     1316        "     STRNE   R6, [R5,#0xB8]\n" 
     1317        "     BLNE    sub_FF86F9F8_my\n"    //   ---------------> 
     1318        "     B         loc_FF86FDF0\n" 
     1319 
     1320 
     1321    "loc_FF86FD3C:\n"    // CODE XREF: sub_FF86FB00+1FCj 
     1322        "     LDR     R0, [R5,#0xBC]\n" 
     1323        "     CMP     R0, #0\n" 
     1324        "     BNE     loc_FF86FDF0\n" 
     1325        "     BL         sub_FF989F50\n" 
     1326        "     STR     R7, [R5,#0xBC]\n" 
     1327        "     B         loc_FF86FDF0\n" 
     1328 
     1329 
     1330    "loc_FF86FD54:\n"    // CODE XREF: sub_FF86FB00+38j 
     1331 
     1332 
     1333        "     MOV     R0, R4\n" 
     1334        "     LDMFD   SP!, {R4-R8,LR}\n" 
     1335        "     B         sub_FF86F5E8_my\n"    //   ---------------> 
     1336 
     1337 
     1338    "loc_FF86FD60:\n"    // CODE XREF: sub_FF86FB00+38j 
     1339 
     1340 
     1341        "     LDR     R12, =0x10B0\n" 
     1342        "     CMP     R4, R12\n" 
     1343        "     BEQ     loc_FF86FD8C\n" 
     1344        "     BGT     loc_FF86FD98\n" 
     1345        "     CMP     R4, #4\n" 
     1346        "     BEQ     loc_FF86FDC0\n" 
     1347        "     SUB     R12, R4, #0x1000\n" 
     1348        "     SUBS    R12, R12, #0xAA\n" 
     1349        "     SUBNE   R12, R4, #0x1000\n" 
     1350        "     SUBNES  R12, R12, #0xAE\n" 
     1351        "     BNE     loc_FF86FDF8\n" 
     1352 
     1353    "loc_FF86FD8C:\n"    // CODE XREF: sub_FF86FB00+268j 
     1354        "     BL         sub_FF86E350\n" 
     1355 
     1356    "loc_FF86FD90:\n"    // CODE XREF: sub_FF86FB00+38j 
     1357 
     1358 
     1359        "     MOV     R0, R6\n" 
     1360        "     LDMFD   SP!, {R4-R8,PC}\n" 
     1361 
     1362 
     1363    "loc_FF86FD98:\n"    // CODE XREF: sub_FF86FB00+26Cj 
     1364        "     SUB     R12, R4, #0x2000\n" 
     1365        "     SUBS    R12, R12, #4\n" 
     1366        "     BEQ     loc_FF86FDD8\n" 
     1367        "     SUB     R12, R4, #0x5000\n" 
     1368        "     SUBS    R12, R12, #1\n" 
     1369        "     SUBNE   R12, R4, #0x5000\n" 
     1370        "     SUBNES  R12, R12, #6\n" 
     1371        "     BNE     loc_FF86FDF8\n" 
     1372        "     BL         sub_FF86EDAC_my\n"    //   ---------------> 
     1373        "     B         loc_FF86FDF0\n" 
     1374 
     1375 
     1376    "loc_FF86FDC0:\n"    // CODE XREF: sub_FF86FB00+274j 
     1377        "     LDR     R0, [R5,#0x2C]\n" 
     1378        "     CMP     R0, #0\n" 
     1379        "     BNE     loc_FF86FDD8\n" 
     1380        "     BL         sub_FF86FFD8\n" 
     1381        "     BL         sub_FF825F04\n" 
     1382        "     B         loc_FF86FDF0\n" 
     1383 
     1384 
     1385    "loc_FF86FDD8:\n"    // CODE XREF: sub_FF86FB00+2A0j 
     1386 
     1387        "     BL         sub_FF86E38C_my\n"    //   ---------------> 
     1388        "     B         loc_FF86FDF0\n" 
     1389 
     1390 
     1391    "loc_FF86FDE0:\n"    // CODE XREF: sub_FF86FB00+38j 
     1392 
     1393 
     1394        "     SUB     R12, R4, #0x3000\n" 
     1395        "     SUBS    R12, R12, #0x130\n" 
     1396        "     BNE     loc_FF86FDF8\n" 
     1397        "     BL         sub_FF86E44C\n" 
     1398 
     1399    "loc_FF86FDF0:\n"    // CODE XREF: sub_FF86FB00+DCj 
     1400 
     1401        "     MOV     R0, #0\n" 
     1402        "     LDMFD   SP!, {R4-R8,PC}\n" 
     1403 
     1404 
     1405    "loc_FF86FDF8:\n"    // CODE XREF: sub_FF86FB00+14j 
     1406 
     1407 
     1408 
     1409        "     MOV     R0, #1\n" 
     1410        "     LDMFD   SP!, {R4-R8,PC}\n" 
     1411        ".LTORG\n" // make literal pool 
     1412    ); 
     1413
     1414 
     1415 
     1416// Extracted method: sub_FF86F224 (FF86F224-FF86F424) 
     1417// Overridden calls: 
     1418//     sub_FF82BE84 
     1419//     sub_FF86ED10 
     1420void __attribute__((naked,noinline)) sub_FF86F224_my() { 
     1421    asm volatile ( 
     1422 
     1423        "     STMFD   SP!, {R4-R8,LR}\n" 
     1424        "     LDR     R7, =0x8002\n" 
     1425        "     LDR     R4, =0x5D50\n" 
     1426        "     CMP     R0, #3\n" 
     1427        "     MOV     R6, R1\n" 
     1428        "     MOV     R5, #1\n" 
     1429        "     BEQ     loc_FF86F398\n" 
     1430        "     BGT     loc_FF86F260\n" 
     1431        "     CMP     R0, #0\n" 
     1432        "     BEQ     loc_FF86F2A4\n" 
     1433        "     CMP     R0, #1\n" 
     1434        "     BEQ     loc_FF86F328\n" 
     1435        "     CMP     R0, #2\n" 
     1436        "     BNE     loc_FF86F420\n" 
     1437        "     B         loc_FF86F278\n" 
     1438 
     1439 
     1440    "loc_FF86F260:\n"    // CODE XREF: sub_FF86F224+1Cj 
     1441        "     CMP     R0, #6\n" 
     1442        "     STREQ   R5, [R4,#0x28]\n" 
     1443        "     BEQ     loc_FF86F390\n" 
     1444        "     SUB     R12, R0, #0x2000\n" 
     1445        "     SUBS    R12, R12, #4\n" 
     1446        "     BNE     loc_FF86F420\n" 
     1447 
     1448    "loc_FF86F278:\n"    // CODE XREF: sub_FF86F224+38j 
     1449        "     SUB     R12, R6, #0x1100\n" 
     1450        "     SUBS    R12, R12, #0x62\n" 
     1451        "     BNE     loc_FF86F294\n" 
     1452        "     MOV     R1, R7\n" 
     1453        "     MOV     R0, #0\n" 
     1454        "     BL         sub_FF872404\n" 
     1455        "     STR     R5, [R4,#0x60]\n" 
     1456 
     1457    "loc_FF86F294:\n"    // CODE XREF: sub_FF86F224+5Cj 
     1458        "     BL         sub_FF871AB0\n" 
     1459        "     BL         sub_FF871D48\n" 
     1460        "     BL         sub_FF86ED10_my\n"    //   ---------------> movie rec 
     1461        "     B         loc_FF86F418\n" 
     1462 
     1463 
     1464    "loc_FF86F2A4:\n"    // CODE XREF: sub_FF86F224+24j 
     1465        "     MOV     R0, #7\n" 
     1466        "     BL         sub_FF86E64C\n" 
     1467        "     MOV     R0, R7\n" 
     1468        "     BL         sub_FF82BE84_my\n"    //   ---------------> movie rec 
     1469        "     BL         _taskcreate_CommonDrivers\n" 
     1470        "     BL         sub_FF871908\n" 
     1471        "     MOV     R1, R7\n" 
     1472        "     MOV     R0, #0\n" 
     1473        "     BL         sub_FF872404\n" 
     1474        "     LDR     R1, =0xFF86F458\n"    // aAcBootrec = "AC:BootRec" 
     1475        "     MOV     R0, #0x20\n" 
     1476        "     STR     R6, [R4,#0x18]\n" 
     1477        "     BL         sub_FF867708\n" 
     1478        "     LDR     R1, =0xFF86F464\n"    // aAcInitlens = "AC:InitLens" 
     1479        "     MOV     R0, #0x20\n" 
     1480        "     BL         sub_FF867708\n" 
     1481        "     STR     R5, [R4,#0x28]\n" 
     1482        "     BL         sub_FF82BFFC\n" 
     1483        "     BL         sub_FF82BF50\n" 
     1484        "     LDR     R0, [R4,#0x1C]\n" 
     1485        "     LDR     R1, [R4,#0x20]\n" 
     1486        "     ORRS    R0, R0, R1\n" 
     1487        "     BLNE    sub_FF86FFB4\n" 
     1488        "     LDR     R0, [R4,#0x68]\n" 
     1489        "     CMP     R0, #0\n" 
     1490        "     BNE     loc_FF86F314\n" 
     1491        "     BL         _taskcreate_StartupImage\n" 
     1492        "     B         loc_FF86F31C\n" 
     1493 
     1494 
     1495    "loc_FF86F314:\n"    // CODE XREF: sub_FF86F224+E4j 
     1496        "     BL         sub_FF825C94\n" 
     1497        "     BL         sub_FF82CA40\n" 
     1498 
     1499    "loc_FF86F31C:\n"    // CODE XREF: sub_FF86F224+ECj 
     1500        "     BL         taskcreate_InitFileModules_my\n"  //  -------------> 
     1501        "     BL         sub_FF870DB0\n" 
     1502        "     B         loc_FF86F418\n" 
     1503 
     1504 
     1505    "loc_FF86F328:\n"    // CODE XREF: sub_FF86F224+2Cj 
     1506        "     MOV     R0, #8\n" 
     1507        "     BL         sub_FF86E64C\n" 
     1508        "     BL         _taskcreate_CommonDrivers\n" 
     1509        "     BL         sub_FF871908\n" 
     1510        "     LDR     R5, =0x4004\n" 
     1511        "     MOV     R0, #0\n" 
     1512        "     MOV     R1, R5\n" 
     1513        "     BL         sub_FF872404\n" 
     1514        "     LDR     R1, =0xFF86F474\n"    // aAcBootpb = "AC:BootPB" 
     1515        "     MOV     R0, #0x20\n" 
     1516        "     BL         sub_FF867708\n" 
     1517        "     BL         taskcreate_InitFileModules_my\n"  //  -------------> 
     1518        "     BL         sub_FF870E44\n" 
     1519        "     BL         sub_FF82CA04\n" 
     1520        "     MOV     R0, R5\n" 
     1521        "     BL         sub_FF82BE84_my\n"    //   ---------------> movie rec 
     1522        "     LDR     R0, [R4,#0x68]\n" 
     1523        "     CMP     R0, #0\n" 
     1524        "     BNE     loc_FF86F37C\n" 
     1525        "     BL         _taskcreate_StartupImage\n" 
     1526        "     B         loc_FF86F380\n" 
     1527 
     1528 
     1529    "loc_FF86F37C:\n"    // CODE XREF: sub_FF86F224+14Cj 
     1530        "     BL         sub_FF825C94\n" 
     1531 
     1532    "loc_FF86F380:\n"    // CODE XREF: sub_FF86F224+154j 
     1533        "     BL         sub_FF870DE0\n" 
     1534        "     LDR     R0, [R4,#0x30]\n" 
     1535        "     CMP     R0, #0\n" 
     1536        "     BEQ     loc_FF86F418\n" 
     1537 
     1538    "loc_FF86F390:\n"    // CODE XREF: sub_FF86F224+44j 
     1539        "     BL         sub_FF86FFFC\n" 
     1540        "     B         loc_FF86F418\n" 
     1541 
     1542 
     1543    "loc_FF86F398:\n"    // CODE XREF: sub_FF86F224+18j 
     1544        "     MOV     R1, R6\n" 
     1545        "     MOV     R0, #0\n" 
     1546        "     BL         sub_FF872404\n" 
     1547        "     LDR     R1, =0xFF86F480\n"    // aAcBootclock = "AC:BootClock" 
     1548        "     MOV     R0, #0x20\n" 
     1549        "     BL         sub_FF867708\n" 
     1550        "     STR     R5, [R4,#0x68]\n" 
     1551        "     BL         sub_FF870E44\n" 
     1552        "     BL         sub_FF82CA04\n" 
     1553        "     BL         sub_FF86FF90\n" 
     1554        "     BL         sub_FF82CA9C\n" 
     1555        "     CMP     R0, #0\n" 
     1556        "     LDRNE   R0, =0x804B\n" 
     1557        "     MOVNE   R1, #0\n" 
     1558        "     BLNE    _j_PTM_SetCurrentItem\n" 
     1559        "     BL         sub_FF872284\n" 
     1560        "     MOV     R0, #0x80\n" 
     1561        "     BL         sub_FF82BE84_my\n"    //   ---------------> movie rec 
     1562        "     BL         sub_FF871C90\n" 
     1563        "     BL         _StartGUISystem\n" 
     1564        "     BL         sub_FF944944\n" 
     1565        "     BL         sub_FF98ECE8\n" 
     1566        "     BL         sub_FF871630\n" 
     1567        "     BL         sub_FF871AE8\n" 
     1568        "     MOV     R0, #9\n" 
     1569        "     BL         sub_FF86E64C\n" 
     1570        "     LDR     R0, =0x300E\n" 
     1571        "     MOV     R1, R6\n" 
     1572        "     BL         _PostLogicalEventToUI\n"    // "DryOS Canon Firmware; A720-based" 
     1573        "     MOV     R1, #0\n" 
     1574        "     MOV     R0, #1\n" 
     1575        "     BL         sub_FF872404\n" 
     1576 
     1577    "loc_FF86F418:\n"    // CODE XREF: sub_FF86F224+7Cj 
     1578 
     1579        "     MOV     R0, #0\n" 
     1580        "     LDMFD   SP!, {R4-R8,PC}\n" 
     1581 
     1582 
     1583    "loc_FF86F420:\n"    // CODE XREF: sub_FF86F224+34j 
     1584 
     1585        "     MOV     R0, #1\n" 
     1586        "     LDMFD   SP!, {R4-R8,PC}\n" 
     1587    ); 
     1588
     1589 
     1590 
     1591 
     1592 
     1593 
     1594 
     1595void __attribute__((naked,noinline)) taskcreate_InitFileModules_my() { //#fs 
    4061596        asm volatile ( 
    407                 "STMFD   SP!, {R4,LR}\n" 
    408                 "BL      sub_FFC5CB64\n" 
    409                 "BL      sub_FFC3A27C\n"    // IsFactoryMode" 
    410                 "CMP     R0, #1\n" 
    411                 "BNE     loc_FFC1C6E4\n" 
    412                 "BL      sub_FFC5F8B0\n" 
    413                 "LDMFD   SP!, {R4,LR}\n" 
    414                 "B       sub_FFC3A2BC\n"    // StartFactoryModeController" 
    415                 "loc_FFC1C6E4:\n" 
    416                 "BL      sub_FFC5E998\n" 
    417                 "LDR     R4, =0x1DCC\n" 
    418                 "LDR     R0, [R4,#4]\n" 
    419                 "CMP     R0, #0\n" 
    420                 "LDMNEFD SP!, {R4,PC}\n" 
    421                 "MOV     R1, #0\n" 
    422                 "LDR     R0, =sub_FFC1C294_my\n"        // continue here for SDHC-boot-support 
    423                 "BL      sub_FFC5AEA0\n"    // CreateController" 
    424                 "STR     R0, [R4,#4]\n" 
    425                 "LDMFD   SP!, {R4,PC}\n" 
     1597 
     1598                "LDR     R0, =0x5E28\n" 
     1599                "STMFD   SP!, {R3,LR}\n" 
     1600                "LDR     R1, [R0,#4]\n" 
     1601                "CMP     R1, #0\n" 
     1602                "BNE     locret_FF870D70\n" 
     1603                "MOV     R1, #1\n" 
     1604                "STR     R1, [R0,#4]\n" 
     1605                "MOV     R3, #0\n" 
     1606                "STR     R3, [SP]\n" 
     1607                "LDR     R3, =task_InitFileModules_my\n" // continue for SDHC-boot 
     1608                "MOV     R1, #0x19\n" 
     1609                "LDR     R0, =0xFF870E9C\n"  // aInitfilemodule 
     1610                "MOV     R2, #0x1000\n" 
     1611                "BL     _CreateTask\n" 
     1612 
     1613        "locret_FF870D70:\n" 
     1614                "LDMFD   SP!, {R12,PC}\n" 
    4261615        ); 
    4271616}; //#fe 
    4281617 
    429 void __attribute__((naked,noinline)) sub_FFC1C294_my() { //#fs   
     1618void __attribute__((naked,noinline)) task_InitFileModules_my() { //#fs   
    4301619        asm volatile ( 
    431                 //"B sub_FFC1C294\n" // test: branch to original function 
    432                 "STMFD   SP!, {R3-R11,LR}\n" 
    433                 "LDR     R6, =0x1DCC\n" 
    434                 "MOV     R5, R3\n" 
    435                 "LDR     R0, [R6,#0x14]\n" 
    436                 "MOV     R4, R1\n" 
    437                 "CMP     R0, #1\n" 
    438                 "BNE     loc_FFC1C2B8\n" 
    439                 "BL      sub_FFC5D36C\n" 
    440                 "B       loc_FFC1C348\n" 
    441         "loc_FFC1C2B8:\n" 
    442                 "LDR     R11, =0x1167\n" 
    443                 "MOV     R7, #0\n" 
    444                 "SUB     R12, R11, #5\n" 
    445                 "CMP     R4, R12\n" 
    446                 "MOV     R9, #1\n" 
    447                 "BEQ     loc_FFC1C5EC\n" 
    448                 "BGT     loc_FFC1C3E8\n" 
    449                 "LDR     R0, =0x1061\n" 
    450                 "ORR     R12, R0, R0,ASR#11\n" 
    451                 "CMP     R4, R12\n" 
    452                 "ADD     R1, R0, #4\n" 
    453                 "BEQ     loc_FFC1C684\n" 
    454                 "BGT     loc_FFC1C374\n" 
    455                 "LDR     R12, =0x1056\n" 
    456                 "CMP     R4, R12\n" 
    457                 "BEQ     loc_FFC1C684\n" 
    458                 "BGT     loc_FFC1C350\n" 
    459                 "SUB     R12, R4, #0x800\n" 
    460                 "SUBS    R12, R12, #3\n" 
    461                 "BEQ     loc_FFC1C508\n" 
    462                 "SUB     R12, R4, #0x800\n" 
    463                 "SUBS    R12, R12, #0x158\n" 
    464                 "BEQ     loc_FFC1C6A0\n" 
    465                 "SUB     R12, R4, #0x900\n" 
    466                 "SUBS    R12, R12, #0xA3\n" 
    467                 "SUBNE   R12, R4, #0x900\n" 
    468                 "SUBNES  R12, R12, #0xA5\n" 
    469                 "BNE     loc_FFC1C6BC\n" 
    470                 "LDR     R0, [R6,#0xC]\n" 
    471                 "SUB     R12, R0, #0x8000\n" 
    472                 "SUBS    R12, R12, #2\n" 
    473                 "BEQ     loc_FFC1C348\n" 
    474                 "LDR     R0, =0x10A5\n" 
    475                 "BL      sub_FFC5BC60\n"        // IsControlEventActive 
    476                 "CMP     R0, #0\n" 
    477                 "BEQ     loc_FFC1C6BC\n" 
    478         "loc_FFC1C348:\n" 
    479                 "MOV     R0, #0\n" 
    480                 "LDMFD   SP!, {R3-R11,PC}\n" 
    481         "loc_FFC1C350:\n" 
    482                 "SUB     R12, R4, #0x1000\n" 
    483                 "SUBS    R12, R12, #0x5B\n" 
    484                 "SUBNE   R12, R4, #0x1000\n" 
    485                 "SUBNES  R12, R12, #0x5E\n" 
    486                 "CMPNE   R4, R0\n" 
    487                 "SUBNE   R12, R4, #0x1000\n" 
    488                 "SUBNES  R12, R12, #0x62\n" 
    489                 "BNE     loc_FFC1C6BC\n" 
    490                 "B       loc_FFC1C684\n" 
    491         "loc_FFC1C374:\n" 
    492                 "LDR     R12, =0x10AE\n" 
    493                 "CMP     R4, R12\n" 
    494                 "BEQ     loc_FFC1C620\n" 
    495                 "BGT     loc_FFC1C3B8\n" 
    496                 "CMP     R4, R1\n" 
    497                 "BEQ     loc_FFC1C684\n" 
    498                 "SUB     R12, R4, #0x1000\n" 
    499                 "LDR     R0, =0x10A3\n" 
    500                 "SUBS    R12, R12, #0xA9\n" 
    501                 "BEQ     loc_FFC1C5FC\n" 
    502                 "SUB     R12, R4, #0x1000\n" 
    503                 "SUBS    R12, R12, #0xAA\n" 
    504                 "BEQ     loc_FFC1C614\n" 
    505                 "SUB     R12, R4, #0x1000\n" 
    506                 "SUBS    R12, R12, #0xAD\n" 
    507                 "BNE     loc_FFC1C6BC\n" 
    508                 "B       loc_FFC1C608\n" 
    509         "loc_FFC1C3B8:\n" 
    510                 "SUB     R12, R4, #0x1000\n" 
    511                 "SUBS    R12, R12, #0xAF\n" 
    512                 "BEQ     loc_FFC1C608\n" 
    513                 "SUB     R12, R4, #0x1000\n" 
    514                 "SUBS    R12, R12, #0xB0\n" 
    515                 "BEQ     loc_FFC1C620\n" 
    516                 "SUB     R12, R4, #0x1000\n" 
    517                 "SUBS    R12, R12, #0xB2\n" 
    518                 "BNE     loc_FFC1C6BC\n" 
    519                 "LDR     R0, =0x1008\n" 
    520                 "MOV     R1, R5\n" 
    521                 "B       loc_FFC1C5E4\n" 
    522         "loc_FFC1C3E8:\n" 
    523                 "LDR     R10, =0x201B\n" 
    524                 "LDR     R0, =0x1DCC\n" 
    525                 "CMP     R4, R10\n" 
    526                 "LDR     R2, [R0,#0x10]!\n" 
    527                 "LDR     R1, [R0,#0x10]\n" 
    528                 "SUB     R8, R10, #0x17\n" 
    529                 "BEQ     loc_FFC1C5C0\n" 
    530                 "BGT     loc_FFC1C4A4\n" 
    531                 "LDR     R10, =0x116A\n" 
    532                 "CMP     R4, R10\n" 
    533                 "BEQ     loc_FFC1C5AC\n" 
    534                 "BGT     loc_FFC1C460\n" 
    535                 "SUB     R12, R4, #0x1100\n" 
    536                 "SUBS    R12, R12, #0x63\n" 
    537                 "MOVEQ   R1, #0\n" 
    538                 "MOVEQ   R0, #0x82\n" 
    539                 "BEQ     loc_FFC1C5D8\n" 
    540                 "SUB     R12, R4, #0x1100\n" 
    541                 "SUBS    R12, R12, #0x65\n" 
    542                 "BEQ     loc_FFC1C5D0\n" 
    543                 "LDR     R5, =0x1168\n" 
    544                 "CMP     R4, R11\n" 
    545                 "CMPNE   R4, R5\n" 
    546                 "BNE     loc_FFC1C6BC\n" 
    547                 "STR     R9, [R6,#0x10]\n" 
    548                 "LDR     R6, =0x4508\n" 
    549                 "CMP     R1, #0\n" 
    550                 "BEQ     loc_FFC1C594\n" 
    551                 "BL      sub_FFC5D3A0\n" 
    552                 "B       loc_FFC1C5A0\n" 
    553         "loc_FFC1C460:\n" 
    554                 "SUB     R12, R4, #0x2000\n" 
    555                 "SUBS    R12, R12, #2\n" 
    556                 "BEQ     loc_FFC1C650\n" 
    557                 "CMP     R4, R8\n" 
    558                 "MOV     R0, R8\n" 
    559                 "BEQ     loc_FFC1C65C\n" 
    560                 "SUB     R12, R4, #0x2000\n" 
    561                 "SUBS    R12, R12, #5\n" 
    562                 "BEQ     loc_FFC1C650\n" 
    563                 "SUB     R12, R4, #0x2000\n" 
    564                 "SUBS    R12, R12, #0x19\n" 
    565                 "BNE     loc_FFC1C6BC\n" 
    566                 "CMP     R1, #0\n" 
    567                 "BEQ     loc_FFC1C348\n" 
    568                 "CMP     R2, #0\n" 
    569                 "BNE     loc_FFC1C348\n" 
    570                 "B       loc_FFC1C698\n" 
    571         "loc_FFC1C4A4:\n" 
    572                 "LDR     R12, =0x3111\n" 
    573                 "CMP     R4, R12\n" 
    574                 "BEQ     loc_FFC1C624\n" 
    575                 "BGT     loc_FFC1C4E4\n" 
    576                 "SUB     R12, R4, #0x2000\n" 
    577                 "SUBS    R12, R12, #0x1D\n" 
    578                 "BEQ     loc_FFC1C650\n" 
    579                 "LDR     R0, =0x2027\n" 
    580                 "CMP     R4, R0\n" 
    581                 "BEQ     loc_FFC1C62C\n" 
    582                 "SUB     R12, R4, #0x3000\n" 
    583                 "SUBS    R12, R12, #6\n" 
    584                 "SUBNE   R12, R4, #0x3000\n" 
    585                 "SUBNES  R12, R12, #0x110\n" 
    586                 "BNE     loc_FFC1C6BC\n" 
    587                 "B       loc_FFC1C624\n" 
    588         "loc_FFC1C4E4:\n" 
    589                 "CMP     R4, #0x3140\n" 
    590                 "BEQ     loc_FFC1C678\n" 
    591                 "SUB     R12, R4, #0x3200\n" 
    592                 "SUBS    R12, R12, #1\n" 
    593                 "BEQ     loc_FFC1C6BC\n" 
    594                 "SUB     R12, R4, #0x3200\n" 
    595                 "SUBS    R12, R12, #2\n" 
    596                 "BNE     loc_FFC1C6BC\n" 
    597                 "B       loc_FFC1C624\n" 
    598         "loc_FFC1C508:\n" 
    599                 "MOV     R4, #1\n" 
    600                 "MOV     R0, #2\n" 
    601                 "BL      sub_FFC5CBF8\n" 
    602                 "CMP     R0, #1\n" 
    603                 "MOVEQ   R4, #2\n" 
    604                 "MOV     R0, R4\n" 
    605                 "BL      sub_FFC124B4\n"        // uLoadTest1 
    606                 "CMP     R0, #0\n" 
    607                 "STRNE   R9, [R6,#0x14]\n" 
    608                 "BNE     loc_FFC1C560\n" 
    609                 "BL      sub_FFC620DC\n" 
    610                 "BL      sub_FFC600F8\n" 
    611                 "BL      sub_FFC60C54\n" 
    612                 "BL      sub_FFC5FB20\n" 
    613                 "BL      sub_FFC611F8\n" 
    614                 "CMP     R0, #0\n" 
    615                 "BEQ     loc_FFC1C568\n" 
    616                 "BL      sub_FFC1BFB8\n" 
    617                 "BL      sub_FFC6115C\n" 
    618                 "MOV     R1, R0\n" 
    619                 "MOV     R0, R11\n" 
    620                 "BL      sub_FFC5B69C\n" 
    621         "loc_FFC1C560:\n" 
    622                 "MOV     R0, R7\n" 
    623                 "LDMFD   SP!, {R3-R11,PC}\n" 
    624         "loc_FFC1C568:\n" 
    625                 "BL      sub_FFC16188\n" 
    626                 "CMP     R0, #1\n" 
    627                 "LDRNE   R0, =0x310B\n" 
    628                 "LDREQ   R0, =0x310C\n" 
    629                 "MOV     R1, #0\n" 
    630                 "BL      sub_FFC5B69C\n" 
    631                 "BL      sub_FFC5F474_my\n"        // Continue here (possibility 1) for SDHC-boot 
    632                 "B       loc_FFC1C560\n" 
    633         "loc_FFC1C588:\n" 
    634                 "MOV     R0, R6\n" 
    635                 "BL      sub_FFC4A858\n" 
    636                 "B       loc_FFC1C348\n" 
    637         "loc_FFC1C594:\n" 
    638                 "BL      sub_FFC6039C\n" 
    639                 "BL      sub_FFC60300\n" 
    640                 "BL      sub_FFC15EF0\n" 
    641         "loc_FFC1C5A0:\n" 
    642                 "CMP     R4, R5\n" 
    643                 "BNE     loc_FFC1C348\n" 
    644                 "B       loc_FFC1C588\n" 
    645         "loc_FFC1C5AC:\n" 
    646                 "MOV     R0, #1\n" 
    647                 "BL      sub_FFC5D4CC\n" 
    648                 "LDR     R0, =0x1005\n" 
    649                 "MOV     R1, R10\n" 
    650                 "B       loc_FFC1C5E4\n" 
    651         "loc_FFC1C5C0:\n" 
    652                 "CMP     R2, #1\n" 
    653                 "BNE     loc_FFC1C624\n" 
    654                 "BL      sub_FFC5D3A0\n" 
    655                 "B       loc_FFC1C348\n" 
    656         "loc_FFC1C5D0:\n" 
    657                 "MOV     R1, #0\n" 
    658                 "MOV     R0, #0x83\n" 
    659         "loc_FFC1C5D8:\n" 
    660                 "BL      sub_FFC60D1C\n" 
    661                 "B       loc_FFC1C348\n" 
    662         "loc_FFC1C5E0:\n" 
    663                 "MOV     R0, R4\n" 
    664         "loc_FFC1C5E4:\n" 
    665                 "BL      sub_FFC5E6C0_my\n"        // Continue here (possibility 2) for SDHC-boot 
    666                 "LDMFD   SP!, {R3-R11,PC}\n" 
    667         "loc_FFC1C5EC:\n" 
    668                 "BL      sub_FFC64100\n" 
    669                 "CMP     R0, #0\n" 
    670                 "BLNE    sub_FFC63060\n" 
    671                 "B       loc_FFC1C624\n" 
    672         "loc_FFC1C5FC:\n" 
    673                 "BL      sub_FFC5BC60\n"        // IsControlEventActive 
    674                 "CMP     R0, #0\n" 
    675                 "BNE     loc_FFC1C348\n" 
    676         "loc_FFC1C608:\n" 
    677                 "MOV     R0, R4\n" 
    678                 "BL      sub_FFC1C084\n" 
    679                 "LDMFD   SP!, {R3-R11,PC}\n" 
    680         "loc_FFC1C614:\n" 
    681                 "BL      sub_FFC5BC60\n"        // IsControlEventActive 
    682                 "CMP     R0, #0\n" 
    683                 "BNE     loc_FFC1C348\n" 
    684         "loc_FFC1C620:\n" 
    685                 "BL      sub_FFC1CAC0\n" 
    686         "loc_FFC1C624:\n" 
    687                 "MOV     R1, R5\n" 
    688                 "B       loc_FFC1C5E0\n" 
    689         "loc_FFC1C62C:\n" 
    690                 "MOV     R1, #0\n" 
    691                 "BL      sub_FFC5E6C0_my\n"        // Continue here (possibility 2) for SDHC-boot 
    692                 "MOV     R1, #0\n" 
    693                 "MOV     R0, R10\n" 
    694                 "BL      sub_FFC5E6C0_my\n"        // Continue here (possibility 2) for SDHC-boot 
    695                 "MOV     R1, #0\n" 
    696                 "MOV     R0, R8\n" 
    697         "loc_FFC1C648:\n" 
    698                 "BL      sub_FFC5E6C0_my\n"        // Continue here (possibility 2) for SDHC-boot 
    699                 "B       loc_FFC1C348\n" 
    700         "loc_FFC1C650:\n" 
    701                 "STR     R7, [R6,#0x20]\n" 
    702                 "BL      sub_FFC1C888\n" 
    703                 "B       loc_FFC1C624\n" 
    704         "loc_FFC1C65C:\n" 
    705                 "STR     R7, [R6,#0x20]\n" 
    706                 "BL      sub_FFC1C888\n" 
    707                 "LDR     R0, [R6,#0x10]\n" 
    708                 "CMP     R0, #1\n" 
    709                 "BNE     loc_FFC1C624\n" 
    710                 "BL      sub_FFC5D3E4\n" 
    711                 "B       loc_FFC1C348\n" 
    712         "loc_FFC1C678:\n" 
    713                 "CMP     R1, #0\n" 
    714                 "BLEQ    sub_FFC1C888\n" 
    715                 "B       loc_FFC1C348\n" 
    716         "loc_FFC1C684:\n" 
    717                 "CMP     R4, R0\n" 
    718                 "BEQ     loc_FFC1C698\n" 
    719                 "CMP     R4, R1\n" 
    720                 "MVNNE   R0, #0\n" 
    721                 "MOVEQ   R0, R1\n" 
    722         "loc_FFC1C698:\n" 
    723                 "MOV     R1, #0\n" 
    724                 "B       loc_FFC1C648\n" 
    725         "loc_FFC1C6A0:\n" 
    726                 "TST     R5, #0x80000000\n" 
    727                 "MOVNE   R0, #1\n" 
    728                 "LDMNEFD SP!, {R3-R11,PC}\n" 
    729                 "BL      sub_FFC65400\n" 
    730                 "CMP     R0, #0\n" 
    731                 "BLEQ    sub_FFC18934\n" 
    732                 "B       loc_FFC1C348\n" 
    733         "loc_FFC1C6BC:\n" 
    734                 "MOV     R1, #0\n" 
    735                 "B       loc_FFC1C5E0\n" 
     1620                "STMFD   SP!, {R4-R6,LR}\n" 
     1621                "BL      sub_FF869D00\n" 
     1622                "LDR     R5, =0x5006\n" 
     1623                "MOVS    R4, R0\n" 
     1624                "MOVNE   R1, #0\n" 
     1625                "MOVNE   R0, R5\n" 
     1626                "BLNE    _PostLogicalEventToUI \n" // "DryOS Canon Firmware; A720-based" 
     1627                "BL      sub_FF869D2C_my\n"  // continue to SDHC-hook here! 
     1628                "BL      core_spytask_can_start\n"      // CHDK: Set "it's-save-to-start"-Flag for spytask 
     1629                "CMP     R4, #0\n" 
     1630                "MOVEQ   R0, R5\n" 
     1631                "LDMEQFD SP!, {R4-R6,LR}\n" 
     1632                "MOVEQ   R1, #0\n" 
     1633                "BEQ     _PostLogicalEventToUI\n" // it's save to run this after spytask has started 
     1634                "LDMFD   SP!, {R4-R6,PC}\n" 
    7361635        ); 
    7371636}; //#fe 
    7381637 
    739 void __attribute__((naked,noinline)) sub_FFC5F474_my() { //#fs   
     1638void __attribute__((naked,noinline)) sub_FF869D2C_my() { //#fs   
    7401639        asm volatile ( 
    741                 "STMFD   SP!, {R4,LR}\n" 
    742                 "BL      sub_FFC1C83C\n" 
    743                 "CMP     R0, #0\n" 
    744                 "LDRNE   R0, =0x1061\n" 
    745                 "BNE     loc_FFC5F49C\n" 
    746                 "BL      sub_FFC1C824\n" 
    747                 "CMP     R0, #0\n" 
    748                 "LDRNE   R0, =0x105B\n" 
    749                 "BNE     loc_FFC5F49C\n" 
    750                 "BL      sub_FFC1C854\n" 
    751         "loc_FFC5F49C:\n" 
    752                 "MOV     R4, R0\n" 
    753                 "BL      sub_FFC5F608\n" 
    754                 "MOV     R0, R4\n" 
    755                 "BL      sub_FFC5F6A8\n" 
    756                 "BL      sub_FFC1C854\n" 
    757                 "MOV     R4, R0\n" 
    758                 "LDR     R0, =0x5AA8\n" 
    759                 "LDR     R0, [R0]\n" 
    760                 "TST     R0, #1\n" 
    761                 "TSTEQ   R0, #0x10\n" 
    762                 "BEQ     loc_FFC5F4D4\n" 
    763         "loc_FFC5F4C8:\n" 
    764                 "MOV     R1, R4\n" 
    765                 "MOV     R0, #2\n" 
    766                 "B       loc_FFC5F518\n" 
    767         "loc_FFC5F4D4:\n" 
    768                 "TST     R0, #0x40\n" 
    769                 "BEQ     loc_FFC5F4E8\n" 
    770         "loc_FFC5F4DC:\n" 
    771                 "MOV     R1, R4\n" 
    772                 "MOV     R0, #1\n" 
    773                 "B       loc_FFC5F518\n" 
    774         "loc_FFC5F4E8:\n" 
    775                 "TST     R0, #0x20\n" 
    776                 "BEQ     loc_FFC5F504\n" 
    777                 "TST     R0, #0x4000\n" 
    778                 "BNE     loc_FFC5F504\n" 
    779         "loc_FFC5F4F8:\n" 
    780                 "MOV     R1, R4\n" 
    781                 "MOV     R0, #0\n" 
    782                 "B       loc_FFC5F518\n" 
    783         "loc_FFC5F504:\n" 
    784                 "LDR     R1, =0x102\n" 
    785                 "BICS    R1, R1, R0\n" 
    786                 "BNE     loc_FFC5F520\n" 
    787                 "MOV     R1, R4\n" 
    788                 "MOV     R0, #6\n" 
    789         "loc_FFC5F518:\n" 
    790                 "LDMFD   SP!, {R4,LR}\n" 
    791                 "B       sub_FFC5F410_my\n"        // cont. for SDHC-boot 
    792         "loc_FFC5F520:\n" 
    793                 "TST     R0, #0x100\n" 
    794                 "BNE     loc_FFC5F4C8\n" 
    795                 "TST     R0, #0x400\n" 
    796                 "BNE     loc_FFC5F4DC\n" 
    797                 "TST     R0, #0x200\n" 
    798                 "TSTEQ   R0, #2\n" 
    799                 "BNE     loc_FFC5F4F8\n" 
    800                 "TST     R0, #0x40000\n" 
    801                 "BEQ     loc_FFC5F4C8\n" 
    802                 "TST     R0, #0x200000\n" 
    803                 "MOVEQ   R1, R4\n" 
    804                 "MOVEQ   R0, #1\n" 
    805                 "BLEQ    sub_FFC5F410_my\n"        // cont. for SDHC-boot 
    806                 "B       loc_FFC5F4C8\n" 
     1640                "STMFD  SP!, {R4,LR}\n" 
     1641                "BL     sub_FF84D4A8_my\n" // continue to SDHC-hook here! 
     1642                "LDR    R4, =0x58A8\n" 
     1643                "LDR    R0, [R4,#4]\n" 
     1644                "CMP    R0, #0\n" 
     1645                "BNE    loc_FF869D5C\n" 
     1646                "BL     sub_FF879F20\n" 
     1647                "BL     sub_FF8FB3B0\n" 
     1648                "BL     sub_FF879F20\n" 
     1649                "BL     sub_FF907F04\n" 
     1650                "BL     sub_FF879F30\n" 
     1651                "BL     sub_FF8FB458\n" 
     1652 
     1653        "loc_FF869D5C:\n" 
     1654                "MOV    R0, #1\n" 
     1655                "STR    R0, [R4]\n" 
     1656                "LDMFD  SP!, {R4,PC}\n" 
     1657 
    8071658        ); 
    8081659}; //#fe 
    8091660 
    810 void __attribute__((naked,noinline)) sub_FFC5F410_my() { //#fs   
     1661void __attribute__((naked,noinline)) sub_FF84D4A8_my() { //#fs   
    8111662        asm volatile ( 
    812                 "STMFD   SP!, {R4-R6,LR}\n" 
    813                 "MOVS    R4, R0\n" 
    814                 "MOV     R0, #1\n" 
    815                 "MOV     R5, R1\n" 
    816                 "BNE     loc_FFC5F450\n" 
    817                 "MOV     R1, #0\n" 
    818                 "MOV     R0, #0\n" 
    819                 "BL      sub_FFC5CB88\n" 
    820                 "BL      sub_FFC1C854\n" 
    821                 "SUB     R12, R0, #0x1000\n" 
    822                 "SUBS    R12, R12, #0x5B\n" 
    823                 "BNE     loc_FFC5F448\n" 
    824         "loc_FFC5F440:\n" 
    825                 "BL      sub_FFC5F338\n" 
    826                 "B       loc_FFC5F458\n" 
    827         "loc_FFC5F448:\n" 
    828                 "BL      sub_FFC5F398\n" 
    829                 "B       loc_FFC5F458\n" 
    830         "loc_FFC5F450:\n" 
    831                 "CMP     R4, #5\n" 
    832                 "BEQ     loc_FFC5F440\n" 
    833         "loc_FFC5F458:\n" 
    834                 "CMP     R0, #0\n" 
    835                 "LDREQ   R5, =0x1162\n" 
    836                 "MOVEQ   R4, #2\n" 
    837                 "MOV     R0, R4\n" 
    838                 "MOV     R1, R5\n" 
    839                 "LDMFD   SP!, {R4-R6,LR}\n" 
    840                 "B       sub_FFC5E6C0_my\n" 
     1663                "STMFD  SP!, {R4-R6,LR}\n" 
     1664                "MOV    R6, #0\n" 
     1665                "MOV    R0, R6\n" 
     1666                "BL     sub_FF84D078\n" 
     1667                "LDR    R4, =0x125D4\n" 
     1668                "MOV    R5, #0\n" 
     1669                "LDR    R0, [R4,#0x38]\n" 
     1670                "BL     sub_FF84DA40\n" 
     1671                "CMP    R0, #0\n" 
     1672                "LDREQ  R0, =0x2B3C\n" 
     1673                "STREQ  R5, [R0,#0xC]\n" 
     1674                "STREQ  R5, [R0,#0x10]\n" 
     1675                "STREQ  R5, [R0,#0x14]\n" 
     1676                "MOV    R0, R6\n" 
     1677                "BL     sub_FF84D0B8\n" // uMounter (u=unknown, just to prevent misunderstandings) 
     1678                "MOV    R0, R6\n" 
     1679                "BL     sub_FF84D2E4_my\n" // continue to SDHC-hook here! 
     1680                "MOV    R5, R0\n" 
     1681                "MOV    R0, R6\n" 
     1682                "BL     sub_FF84D350\n" 
     1683                "LDR    R1, [R4,#0x3C]\n" 
     1684                "AND    R2, R5, R0\n" 
     1685                "CMP    R1, #0\n" 
     1686                "MOV    R0, #0\n" 
     1687                "MOVEQ  R0, #0x80000001\n" 
     1688                "BEQ    loc_FF84D53C\n" 
     1689                "LDR    R3, [R4,#0x2C]\n" 
     1690                "CMP    R3, #2\n" 
     1691                "MOVEQ  R0, #4\n" 
     1692                "CMP    R1, #5\n" 
     1693                "ORRNE  R0, R0, #1\n" 
     1694                "BICEQ  R0, R0, #1\n" 
     1695                "CMP    R2, #0\n" 
     1696                "BICEQ  R0, R0, #2\n" 
     1697                "ORREQ  R0, R0, #0x80000000\n" 
     1698                "BICNE  R0, R0, #0x80000000\n" 
     1699                "ORRNE  R0, R0, #2\n" 
     1700 
     1701        "loc_FF84D53C:\n" 
     1702                "STR    R0, [R4,#0x40]\n" 
     1703                "LDMFD  SP!, {R4-R6,PC}\n" 
     1704 
    8411705        ); 
    8421706}; //#fe 
    8431707 
    844 void __attribute__((naked,noinline)) sub_FFC5E6C0_my() { //#fs   
     1708void __attribute__((naked,noinline)) sub_FF84D2E4_my() { //#fs   
    8451709        asm volatile ( 
    846                 "STMFD   SP!, {R4-R8,LR}\n" 
    847                 "MOV     R7, R1\n" 
    848                 "MOV     R6, R0\n" 
    849                 "BL      sub_FFC611F8\n" 
    850                 "CMP     R0, #0\n" 
    851                 "BNE     loc_FFC5E990\n" 
    852                 "MOV     R1, R7\n" 
    853                 "MOV     R0, R6\n" 
    854                 "BL      sub_FFC5D6D8\n" 
    855                 "LDR     R4, =0x59EC\n" 
    856                 "MOV     R5, #0\n" 
    857                 "LDR     R0, [R4,#0x10]\n" 
    858                 "CMP     R0, #0x16\n" 
    859                 "ADDLS   PC, PC, R0,LSL#2\n" 
    860                 "B       loc_FFC5E990\n" 
    861         "loc_FFC5E6FC:\n" 
    862                 "B       loc_FFC5E758\n" 
    863         "loc_FFC5E700:\n" 
    864                 "B       loc_FFC5E774\n" 
    865         "loc_FFC5E704:\n" 
    866                 "B       loc_FFC5E7A8\n" 
    867         "loc_FFC5E708:\n" 
    868                 "B       loc_FFC5E858\n" 
    869         "loc_FFC5E70C:\n" 
    870                 "B       loc_FFC5E868\n" 
    871         "loc_FFC5E710:\n" 
    872                 "B       loc_FFC5E990\n" 
    873         "loc_FFC5E714:\n" 
    874                 "B       loc_FFC5E990\n" 
    875         "loc_FFC5E718:\n" 
    876                 "B       loc_FFC5E8EC\n" 
    877         "loc_FFC5E71C:\n" 
    878                 "B       loc_FFC5E768\n" 
    879         "loc_FFC5E720:\n" 
    880                 "B       loc_FFC5E990\n" 
    881         "loc_FFC5E724:\n" 
    882                 "B       loc_FFC5E8EC\n" 
    883         "loc_FFC5E728:\n" 
    884                 "B       loc_FFC5E79C\n" 
    885         "loc_FFC5E72C:\n" 
    886                 "B       loc_FFC5E990\n" 
    887         "loc_FFC5E730:\n" 
    888                 "B       loc_FFC5E990\n" 
    889         "loc_FFC5E734:\n" 
    890                 "B       loc_FFC5E7B4\n" 
    891         "loc_FFC5E738:\n" 
    892                 "B       loc_FFC5E7C0\n" 
    893         "loc_FFC5E73C:\n" 
    894                 "B       loc_FFC5E830\n" 
    895         "loc_FFC5E740:\n" 
    896                 "B       loc_FFC5E780\n" 
    897         "loc_FFC5E744:\n" 
    898                 "B       loc_FFC5E978\n" 
    899         "loc_FFC5E748:\n" 
    900                 "B       loc_FFC5E8F8\n" 
    901         "loc_FFC5E74C:\n" 
    902                 "B       loc_FFC5E928\n" 
    903         "loc_FFC5E750:\n" 
    904                 "B       loc_FFC5E928\n" 
    905         "loc_FFC5E754:\n" 
    906                 "B       loc_FFC5E874\n" 
    907         "loc_FFC5E758:\n" 
    908                 "MOV     R1, R7\n" 
    909                 "MOV     R0, R6\n" 
    910                 "LDMFD   SP!, {R4-R8,LR}\n" 
    911                 "B       sub_FFC5E06C_my\n"    // uAC_Boot // divert for SDHC-boot 
    912         "loc_FFC5E768:\n" 
    913                 "MOV     R0, R6\n" 
    914                 "LDMFD   SP!, {R4-R8,LR}\n" 
    915                 "B       sub_FFC5F030\n" 
    916         "loc_FFC5E774:\n" 
    917                 "MOV     R0, R6\n" 
    918                 "LDMFD   SP!, {R4-R8,LR}\n" 
    919                 "B       sub_FFC5DD0C\n" 
    920         "loc_FFC5E780:\n" 
    921                 "SUB     R12, R6, #0x3000\n" 
    922                 "SUBS    R12, R12, #6\n" 
    923                 "BNE     loc_FFC5E990\n" 
    924                 "MOV     R0, #0\n" 
    925                 "BL      sub_FFC1BE50\n" 
    926                 "BL      sub_FFC5EED0\n"        // uAC_InitPB 
    927                 "B       loc_FFC5E988\n" 
    928         "loc_FFC5E79C:\n" 
    929                 "MOV     R0, R6\n" 
    930                 "LDMFD   SP!, {R4-R8,LR}\n" 
    931                 "B       sub_FFC5EF64\n" 
    932         "loc_FFC5E7A8:\n" 
    933                 "MOV     R0, R6\n" 
    934                 "LDMFD   SP!, {R4-R8,LR}\n" 
    935                 "B       sub_FFC5DE9C\n" 
    936         "loc_FFC5E7B4:\n" 
    937                 "MOV     R0, R6\n" 
    938                 "LDMFD   SP!, {R4-R8,LR}\n" 
    939                 "B       sub_FFC5E460\n" 
    940         "loc_FFC5E7C0:\n" 
    941                 "SUB     R12, R6, #0x3200\n" 
    942                 "SUBS    R12, R12, #2\n" 
    943                 "BNE     loc_FFC5E990\n" 
    944                 "MOV     R0, #3\n" 
    945                 "BL      sub_FFC5D5B0\n"        // uCameraConState 
    946                 "MOV     R0, #8\n" 
    947                 "BL      sub_FFC1BDB8\n" 
    948                 "MOV     R1, #0\n" 
    949                 "MOV     R0, #0x19\n" 
    950                 "BL      sub_FFC2C874\n" 
    951                 "BL      sub_FFC6039C\n" 
    952                 "BL      sub_FFC60610\n" 
    953                 "BL      sub_FFC5FB90\n" 
    954                 "B       loc_FFC5E988\n" 
    955                 "\n" 
    956         "loc_FFC5E830:\n" 
    957                 "SUB     R12, R6, #0x3300\n" 
    958                 "SUBS    R12, R12, #1\n" 
    959                 "BNE     loc_FFC5E990\n" 
    960                 "LDR     R0, =0x4010\n" 
    961                 "BL      sub_FFC1BDB8\n" 
    962                 "BL      sub_FFD51F70\n" 
    963                 "BL      sub_FFC5FB90\n" 
    964                 "MOV     R0, #4\n" 
    965                 "BL      sub_FFC5D5B0\n"        // uCameraConState 
    966                 "B       loc_FFC5E988\n" 
    967         "loc_FFC5E858:\n" 
    968                 "MOV     R1, R7\n" 
    969                 "MOV     R0, R6\n" 
    970                 "LDMFD   SP!, {R4-R8,LR}\n" 
    971                 "B       sub_FFC5E5BC\n" 
    972         "loc_FFC5E868:\n" 
    973                 "MOV     R0, R6\n" 
    974                 "LDMFD   SP!, {R4-R8,LR}\n" 
    975                 "B       sub_FFC5F10C\n" 
    976         "loc_FFC5E874:\n" 
    977                 "LDR     R7, =0x1182\n" 
    978                 "MOV     R0, R6\n" 
    979                 "CMP     R0, R7\n" 
    980                 "MOV     R6, #1\n" 
    981                 "STREQ   R6, [R4,#0xA8]\n" 
    982                 "BEQ     loc_FFC5E988\n" 
    983                 "SUB     R12, R0, #0x1000\n" 
    984                 "SUBS    R12, R12, #0x1AC\n" 
    985                 "BEQ     loc_FFC5E8D4\n" 
    986                 "SUB     R12, R0, #0x3000\n" 
    987                 "SUBS    R12, R12, #0x224\n" 
    988                 "BNE     loc_FFC5E990\n" 
    989                 "MOV     R0, #8\n" 
    990                 "BL      sub_FFC1BDB8\n" 
    991                 "MOV     R0, #3\n" 
    992                 "BL      sub_FFC5D5B0\n"        // uCameraConState 
    993                 "STR     R5, [R4,#0xAC]\n" 
    994                 "LDR     R0, [R4,#0xA8]\n" 
    995                 "CMP     R0, #0\n" 
    996                 "MOVNE   R1, #0\n" 
    997                 "MOVNE   R0, R7\n" 
    998                 "STRNE   R5, [R4,#0xA8]\n" 
    999                 "BLNE    sub_FFC5E5BC\n" 
    1000                 "B       loc_FFC5E988\n" 
    1001         "loc_FFC5E8D4:\n" 
    1002                 "LDR     R0, [R4,#0xAC]\n" 
    1003                 "CMP     R0, #0\n" 
    1004                 "BNE     loc_FFC5E988\n" 
    1005                 "BL      sub_FFD500D0\n" 
    1006                 "STR     R6, [R4,#0xAC]\n" 
    1007                 "B       loc_FFC5E988\n" 
    1008         "loc_FFC5E8EC:\n" 
    1009                 "MOV     R0, R6\n" 
    1010                 "LDMFD   SP!, {R4-R8,LR}\n" 
    1011                 "B       sub_FFC5E380\n" 
    1012         "loc_FFC5E8F8:\n" 
    1013                 "LDR     R12, =0x10B0\n" 
    1014                 "CMP     R6, R12\n" 
    1015                 "BEQ     loc_FFC5E924\n" 
    1016                 "BGT     loc_FFC5E930\n" 
    1017                 "CMP     R6, #4\n" 
    1018                 "BEQ     loc_FFC5E958\n" 
    1019                 "SUB     R12, R6, #0x1000\n" 
    1020                 "SUBS    R12, R12, #0xAA\n" 
    1021                 "SUBNE   R12, R6, #0x1000\n" 
    1022                 "SUBNES  R12, R12, #0xAE\n" 
    1023                 "BNE     loc_FFC5E990\n" 
    1024         "loc_FFC5E924:\n" 
    1025                 "BL      sub_FFC5D288\n" 
    1026         "loc_FFC5E928:\n" 
    1027                 "MOV     R0, R5\n" 
    1028                 "LDMFD   SP!, {R4-R8,PC}\n" 
    1029         "loc_FFC5E930:\n" 
    1030                 "SUB     R12, R6, #0x2000\n" 
    1031                 "SUBS    R12, R12, #4\n" 
    1032                 "BEQ     loc_FFC5E970\n" 
    1033                 "SUB     R12, R6, #0x5000\n" 
    1034                 "SUBS    R12, R12, #1\n" 
    1035                 "SUBNE   R12, R6, #0x5000\n" 
    1036                 "SUBNES  R12, R12, #6\n" 
    1037                 "BNE     loc_FFC5E990\n" 
    1038                 "BL      sub_FFC5DC74\n" 
    1039                 "B       loc_FFC5E988\n" 
    1040         "loc_FFC5E958:\n" 
    1041                 "LDR     R0, [R4,#0x2C]\n" 
    1042                 "CMP     R0, #0\n" 
    1043                 "BNE     loc_FFC5E970\n" 
    1044                 "BL      sub_FFC5EB30\n" 
    1045                 "BL      sub_FFC15EA8\n" 
    1046                 "B       loc_FFC5E988\n" 
    1047         "loc_FFC5E970:\n" 
    1048                 "BL      sub_FFC5D2C4\n" 
    1049                 "B       loc_FFC5E988\n" 
    1050         "loc_FFC5E978:\n" 
    1051                 "SUB     R12, R6, #0x3000\n" 
    1052                 "SUBS    R12, R12, #0x130\n" 
    1053                 "BNE     loc_FFC5E990\n" 
    1054                 "BL      sub_FFC5D36C\n" 
    1055         "loc_FFC5E988:\n" 
    1056                 "MOV     R0, #0\n" 
    1057                 "LDMFD   SP!, {R4-R8,PC}\n" 
    1058         "loc_FFC5E990:\n" 
    1059                 "MOV     R0, #1\n" 
    1060                 "LDMFD   SP!, {R4-R8,PC}\n" 
     1710                "STMFD  SP!, {R4-R6,LR}\n" 
     1711                "LDR    R5, =0x2B3C\n" 
     1712                "MOV    R6, R0\n" 
     1713                "LDR    R0, [R5,#0x10]\n" 
     1714                "CMP    R0, #0\n" 
     1715                "MOVNE  R0, #1\n" 
     1716                "LDMNEFD        SP!, {R4-R6,PC}\n" 
     1717                "MOV    R0, #0x17\n" 
     1718                "MUL    R1, R0, R6\n" 
     1719                "LDR    R0, =0x125D4\n" 
     1720                "ADD    R4, R0, R1,LSL#2\n" 
     1721                "LDR    R0, [R4,#0x38]\n" 
     1722                "MOV    R1, R6\n" 
     1723                "BL     sub_FF84D17C_my\n"  // continue to SDHC-hook here 
     1724                "CMP    R0, #0\n" 
     1725                "LDMEQFD        SP!, {R4-R6,PC}\n" 
     1726                "LDR    R0, [R4,#0x38]\n" 
     1727                "MOV    R1, R6\n" 
     1728                "BL     sub_FF84DB58\n" 
     1729                "CMP    R0, #0\n" 
     1730                "LDMEQFD        SP!, {R4-R6,PC}\n" 
     1731                "MOV    R0, R6\n" 
     1732                "BL     sub_FF84CC98\n" 
     1733                "CMP    R0, #0\n" 
     1734                "MOVNE  R1, #1\n" 
     1735                "STRNE  R1, [R5,#0x10]\n" 
     1736                "LDMFD  SP!, {R4-R6,PC}\n" 
    10611737        ); 
    10621738}; //#fe 
    10631739 
    1064 void __attribute__((naked,noinline)) sub_FFC5E06C_my() { //#fs  uAC_Boot 
     1740void __attribute__((naked,noinline)) sub_FF84D17C_my() { //#fs  ; Partition table parse takes place here. => SDHC-boot 
    10651741        asm volatile ( 
    1066                 "STMFD   SP!, {R4-R8,LR}\n" 
    1067                 "LDR     R7, =0x8002\n" 
    1068                 "LDR     R4, =0x59EC\n" 
    1069                 "CMP     R0, #2\n" 
    1070                 "MOV     R6, R1\n" 
    1071                 "MOV     R5, #1\n" 
    1072                 "BEQ     loc_FFC5E108\n" 
    1073                 "BGT     loc_FFC5E0F0\n" 
    1074                 "CMP     R0, #0\n" 
    1075                 "BEQ     loc_FFC5E134\n" 
    1076                 "CMP     R0, #1\n" 
    1077                 "BNE     loc_FFC5E1D8\n" 
    1078                 "MOV     R0, #8\n" 
    1079                 "BL      sub_FFC5D5B0\n"        // uCameraConState 
    1080                 "BL      sub_FFC5F7E0\n"        // CreateTask_CommonDrivers 
    1081                 "BL      sub_FFC601B4\n"        // uDispSwLock 
    1082                 "LDR     R5, =0x4004\n" 
    1083                 "MOV     R0, #0\n" 
    1084                 "MOV     R1, R5\n" 
    1085                 "BL      sub_FFC60D1C\n" 
    1086                 "LDR     R1, =0xFFC5E33C\n"        // aAcBootpb\n"   // "AC:BootPB" 
    1087                 "MOV     R0, #0x20\n" 
    1088                 "BL      sub_FFC57EC4\n"        // qCameraLog 
    1089                 "BL      sub_FFC5F7A4_my\n"        // CreateTask_InitFileModules 
    1090                 "BL      sub_FFC5F8B0\n" 
    1091                 "BL      sub_FFC1C7B4\n" 
    1092                 "MOV     R0, R5\n" 
    1093                 "BL      sub_FFC1BDB8\n" 
    1094                 "LDR     R0, [R4,#0x68]\n" 
    1095                 "CMP     R0, #0\n" 
    1096                 "BNE     loc_FFC5E1B8\n" 
    1097                 "BL      sub_FFC1BF94\n"        // CreateTask_StartupImage 
    1098                 "B       loc_FFC5E1BC\n" 
    1099         "loc_FFC5E0F0:\n" 
    1100                 "CMP     R0, #6\n" 
    1101                 "STREQ   R5, [R4,#0x28]\n" 
    1102                 "BEQ     loc_FFC5E1CC\n" 
    1103                 "SUB     R12, R0, #0x2000\n" 
    1104                 "SUBS    R12, R12, #4\n" 
    1105                 "BNE     loc_FFC5E1D8\n" 
    1106         "loc_FFC5E108:\n" 
    1107                 "SUB     R12, R6, #0x1100\n" 
    1108                 "SUBS    R12, R12, #0x62\n" 
    1109                 "BNE     loc_FFC5E124\n" 
    1110                 "MOV     R1, R7\n" 
    1111                 "MOV     R0, #0\n" 
    1112                 "BL      sub_FFC60D1C\n" 
    1113                 "STR     R5, [R4,#0x60]\n" 
    1114         "loc_FFC5E124:\n" 
    1115                 "BL      sub_FFC6039C\n" 
    1116                 "BL      sub_FFC60610\n" 
    1117                 "BL      sub_FFC5DC14\n" 
    1118                 "B       loc_FFC5E1D0\n" 
    1119         "loc_FFC5E134:\n" 
    1120                 "MOV     R0, #7\n" 
    1121                 "BL      sub_FFC5D5B0\n"        // uCameraConState 
    1122                 "MOV     R0, R7\n" 
    1123                 "BL      sub_FFC1BDB8\n" 
    1124                 "BL      sub_FFC5F7E0\n"        // CreateTask_CommonDrivers 
    1125                 "BL      sub_FFC601B4\n"        // uDispSwLock 
    1126                 "MOV     R1, R7\n" 
    1127                 "MOV     R0, #0\n" 
    1128                 "BL      sub_FFC60D1C\n" 
    1129                 "LDR     R1, =0xFFC5E348\n"     // aAcBootrec\n"  // "AC:BootRec" 
    1130                 "MOV     R0, #0x20\n" 
    1131                 "STR     R6, [R4,#0x18]\n" 
    1132                 "BL      sub_FFC57EC4\n"        // qCameraLog 
    1133                 "LDR     R1, =0xFFC5E354\n"     // aAcInitlens  // "AC:InitLens" 
    1134                 "MOV     R0, #0x20\n" 
    1135                 "BL      sub_FFC57EC4\n"        // qCameraLog 
    1136                 "STR     R5, [R4,#0x28]\n" 
    1137                 "BL      sub_FFC1BF24\n" 
    1138                 "BL      sub_FFC1BE78\n" 
    1139                 "LDR     R0, [R4,#0x1C]\n" 
    1140                 "LDR     R1, [R4,#0x20]\n" 
    1141                 "ORRS    R0, R0, R1\n" 
    1142                 "BLNE    sub_FFC5EB0C\n" 
    1143                 "LDR     R0, [R4,#0x68]\n" 
    1144                 "CMP     R0, #0\n" 
    1145                 "BNE     loc_FFC5E1A4\n" 
    1146                 "BL      sub_FFC1BF94\n"        // CreateTask_StartupImage 
    1147                 "B       loc_FFC5E1AC\n" 
    1148         "loc_FFC5E1A4:\n" 
    1149                 "BL      sub_FFC15C28\n" 
    1150                 "BL      sub_FFC1C7EC\n" 
    1151         "loc_FFC5E1AC:\n" 
    1152                 "BL      sub_FFC5F7A4_my\n"        // CreateTask_InitFileModules 
    1153                 "BL      sub_FFC5F81C\n" 
    1154                 "B       loc_FFC5E1D0\n" 
    1155         "loc_FFC5E1B8:\n" 
    1156                 "BL      sub_FFC15C28\n" 
    1157         "loc_FFC5E1BC:\n" 
    1158                 "BL      sub_FFC5F84C\n" 
    1159                 "LDR     R0, [R4,#0x30]\n" 
    1160                 "CMP     R0, #0\n" 
    1161                 "BEQ     loc_FFC5E1D0\n" 
    1162         "loc_FFC5E1CC:\n" 
    1163                 "BL      sub_FFC5D664\n" 
    1164         "loc_FFC5E1D0:\n" 
    1165                 "MOV     R0, #0\n" 
    1166                 "LDMFD   SP!, {R4-R8,PC}\n" 
    1167         "loc_FFC5E1D8:\n" 
    1168                 "MOV     R0, #1\n" 
    1169                 "LDMFD   SP!, {R4-R8,PC}\n" 
    1170         ); 
     1742                "STMFD  SP!, {R4-R8,LR}\n" 
     1743                "MOV    R8, R0\n" 
     1744                "MOV    R0, #0x17\n" 
     1745                "MUL    R1, R0, R1\n" 
     1746                "LDR    R0, =0x125D4\n" 
     1747                "MOV    R6, #0\n" 
     1748                "ADD    R7, R0, R1,LSL#2\n" 
     1749                "LDR    R0, [R7,#0x3C]\n" 
     1750                "MOV    R5, #0\n" 
     1751                "CMP    R0, #6\n" 
     1752                "ADDLS  PC, PC, R0,LSL#2\n" 
     1753                "B      loc_FF84D2C8\n" 
     1754 
     1755        "loc_FF84D1AC:\n" 
     1756                "B      loc_FF84D1E0\n" 
     1757 
     1758        "loc_FF84D1B0:\n" 
     1759                "B      loc_FF84D1C8\n" 
     1760 
     1761        "loc_FF84D1B4:\n" 
     1762                "B      loc_FF84D1C8\n" 
     1763 
     1764        "loc_FF84D1B8:\n" 
     1765                "B      loc_FF84D1C8\n" 
     1766 
     1767        "loc_FF84D1BC:\n" 
     1768                "B      loc_FF84D1C8\n" 
     1769 
     1770        "loc_FF84D1C0:\n" 
     1771                "B      loc_FF84D2C0\n" 
     1772 
     1773        "loc_FF84D1C4:\n" 
     1774                "B      loc_FF84D1C8\n" 
     1775 
     1776        "loc_FF84D1C8:\n" 
     1777                "MOV    R2, #0\n" 
     1778                "MOV    R1, #0x200\n" 
     1779                "MOV    R0, #3\n" 
     1780                "BL     sub_FF8661D8\n" 
     1781                "MOVS   R4, R0\n" 
     1782                "BNE    loc_FF84D1E8\n" 
     1783 
     1784        "loc_FF84D1E0:\n" 
     1785                "MOV    R0, #0\n" 
     1786                "LDMFD  SP!, {R4-R8,PC}\n" 
     1787 
     1788 
     1789        "loc_FF84D1E8:\n" 
     1790                "LDR    R12, [R7,#0x4C]\n" 
     1791                "MOV    R3, R4\n" 
     1792                "MOV    R2, #1\n" 
     1793                "MOV    R1, #0\n" 
     1794                "MOV    R0, R8\n" 
     1795         
     1796                //"BLX     R12\n"       // !! Workaround !! 
     1797        "MOV     LR, PC\n"      // gcc won't compile "BLX R12" nor "BL R12". 
     1798        "MOV     PC, R12\n"     // workaround: make your own "BL" and hope we don't need the change to thumb-mode 
     1799 
     1800                "CMP    R0, #1\n" 
     1801                "BNE    loc_FF84D214\n" 
     1802                "MOV    R0, #3\n" 
     1803                "BL     sub_FF866318\n" 
     1804                "B      loc_FF84D1E0\n" 
     1805 
     1806        "loc_FF84D214:\n" 
     1807                "MOV    R0, R8\n" 
     1808                "BL     sub_FF9186B8\n" // Add FAT32 autodetect-code after this line 
     1809 
     1810        // Start of DataGhost's FAT32 autodetection code 
     1811        // Policy: If there is a partition which has type W95 FAT32, use the first one of those for image storage 
     1812        // According to the code below, we can use R1, R2, R3 and R12. 
     1813        // LR wasn't really used anywhere but for storing a part of the partition signature. This is the only thing 
     1814        // that won't work with an offset, but since we can load from LR+offset into LR, we can use this to do that :) 
     1815        "MOV     R12, R4\n"                    // Copy the MBR start address so we have something to work with 
     1816        "MOV     LR, R4\n"                     // Save old offset for MBR signature 
     1817        "MOV     R1, #1\n"                     // Note the current partition number 
     1818        "B       dg_sd_fat32_enter\n"          // We actually need to check the first partition as well, no increments yet! 
     1819   "dg_sd_fat32:\n" 
     1820        "CMP     R1, #4\n"                     // Did we already see the 4th partition? 
     1821        "BEQ     dg_sd_fat32_end\n"            // Yes, break. We didn't find anything, so don't change anything. 
     1822        "ADD     R12, R12, #0x10\n"            // Second partition 
     1823        "ADD     R1, R1, #1\n"                 // Second partition for the loop 
     1824   "dg_sd_fat32_enter:\n" 
     1825        "LDRB    R2, [R12, #0x1BE]\n"          // Partition status 
     1826        "LDRB    R3, [R12, #0x1C2]\n"          // Partition type (FAT32 = 0xB) 
     1827        "CMP     R3, #0xB\n"                   // Is this a FAT32 partition? 
     1828                "CMPNE   R3, #0xC\n"                   // Not 0xB, is it 0xC (FAT32 LBA) then? 
     1829        "BNE     dg_sd_fat32\n"                // No, it isn't. 
     1830        "CMP     R2, #0x00\n"                  // It is, check the validity of the partition type 
     1831        "CMPNE   R2, #0x80\n" 
     1832        "BNE     dg_sd_fat32\n"                // Invalid, go to next partition 
     1833                                               // This partition is valid, it's the first one, bingo! 
     1834        "MOV     R4, R12\n"                    // Move the new MBR offset for the partition detection. 
     1835         
     1836   "dg_sd_fat32_end:\n" 
     1837        // End of DataGhost's FAT32 autodetection code              
     1838                "LDRB   R1, [R4,#0x1C9]\n" // Continue with firmware 
     1839                "LDRB   R3, [R4,#0x1C8]\n" 
     1840                "LDRB   R12, [R4,#0x1CC]\n" 
     1841                "MOV    R1, R1,LSL#24\n" 
     1842                "ORR    R1, R1, R3,LSL#16\n" 
     1843                "LDRB   R3, [R4,#0x1C7]\n" 
     1844                "LDRB   R2, [R4,#0x1BE]\n" 
     1845                //"LDRB LR, [R4,#0x1FF]\n"              // replaced, see below 
     1846                "ORR    R1, R1, R3,LSL#8\n" 
     1847                "LDRB   R3, [R4,#0x1C6]\n" 
     1848                "CMP    R2, #0\n" 
     1849                "CMPNE  R2, #0x80\n" 
     1850                "ORR    R1, R1, R3\n" 
     1851                "LDRB   R3, [R4,#0x1CD]\n" 
     1852                "MOV    R3, R3,LSL#24\n" 
     1853                "ORR    R3, R3, R12,LSL#16\n" 
     1854                "LDRB   R12, [R4,#0x1CB]\n" 
     1855                "ORR    R3, R3, R12,LSL#8\n" 
     1856                "LDRB   R12, [R4,#0x1CA]\n" 
     1857                "ORR    R3, R3, R12\n" 
     1858                //"LDRB R12, [R4,#0x1FE]\n"             // replaced, see below 
     1859 
     1860                "LDRB    R12, [LR,#0x1FE]\n"            // New! First MBR signature byte (0x55) 
     1861                "LDRB    LR, [LR,#0x1FF]\n"             //      Last MBR signature byte (0xAA) 
     1862 
     1863                "MOV    R4, #0\n" 
     1864                "BNE    loc_FF84D29C\n" 
     1865                "CMP    R0, R1\n" 
     1866                "BCC    loc_FF84D29C\n" 
     1867                "ADD    R2, R1, R3\n" 
     1868                "CMP    R2, R0\n" 
     1869                "CMPLS  R12, #0x55\n" 
     1870                "CMPEQ  LR, #0xAA\n" 
     1871                "MOVEQ  R6, R1\n" 
     1872                "MOVEQ  R5, R3\n" 
     1873                "MOVEQ  R4, #1\n" 
     1874 
     1875        "loc_FF84D29C:\n" 
     1876                "MOV    R0, #3\n" 
     1877                "BL     sub_FF866318\n" 
     1878                "CMP    R4, #0\n" 
     1879                "BNE    loc_FF84D2D4\n" 
     1880                "MOV    R6, #0\n" 
     1881                "MOV    R0, R8\n" 
     1882                "BL     sub_FF9186B8\n" 
     1883                "MOV    R5, R0\n" 
     1884                "B      loc_FF84D2D4\n" 
     1885 
     1886 
     1887        "loc_FF84D2C0:\n" 
     1888                "MOV    R5, #0x40\n" 
     1889                "B      loc_FF84D2D4\n" 
     1890 
     1891 
     1892        "loc_FF84D2C8:\n" 
     1893                "LDR    R1, =0x365\n" 
     1894                "LDR    R0, =0xFF84D170\n" // aMounter_c 
     1895                "BL     _DebugAssert\n" 
     1896 
     1897        "loc_FF84D2D4:\n" 
     1898                "STR    R6, [R7,#0x44]!\n" 
     1899                "MOV    R0, #1\n" 
     1900                "STR    R5, [R7,#4]\n" 
     1901                "LDMFD  SP!, {R4-R8,PC}\n" 
     1902 
     1903        ); 
    11711904}; //#fe 
    1172  
    1173 void __attribute__((naked,noinline)) sub_FFC5F7A4_my() { //#fs  CreateTask_InitFileModules 
    1174         asm volatile ( 
    1175                 "LDR     R0, =0x5AB4\n" 
    1176                 "STMFD   SP!, {R3,LR}\n" 
    1177                 "LDR     R1, [R0,#4]\n" 
    1178                 "CMP     R1, #0\n" 
    1179                 "BNE     locret_FFC5F7DC\n" 
    1180                 "MOV     R1, #1\n" 
    1181                 "STR     R1, [R0,#4]\n" 
    1182                 "MOV     R3, #0\n" 
    1183                 "STR     R3, [SP]\n" 
    1184                 "LDR     R3, =task_InitFileModules_my\n"        // continue for SDHC-boot (orig: FFC5F754) 
    1185                 "MOV     R1, #0x19\n" 
    1186                 "LDR     R0, =0xFFC5F908\n"     // aInitfilemodule ; "InitFileModules" 
    1187                 "MOV     R2, #0x1000\n" 
    1188                 "BL      sub_FFC0BBC0\n"         // CreateTask, 0xFFC0BBC0 
    1189         "locret_FFC5F7DC:\n" 
    1190                 "LDMFD   SP!, {R12,PC}\n" 
    1191         ); 
    1192 }; //#fe 
    1193  
    1194 void __attribute__((naked,noinline)) task_InitFileModules_my() { //#fs   
    1195         asm volatile ( 
    1196                 "STMFD   SP!, {R4-R6,LR}\n" 
    1197                 "BL      sub_FFC5A4BC\n" 
    1198                 "LDR     R5, =0x5006\n" 
    1199                 "MOVS    R4, R0\n" 
    1200                 "MOVNE   R1, #0\n" 
    1201                 "MOVNE   R0, R5\n" 
    1202                 "BLNE    sub_FFC5B69C\n" 
    1203                 "BL      sub_FFC5A4E8_my\n"    // continue to SDHC-hook here! 
    1204  
    1205                 "BL      core_spytask_can_start\n"      // CHDK: Set "it's-save-to-start"-Flag for spytask 
    1206  
    1207                 "CMP     R4, #0\n" 
    1208                 "MOVEQ   R0, R5\n" 
    1209                 "LDMEQFD SP!, {R4-R6,LR}\n" 
    1210                 "MOVEQ   R1, #0\n" 
    1211                 "BEQ     sub_FFC5B69C\n"        // cameralog "LogicalEvent...", it's save to run this after spytask has started 
    1212                 "LDMFD   SP!, {R4-R6,PC}\n" 
    1213         ); 
    1214 }; //#fe 
    1215  
    1216 void __attribute__((naked,noinline)) sub_FFC5A4E8_my() { //#fs   
    1217         asm volatile ( 
    1218                 "STMFD   SP!, {R4,LR}\n" 
    1219                 "BL      sub_FFC3F0CC_my\n"    // continue to SDHC-hook here! 
    1220                 "LDR     R4, =0x58D0\n" 
    1221                 "LDR     R0, [R4,#4]\n" 
    1222                 "CMP     R0, #0\n" 
    1223                 "BNE     loc_FFC5A518\n" 
    1224                 "BL      sub_FFC674CC\n" 
    1225                 "BL      sub_FFCDCA24\n" 
    1226                 "BL      sub_FFC674CC\n" 
    1227                 "BL      sub_FFCE6504\n" 
    1228                 "BL      sub_FFC674DC\n" 
    1229                 "BL      sub_FFCDCAC4\n" 
    1230                 "loc_FFC5A518:\n" 
    1231                 "MOV     R0, #1\n" 
    1232                 "STR     R0, [R4]\n" 
    1233                 "LDMFD   SP!, {R4,PC}\n" 
    1234         ); 
    1235 }; //#fe 
    1236  
    1237 void __attribute__((naked,noinline)) sub_FFC3F0CC_my() { //#fs   
    1238         asm volatile ( 
    1239                 "STMFD   SP!, {R4-R6,LR}\n" 
    1240                 "MOV     R6, #0\n" 
    1241                 "MOV     R0, R6\n" 
    1242                 "BL      sub_FFC3EC9C\n" 
    1243                 "LDR     R4, =0x11800\n" 
    1244                 "MOV     R5, #0\n" 
    1245                 "LDR     R0, [R4,#0x38]\n" 
    1246                 "BL      sub_FFC3F664\n" 
    1247                 "CMP     R0, #0\n" 
    1248                 "LDREQ   R0, =0x2BA0\n" 
    1249                 "STREQ   R5, [R0,#0xC]\n" 
    1250                 "STREQ   R5, [R0,#0x10]\n" 
    1251                 "STREQ   R5, [R0,#0x14]\n" 
    1252                 "MOV     R0, R6\n" 
    1253                 "BL      sub_FFC3ECDC\n"        // uMounter (u=unknown, just to prevent misunderstandings) 
    1254                 "MOV     R0, R6\n" 
    1255                 "BL      sub_FFC3EF08_my\n"    // continue to SDHC-hook here! 
    1256                 "MOV     R5, R0\n" 
    1257                 "MOV     R0, R6\n" 
    1258                 "BL      sub_FFC3EF74\n" 
    1259                 "LDR     R1, [R4,#0x3C]\n" 
    1260                 "AND     R2, R5, R0\n" 
    1261                 "CMP     R1, #0\n" 
    1262                 "MOV     R0, #0\n" 
    1263                 "MOVEQ   R0, #0x80000001\n" 
    1264                 "BEQ     loc_FFC3F160\n" 
    1265                 "LDR     R3, [R4,#0x2C]\n" 
    1266                 "CMP     R3, #2\n" 
    1267                 "MOVEQ   R0, #4\n" 
    1268                 "CMP     R1, #5\n" 
    1269                 "ORRNE   R0, R0, #1\n" 
    1270                 "BICEQ   R0, R0, #1\n" 
    1271                 "CMP     R2, #0\n" 
    1272                 "BICEQ   R0, R0, #2\n" 
    1273                 "ORREQ   R0, R0, #0x80000000\n" 
    1274                 "BICNE   R0, R0, #0x80000000\n" 
    1275                 "ORRNE   R0, R0, #2\n" 
    1276         "loc_FFC3F160:\n" 
    1277                 "STR     R0, [R4,#0x40]\n" 
    1278                 "LDMFD   SP!, {R4-R6,PC}\n" 
    1279         ); 
    1280 }; //#fe 
    1281  
    1282 void __attribute__((naked,noinline)) sub_FFC3EF08_my() { //#fs   
    1283         asm volatile ( 
    1284                 "STMFD   SP!, {R4-R6,LR}\n" 
    1285                 "LDR     R5, =0x2BA0\n" 
    1286                 "MOV     R6, R0\n" 
    1287                 "LDR     R0, [R5,#0x10]\n" 
    1288                 "CMP     R0, #0\n" 
    1289                 "MOVNE   R0, #1\n" 
    1290                 "LDMNEFD SP!, {R4-R6,PC}\n" 
    1291                 "MOV     R0, #0x17\n" 
    1292                 "MUL     R1, R0, R6\n" 
    1293                 "LDR     R0, =0x11800\n" 
    1294                 "ADD     R4, R0, R1,LSL#2\n" 
    1295                 "LDR     R0, [R4,#0x38]\n" 
    1296                 "MOV     R1, R6\n" 
    1297                 "BL      sub_FFC3EDA0_my\n"        //    continue to SDHC-hook here! 
    1298                 "CMP     R0, #0\n" 
    1299                 "LDMEQFD SP!, {R4-R6,PC}\n" 
    1300                 "LDR     R0, [R4,#0x38]\n" 
    1301                 "MOV     R1, R6\n" 
    1302                 "BL      sub_FFC3F77C\n" 
    1303                 "CMP     R0, #0\n" 
    1304                 "LDMEQFD SP!, {R4-R6,PC}\n" 
    1305                 "MOV     R0, R6\n" 
    1306                 "BL      sub_FFC3E8BC\n" 
    1307                 "CMP     R0, #0\n" 
    1308                 "MOVNE   R1, #1\n" 
    1309                 "STRNE   R1, [R5,#0x10]\n" 
    1310                 "LDMFD   SP!, {R4-R6,PC}\n" 
    1311         ); 
    1312 }; //#fe 
    1313  
    1314 void __attribute__((naked,noinline)) sub_FFC3EDA0_my() { //#fs  ; Partition table parse takes place here. => SDHC-boot 
    1315         asm volatile ( 
    1316                 "STMFD   SP!, {R4-R8,LR} \n" 
    1317                 "MOV     R8, R0\n" 
    1318                 "MOV     R0, #0x17\n" 
    1319                 "MUL     R1, R0, R1\n" 
    1320                 "LDR     R0, =0x11800\n" 
    1321                 "MOV     R6, #0\n" 
    1322                 "ADD     R7, R0, R1,LSL#2\n" 
    1323                 "LDR     R0, [R7,#0x3C]\n" 
    1324                 "MOV     R5, #0\n" 
    1325                 "CMP     R0, #6\n" 
    1326                 "ADDLS   PC, PC, R0,LSL#2\n" 
    1327                 "B       loc_FFC3EEEC\n" 
    1328         "loc_FFC3EDD0:\n" 
    1329                 "B       loc_FFC3EE04\n" 
    1330         "loc_FFC3EDD4:\n" 
    1331                 "B       loc_FFC3EDEC\n" 
    1332         "loc_FFC3EDD8:\n" 
    1333                 "B       loc_FFC3EDEC\n" 
    1334         "loc_FFC3EDDC:\n" 
    1335                 "B       loc_FFC3EDEC\n" 
    1336         "loc_FFC3EDE0:\n" 
    1337                 "B       loc_FFC3EDEC\n" 
    1338         "loc_FFC3EDE4:\n" 
    1339                 "B       loc_FFC3EEE4\n" 
    1340         "loc_FFC3EDE8:\n" 
    1341                 "B       loc_FFC3EDEC\n" 
    1342         "loc_FFC3EDEC:\n" 
    1343                 "MOV     R2, #0\n" 
    1344                 "MOV     R1, #0x200\n" 
    1345                 "MOV     R0, #3\n" 
    1346                 "BL      sub_FFC56994\n" 
    1347                 "MOVS    R4, R0\n" 
    1348                 "BNE     loc_FFC3EE0C\n" 
    1349         "loc_FFC3EE04:\n" 
    1350                 "MOV     R0, #0\n" 
    1351                 "LDMFD   SP!, {R4-R8,PC}\n" 
    1352         "loc_FFC3EE0C:\n" 
    1353                 "LDR     R12, [R7,#0x4C]\n" 
    1354                 "MOV     R3, R4\n" 
    1355                 "MOV     R2, #1\n" 
    1356                 "MOV     R1, #0\n" 
    1357                 "MOV     R0, R8\n" 
    1358  
    1359                 //"BLX     R12\n"       // !! Workaround !! 
    1360                 "MOV     LR, PC\n"      // gcc won't compile "BLX R12" nor "BL R12". 
    1361                 "MOV     PC, R12\n"     // workaround: make your own "BL" and hope we don't need the change to thumb-mode 
    1362  
    1363                 "CMP     R0, #1\n" 
    1364                 "BNE     loc_FFC3EE38\n" 
    1365                 "MOV     R0, #3\n" 
    1366                 "BL      sub_FFC56AD4\n" 
    1367                 "B       loc_FFC3EE04\n" 
    1368  
    1369         "loc_FFC3EE38:\n" 
    1370                 "MOV     R0, R8\n" 
    1371                 "BL      sub_FFCF554C\n"        // Add FAT32 autodetect-code after this line\n" 
    1372  
    1373                 // Start of DataGhost's FAT32 autodetection code 
    1374                 // Policy: If there is a partition which has type W95 FAT32, use the first one of those for image storage 
    1375                 // According to the code below, we can use R1, R2, R3 and R12. 
    1376                 // LR wasn't really used anywhere but for storing a part of the partition signature. This is the only thing 
    1377                 // that won't work with an offset, but since we can load from LR+offset into LR, we can use this to do that :) 
    1378                 "MOV     R12, R4\n"                    // Copy the MBR start address so we have something to work with 
    1379                 "MOV     LR, R4\n"                     // Save old offset for MBR signature 
    1380                 "MOV     R1, #1\n"                     // Note the current partition number 
    1381                 "B       dg_sd_fat32_enter\n"          // We actually need to check the first partition as well, no increments yet! 
    1382            "dg_sd_fat32:\n" 
    1383                 "CMP     R1, #4\n"                     // Did we already see the 4th partition? 
    1384                 "BEQ     dg_sd_fat32_end\n"            // Yes, break. We didn't find anything, so don't change anything. 
    1385                 "ADD     R12, R12, #0x10\n"            // Second partition 
    1386                 "ADD     R1, R1, #1\n"                 // Second partition for the loop 
    1387            "dg_sd_fat32_enter:\n" 
    1388                 "LDRB    R2, [R12, #0x1BE]\n"          // Partition status 
    1389                 "LDRB    R3, [R12, #0x1C2]\n"          // Partition type (FAT32 = 0xB) 
    1390                 "CMP     R3, #0xB\n"                   // Is this a FAT32 partition? 
    1391                 "BNE     dg_sd_fat32\n"                // No, it isn't. 
    1392                 "CMP     R2, #0x00\n"                  // It is, check the validity of the partition type 
    1393                 "CMPNE   R2, #0x80\n" 
    1394                 "BNE     dg_sd_fat32\n"                // Invalid, go to next partition 
    1395                                                        // This partition is valid, it's the first one, bingo! 
    1396                 "MOV     R4, R12\n"                    // Move the new MBR offset for the partition detection. 
    1397                  
    1398            "dg_sd_fat32_end:\n" 
    1399                 // End of DataGhost's FAT32 autodetection code                 
    1400        
    1401                 "LDRB    R1, [R4,#0x1C9]\n"     // Continue with firmware 
    1402                 "LDRB    R3, [R4,#0x1C8]\n" 
    1403                 "LDRB    R12, [R4,#0x1CC]\n" 
    1404                 "MOV     R1, R1,LSL#24\n" 
    1405                 "ORR     R1, R1, R3,LSL#16\n" 
    1406                 "LDRB    R3, [R4,#0x1C7]\n" 
    1407                 "LDRB    R2, [R4,#0x1BE]\n" 
    1408                //"LDRB    LR, [R4,#0x1FF]\n"            // replaced, see below 
    1409                 "ORR     R1, R1, R3,LSL#8\n" 
    1410                 "LDRB    R3, [R4,#0x1C6]\n" 
    1411                 "CMP     R2, #0\n" 
    1412                 "CMPNE   R2, #0x80\n" 
    1413                 "ORR     R1, R1, R3\n" 
    1414                 "LDRB    R3, [R4,#0x1CD]\n" 
    1415                 "MOV     R3, R3,LSL#24\n" 
    1416                 "ORR     R3, R3, R12,LSL#16\n" 
    1417                 "LDRB    R12, [R4,#0x1CB]\n" 
    1418                 "ORR     R3, R3, R12,LSL#8\n" 
    1419                 "LDRB    R12, [R4,#0x1CA]\n" 
    1420                 "ORR     R3, R3, R12\n" 
    1421                //"LDRB    R12, [R4,#0x1FE]\n"           // replaced, see below 
    1422  
    1423                 "LDRB    R12, [LR,#0x1FE]\n"            // New! First MBR signature byte (0x55) 
    1424                 "LDRB    LR, [LR,#0x1FF]\n"             //      Last MBR signature byte (0xAA) 
    1425  
    1426                 "MOV     R4, #0\n" 
    1427                 "BNE     loc_FFC3EEC0\n" 
    1428                 "CMP     R0, R1\n" 
    1429                 "BCC     loc_FFC3EEC0\n" 
    1430                 "ADD     R2, R1, R3\n" 
    1431                 "CMP     R2, R0\n" 
    1432                 "CMPLS   R12, #0x55\n" 
    1433                 "CMPEQ   LR, #0xAA\n" 
    1434                 "MOVEQ   R6, R1\n" 
    1435                 "MOVEQ   R5, R3\n" 
    1436                 "MOVEQ   R4, #1\n" 
    1437         "loc_FFC3EEC0:\n" 
    1438                 "MOV     R0, #3\n" 
    1439                 "BL      sub_FFC56AD4\n" 
    1440                 "CMP     R4, #0\n" 
    1441                 "BNE     loc_FFC3EEF8\n" 
    1442                 "MOV     R6, #0\n" 
    1443                 "MOV     R0, R8\n" 
    1444                 "BL      sub_FFCF554C\n" 
    1445                 "MOV     R5, R0\n" 
    1446                 "B       loc_FFC3EEF8\n" 
    1447         "loc_FFC3EEE4:\n" 
    1448                 "MOV     R5, #0x40\n" 
    1449                 "B       loc_FFC3EEF8\n" 
    1450         "loc_FFC3EEEC:\n" 
    1451                 "LDR     R1, =0x365\n" 
    1452                 "LDR     R0, =0xFFC3ED94\n"             // aMounter_c  ; "Mounter.c" 
    1453                 "BL      sub_FFC0C098\n"                // Assert 
    1454         "loc_FFC3EEF8:\n" 
    1455                 "STR     R6, [R7,#0x44]!\n" 
    1456                 "MOV     R0, #1\n" 
    1457                 "STR     R5, [R7,#4]\n" 
    1458                 "LDMFD   SP!, {R4-R8,PC}\n" 
    1459         ); 
    1460 }; //#fe 
    1461 */ 
    1462  
  • branches/juciphox/platform/ixus860_sd870/sub/100c/stubs_auto.S

    r416 r453  
    1414STUB(FF814EB0) 
    1515STUB(FF815088) 
    16 STUB(FF8151CC) 
    1716STUB(FF819598) 
    1817STUB(FF819A10) 
     
    2322STUB(FF81BEE8) 
    2423STUB(FF81BF0C) 
     24STUB(FF81BF78) 
     25STUB(FF81BFD0) 
    2526STUB(FF81C090) 
    2627STUB(FF81DCD4) 
    2728STUB(FF820E84) 
     29STUB(FF821F08) 
    2830STUB(FF822004) 
    29 STUB(FF822048) 
    3031STUB(FF82213C) 
     32STUB(FF8224B4) 
    3133STUB(FF8228D8) 
    3234STUB(FF822DAC) 
     
    3739STUB(FF825BA8) 
    3840STUB(FF825C34) 
     41STUB(FF825C94) 
     42STUB(FF825CD0) 
     43STUB(FF825ED4) 
     44STUB(FF825F04) 
     45STUB(FF825F4C) 
     46STUB(FF8261C4) 
     47STUB(FF8261F8) 
     48STUB(FF82622C) 
     49STUB(FF82675C) 
     50STUB(FF826844) 
     51STUB(FF828094) 
     52STUB(FF828534) 
     53STUB(FF82856C) 
     54STUB(FF828A3C) 
     55STUB(FF828AB0) 
    3956STUB(FF828B4C) 
    4057STUB(FF828EAC) 
     
    4259STUB(FF829130) 
    4360STUB(FF829608) 
     61STUB(FF829624) 
    4462STUB(FF8297FC) 
    4563STUB(FF829850) 
    46 STUB(FF82B828) 
    4764STUB(FF82BA7C) 
    4865STUB(FF82BB44) 
    4966STUB(FF82BC5C) 
     67STUB(FF82BC90) 
    5068STUB(FF82BCAC) 
    5169STUB(FF82BE24) 
    5270STUB(FF82BE28) 
    5371STUB(FF82BE40) 
     72STUB(FF82BE70) 
     73STUB(FF82BE84) 
     74STUB(FF82BF28) 
     75STUB(FF82BF40) 
     76STUB(FF82BF50) 
     77STUB(FF82BFBC) 
     78STUB(FF82BFFC) 
     79STUB(FF82C01C) 
     80STUB(FF82C090) 
     81STUB(FF82C130) 
     82STUB(FF82C1B0) 
     83STUB(FF82C324) 
    5484STUB(FF82C8E4) 
     85STUB(FF82C964) 
     86STUB(FF82C96C) 
     87STUB(FF82C974) 
     88STUB(FF82CA04) 
     89STUB(FF82CA3C) 
     90STUB(FF82CA40) 
     91STUB(FF82CA7C) 
     92STUB(FF82CA9C) 
     93STUB(FF82CAA0) 
     94STUB(FF82CAA8) 
     95STUB(FF82CADC) 
     96STUB(FF82CAF8) 
     97STUB(FF82CD9C) 
     98STUB(FF82CDE8) 
     99STUB(FF82CE18) 
     100STUB(FF831E08) 
     101STUB(FF8325CC) 
     102STUB(FF835568) 
     103STUB(FF837628) 
     104STUB(FF83A068) 
     105STUB(FF83F560) 
     106STUB(FF840AF8) 
     107STUB(FF841FF4) 
     108STUB(FF842230) 
     109STUB(FF842244) 
     110STUB(FF8422FC) 
     111STUB(FF842BAC) 
     112STUB(FF843B6C) 
     113STUB(FF843CF8) 
     114STUB(FF844124) 
     115STUB(FF8443D8) 
     116STUB(FF8459F8) 
    55117STUB(FF846AC0) 
     118STUB(FF847600) 
     119STUB(FF847CBC) 
     120STUB(FF84CC98) 
     121STUB(FF84D078) 
     122STUB(FF84D0B8) 
     123STUB(FF84D17C) 
     124STUB(FF84D2E4) 
     125STUB(FF84D350) 
     126STUB(FF84D4A8) 
     127STUB(FF84DA40) 
     128STUB(FF84DB58) 
     129STUB(FF854428) 
    56130STUB(FF856814) 
     131STUB(FF8572B4) 
     132STUB(FF857610) 
     133STUB(FF8577AC) 
     134STUB(FF857950) 
     135STUB(FF857AB8) 
     136STUB(FF857CB4) 
     137STUB(FF857FE8) 
     138STUB(FF858440) 
     139STUB(FF85846C) 
     140STUB(FF859588) 
     141STUB(FF8595B4) 
     142STUB(FF859634) 
    57143STUB(FF859FE8) 
    58144STUB(FF85A544) 
     145STUB(FF85AD20) 
    59146STUB(FF85AFF4) 
    60147STUB(FF85B1C4) 
     
    64151STUB(FF85BF7C) 
    65152STUB(FF85C054) 
     153STUB(FF85CDA4) 
     154STUB(FF85CDD4) 
    66155STUB(FF85D270) 
     156STUB(FF85D2FC) 
    67157STUB(FF85D7B8) 
    68158STUB(FF85DE2C) 
     
    71161STUB(FF85F14C) 
    72162STUB(FF85F2F8) 
     163STUB(FF86376C) 
     164STUB(FF865128) 
     165STUB(FF865240) 
     166STUB(FF865744) 
     167STUB(FF8661D8) 
     168STUB(FF866318) 
     169STUB(FF867708) 
     170STUB(FF8684DC) 
     171STUB(FF86910C) 
    73172STUB(FF869470) 
    74173STUB(FF869600) 
    75174STUB(FF869814) 
     175STUB(FF869920) 
     176STUB(FF8699CC) 
     177STUB(FF869D00) 
     178STUB(FF869D2C) 
     179STUB(FF86A1BC) 
     180STUB(FF86A26C) 
     181STUB(FF86A470) 
     182STUB(FF86AC20) 
     183STUB(FF86C590) 
     184STUB(FF86CAF0) 
     185STUB(FF86D4F8) 
     186STUB(FF86DBA8) 
     187STUB(FF86DC24) 
     188STUB(FF86DC48) 
     189STUB(FF86E2D0) 
     190STUB(FF86E350) 
     191STUB(FF86E38C) 
     192STUB(FF86E428) 
     193STUB(FF86E44C) 
     194STUB(FF86E480) 
     195STUB(FF86E4C4) 
     196STUB(FF86E5AC) 
     197STUB(FF86E5B8) 
     198STUB(FF86E5E4) 
     199STUB(FF86E64C) 
     200STUB(FF86E768) 
     201STUB(FF86EB38) 
     202STUB(FF86EBB4) 
     203STUB(FF86EBFC) 
     204STUB(FF86EC58) 
     205STUB(FF86ECAC) 
     206STUB(FF86ECF0) 
     207STUB(FF86ED10) 
     208STUB(FF86EDAC) 
     209STUB(FF86EE0C) 
     210STUB(FF86EFE4) 
     211STUB(FF86F224) 
     212STUB(FF86F498) 
     213STUB(FF86F5E8) 
     214STUB(FF86F6F0) 
     215STUB(FF86F89C) 
     216STUB(FF86F9F8) 
     217STUB(FF86FB00) 
     218STUB(FF86FE00) 
     219STUB(FF86FF90) 
     220STUB(FF86FFB4) 
     221STUB(FF86FFD8) 
     222STUB(FF86FFFC) 
     223STUB(FF870128) 
     224STUB(FF87015C) 
     225STUB(FF870178) 
     226STUB(FF870198) 
     227STUB(FF8701C8) 
     228STUB(FF8701E8) 
     229STUB(FF870204) 
     230STUB(FF870244) 
     231STUB(FF870284) 
     232STUB(FF8702AC) 
     233STUB(FF870378) 
     234STUB(FF8703BC) 
     235STUB(FF870400) 
     236STUB(FF870430) 
     237STUB(FF870468) 
     238STUB(FF870550) 
     239STUB(FF870694) 
     240STUB(FF870774) 
     241STUB(FF8708A0) 
     242STUB(FF8708E0) 
     243STUB(FF870958) 
     244STUB(FF8709BC) 
     245STUB(FF870B0C) 
     246STUB(FF870BF4) 
     247STUB(FF870C28) 
     248STUB(FF870DB0) 
     249STUB(FF870DE0) 
     250STUB(FF870E44) 
     251STUB(FF8710D4) 
     252STUB(FF8710FC) 
     253STUB(FF871144) 
     254STUB(FF871178) 
     255STUB(FF871630) 
     256STUB(FF871808) 
     257STUB(FF871908) 
     258STUB(FF871944) 
     259STUB(FF871A10) 
     260STUB(FF871A14) 
     261STUB(FF871A44) 
     262STUB(FF871A6C) 
     263STUB(FF871AB0) 
     264STUB(FF871AE8) 
     265STUB(FF871C90) 
     266STUB(FF871D48) 
     267STUB(FF872190) 
     268STUB(FF872284) 
     269STUB(FF872390) 
     270STUB(FF8723D0) 
     271STUB(FF872404) 
     272STUB(FF872BD4) 
     273STUB(FF872CA8) 
     274STUB(FF873024) 
     275STUB(FF87340C) 
     276STUB(FF8734F4) 
     277STUB(FF87400C) 
     278STUB(FF8747A4) 
     279STUB(FF8749E8) 
     280STUB(FF874AD4) 
     281STUB(FF874AFC) 
     282STUB(FF874B8C) 
     283STUB(FF874BB8) 
     284STUB(FF874C1C) 
     285STUB(FF874D74) 
     286STUB(FF874D80) 
     287STUB(FF874F2C) 
     288STUB(FF874F70) 
     289STUB(FF874FA0) 
     290STUB(FF874FCC) 
     291STUB(FF874FF4) 
     292STUB(FF875018) 
     293STUB(FF875044) 
     294STUB(FF875074) 
     295STUB(FF875100) 
     296STUB(FF87520C) 
     297STUB(FF875290) 
     298STUB(FF875294) 
     299STUB(FF875354) 
     300STUB(FF875AB8) 
     301STUB(FF876BDC) 
     302STUB(FF877030) 
     303STUB(FF877048) 
     304STUB(FF877068) 
     305STUB(FF877244) 
     306STUB(FF8772D8) 
     307STUB(FF877388) 
     308STUB(FF8778C4) 
     309STUB(FF87795C) 
     310STUB(FF8779C0) 
     311STUB(FF877A08) 
     312STUB(FF877A34) 
     313STUB(FF877AA4) 
     314STUB(FF877BD0) 
     315STUB(FF878138) 
     316STUB(FF8781D0) 
     317STUB(FF87821C) 
     318STUB(FF87841C) 
     319STUB(FF878468) 
     320STUB(FF87847C) 
     321STUB(FF878590) 
     322STUB(FF8785AC) 
     323STUB(FF878608) 
     324STUB(FF878688) 
     325STUB(FF8789F8) 
     326STUB(FF878A38) 
     327STUB(FF878A64) 
     328STUB(FF878A9C) 
     329STUB(FF878AB4) 
     330STUB(FF878B3C) 
     331STUB(FF878B58) 
     332STUB(FF878B84) 
     333STUB(FF878BA4) 
     334STUB(FF878BDC) 
     335STUB(FF878BF8) 
     336STUB(FF878C2C) 
     337STUB(FF878C50) 
     338STUB(FF878F68) 
     339STUB(FF878FA8) 
     340STUB(FF879F20) 
     341STUB(FF879F30) 
     342STUB(FF87A0AC) 
     343STUB(FF87A5C8) 
     344STUB(FF87A61C) 
     345STUB(FF87B388) 
     346STUB(FF87BA34) 
     347STUB(FF87C298) 
     348STUB(FF87E548) 
     349STUB(FF87F454) 
     350STUB(FF880EC0) 
     351STUB(FF884864) 
     352STUB(FF88A398) 
     353STUB(FF88D5E4) 
     354STUB(FF88D8A4) 
     355STUB(FF88E760) 
     356STUB(FF88F300) 
     357STUB(FF8B319C) 
     358STUB(FF8C0804) 
     359STUB(FF8E2418) 
     360STUB(FF8E6BF8) 
     361STUB(FF8E79C4) 
     362STUB(FF8EBADC) 
     363STUB(FF8EBBA0) 
    76364STUB(FF8EF628) 
     365STUB(FF8FB3B0) 
     366STUB(FF8FB458) 
     367STUB(FF8FB780) 
     368STUB(FF907F04) 
     369STUB(FF90835C) 
     370STUB(FF9186B8) 
     371STUB(FF92CAB4) 
     372STUB(FF92E71C) 
     373STUB(FF92E8B0) 
     374STUB(FF92EC34) 
     375STUB(FF92EE8C) 
     376STUB(FF92EEC4) 
    77377STUB(FF92FB94) 
    78378STUB(FF92FEC4) 
     
    108408STUB(FF932038) 
    109409STUB(FF932524) 
     410STUB(FF93E3F0) 
     411STUB(FF93E580) 
     412STUB(FF93F224) 
     413STUB(FF93F8DC) 
     414STUB(FF940CAC) 
     415STUB(FF94234C) 
     416STUB(FF944944) 
    110417STUB(FF9449BC) 
     418STUB(FF94514C) 
     419STUB(FF9452C0) 
     420STUB(FF945CA4) 
     421STUB(FF9492D0) 
     422STUB(FF949414) 
     423STUB(FF949460) 
     424STUB(FF94A428) 
     425STUB(FF94A43C) 
     426STUB(FF94A468) 
     427STUB(FF94A5D8) 
     428STUB(FF94A5E8) 
     429STUB(FF94A5EC) 
     430STUB(FF94B4BC) 
     431STUB(FF94BB7C) 
     432STUB(FF94BD3C) 
     433STUB(FF94BDD4) 
     434STUB(FF94C184) 
     435STUB(FF94C2C4) 
     436STUB(FF94C554) 
     437STUB(FF94C73C) 
     438STUB(FF94C93C) 
     439STUB(FF94CB2C) 
     440STUB(FF94CBAC) 
     441STUB(FF9527FC) 
     442STUB(FF952B88) 
     443STUB(FF952C54) 
     444STUB(FF952F94) 
     445STUB(FF95352C) 
     446STUB(FF9546C8) 
     447STUB(FF954AFC) 
     448STUB(FF954EDC) 
     449STUB(FF9560A0) 
     450STUB(FF9563E4) 
     451STUB(FF956D3C) 
     452STUB(FF989F3C) 
     453STUB(FF989F50) 
     454STUB(FF98BE68) 
     455STUB(FF98BF5C) 
     456STUB(FF98ECC8) 
     457STUB(FF98ECE8) 
     458STUB(FF99E624) 
     459STUB(FF99E698) 
    111460STUB(FFA8C05C) 
    112 STUB(FFC0BBC0) 
    113 STUB(FFC0C098) 
    114 STUB(FFC124B4) 
    115 STUB(FFC15C28) 
    116 STUB(FFC15EA8) 
    117 STUB(FFC15EF0) 
    118 STUB(FFC16188) 
    119 STUB(FFC18934) 
    120 STUB(FFC1BDB8) 
    121 STUB(FFC1BE50) 
    122 STUB(FFC1BE78) 
    123 STUB(FFC1BF24) 
    124 STUB(FFC1BF94) 
    125 STUB(FFC1BFB8) 
    126 STUB(FFC1C084) 
    127 STUB(FFC1C294) 
    128 STUB(FFC1C7B4) 
    129 STUB(FFC1C7EC) 
    130 STUB(FFC1C824) 
    131 STUB(FFC1C83C) 
    132 STUB(FFC1C854) 
    133 STUB(FFC1C888) 
    134 STUB(FFC1CAC0) 
    135 STUB(FFC2C874) 
    136 STUB(FFC3A27C) 
    137 STUB(FFC3A2BC) 
    138 STUB(FFC3E8BC) 
    139 STUB(FFC3EC9C) 
    140 STUB(FFC3ECDC) 
    141 STUB(FFC3EDA0) 
    142 STUB(FFC3EF08) 
    143 STUB(FFC3EF74) 
    144 STUB(FFC3F0CC) 
    145 STUB(FFC3F664) 
    146 STUB(FFC3F77C) 
    147 STUB(FFC4A858) 
    148 STUB(FFC56994) 
    149 STUB(FFC56AD4) 
    150 STUB(FFC57EC4) 
    151 STUB(FFC5A4BC) 
    152 STUB(FFC5A4E8) 
    153 STUB(FFC5AEA0) 
    154 STUB(FFC5B69C) 
    155 STUB(FFC5BC60) 
    156 STUB(FFC5CB64) 
    157 STUB(FFC5CB88) 
    158 STUB(FFC5CBF8) 
    159 STUB(FFC5D288) 
    160 STUB(FFC5D2C4) 
    161 STUB(FFC5D36C) 
    162 STUB(FFC5D3A0) 
    163 STUB(FFC5D3E4) 
    164 STUB(FFC5D4CC) 
    165 STUB(FFC5D5B0) 
    166 STUB(FFC5D664) 
    167 STUB(FFC5D6D8) 
    168 STUB(FFC5DC14) 
    169 STUB(FFC5DC74) 
    170 STUB(FFC5DD0C) 
    171 STUB(FFC5DE9C) 
    172 STUB(FFC5E06C) 
    173 STUB(FFC5E380) 
    174 STUB(FFC5E460) 
    175 STUB(FFC5E5BC) 
    176 STUB(FFC5E6C0) 
    177 STUB(FFC5E998) 
    178 STUB(FFC5EB0C) 
    179 STUB(FFC5EB30) 
    180 STUB(FFC5EED0) 
    181 STUB(FFC5EF64) 
    182 STUB(FFC5F030) 
    183 STUB(FFC5F10C) 
    184 STUB(FFC5F338) 
    185 STUB(FFC5F398) 
    186 STUB(FFC5F410) 
    187 STUB(FFC5F474) 
    188 STUB(FFC5F608) 
    189 STUB(FFC5F6A8) 
    190 STUB(FFC5F7A4) 
    191 STUB(FFC5F7E0) 
    192 STUB(FFC5F81C) 
    193 STUB(FFC5F84C) 
    194 STUB(FFC5F8B0) 
    195 STUB(FFC5FB20) 
    196 STUB(FFC5FB90) 
    197 STUB(FFC600F8) 
    198 STUB(FFC601B4) 
    199 STUB(FFC60300) 
    200 STUB(FFC6039C) 
    201 STUB(FFC60610) 
    202 STUB(FFC60C54) 
    203 STUB(FFC60D1C) 
    204 STUB(FFC6115C) 
    205 STUB(FFC611F8) 
    206 STUB(FFC620DC) 
    207 STUB(FFC63060) 
    208 STUB(FFC64100) 
    209 STUB(FFC65400) 
    210 STUB(FFC674CC) 
    211 STUB(FFC674DC) 
    212 STUB(FFCDCA24) 
    213 STUB(FFCDCAC4) 
    214 STUB(FFCE6504) 
    215 STUB(FFCF554C) 
    216 STUB(FFD500D0) 
    217 STUB(FFD51F70) 
     461STUB(FFA8D90C) 
  • branches/juciphox/platform/ixus860_sd870/sub/100c/stubs_entry_2.S

    r445 r453  
    55NHSTUB(kbd_pwr_off, 0xFF84448C) 
    66NHSTUB(kbd_pwr_on, 0xFF84443C) 
     7NSTUB(kbd_read_keys, 0xFF8230CC) 
    78NHSTUB(kbd_read_keys_r2, 0xFF843FA8) 
    89NHSTUB(time, 0xFF865744) 
     
    1112NSTUB(PutOutNdFilter, 0xFF9E44C4) 
    1213 
     14NSTUB(UnsetZoomForMovie,     0xFF94A2C4) 
     15 
     16NSTUB(CreateController, 0xFF86A6E4) 
     17NSTUB(DebugAssert, 0xFF81C090) 
     18NSTUB(EventProcedure, 0xFF81C0EC) 
     19NSTUB(GetAEIntegralServiceMode_0, 0xFF82C92C) 
     20NSTUB(GetAEIntegralServiceMode_7, 0xFF94A430) 
     21NSTUB(GetVRAMHPixelsSize_0, 0xFF8734A8) 
     22NSTUB(GetVRAMHPixelsSize_1, 0xFF878A2C) 
     23NSTUB(HardwareDefect, 0xFF86D2D8) 
     24NSTUB(IsControlEventActive, 0xFF86CC0C) 
     25NSTUB(IsFactoryMode, 0xFF847C34) 
     26NSTUB(KernelCreateTask, 0xFF81BE90) 
     27NSTUB(LockMainPower, 0xFF86D04C) 
     28NSTUB(PTM_GetCurrentItem, 0xFF86DB08) 
     29NSTUB(PTM_SetCurrentCaptureMode, 0xFF86D9C4) 
     30NSTUB(PT_GetPropertyCaseString, 0xFF869470) 
     31NSTUB(PT_SetPropertyCaseString, 0xFF869368) 
     32NSTUB(PostLogicalEventForNotPowerType, 0xFF86AE94) 
     33NSTUB(PostLogicalEventToUI, 0xFF86AEE0) 
     34NSTUB(RestartDevice, 0xFF82B964) 
     35NSTUB(StartDiskboot, 0xFF82BB44) 
     36NSTUB(StartFactoryModeController, 0xFF847C74) 
     37NSTUB(StartGUISystem, 0xFF88F8E0) 
     38NSTUB(StartRecModeMenu, 0xFF980908) 
     39NSTUB(StartWDT, 0xFF868080) 
     40NSTUB(TakeSemaphore, 0xFF81BA54) 
     41NSTUB(j_IsEvfDriveMode_16, 0xFF956658) 
     42NSTUB(j_PTM_GetWorkingCaptureMode, 0xFF86DAF8) 
     43NSTUB(j_PTM_SetCurrentItem, 0xFF86DAFC) 
     44NSTUB(j_PTM_SetCurrentItem_0, 0xFF86DB00) 
     45NSTUB(j_nullsub_192, 0xFF82BABC) 
     46NSTUB(j_unknown_libname_73, 0xFF870E40) 
     47NSTUB(nullsub_2, 0xFF820BC0) 
     48NSTUB(nullsub_206, 0xFF857EF0) 
     49NSTUB(nullsub_35, 0xFF86E47C) 
     50NSTUB(nullsub_37, 0xFF875398) 
     51NSTUB(nullsub_96, 0xFF93D744) 
     52NSTUB(qPrintf, 0xFF8115D0) 
     53NSTUB(taskcreate_AudioTsk, 0xFF8445B0) 
     54NSTUB(taskcreate_AviWrite, 0xFF92DB10) 
     55NSTUB(taskcreate_Bye, 0xFF82B828) 
     56NSTUB(taskcreate_ClockSave, 0xFF8151CC) 
     57NSTUB(taskcreate_CommonDrivers, 0xFF870D74) 
     58NSTUB(taskcreate_DSITask, 0xFF879048) 
     59NSTUB(taskcreate_FaceFrame, 0xFF878E78) 
     60NSTUB(taskcreate_LEDCon, 0xFF843798) 
     61NSTUB(taskcreate_PhySw, 0xFF822DAC) 
     62NSTUB(taskcreate_StartupImage, 0xFF82C06C) 
     63NSTUB(taskcreate_TempCheck, 0xFF822048) 
     64NSTUB(taskcreate_Thermometer, 0xFF8469CC) 
     65NSTUB(taskcreate_WdtReset, 0xFF867FE8) 
     66NSTUB(unknown_libname_80, 0xFF871E70) 
     67NSTUB(unknown_libname_96, 0xFF87A340) 
     68 
     69 
     70 
     71 
    1372 
    1473//NHSTUB(OnPrintTouchWheel, 0xFF8E7130) 
    1574//NHSTUB(OffPrintTouchWheel, 0xFF8E7120) 
     75 
     76//NSTUB(TurnOnMic, 0xFF845074)  // these functions don't actually work, although they do appear similar to those in the A650 
     77//NSTUB(TurnOffMic, 0xFF8450AC) 
    1678 
    1779 
     
    91153NSTUB(taskSuspend,                       0xFF810958) 
    92154 
    93 NSTUB(UnsetZoomForMovie,                 0xFF810958)