Changeset 1993
- Timestamp:
- 07/16/12 00:55:40 (10 months ago)
- Location:
- trunk/platform/ixus130_sd1400/sub
- Files:
-
- 9 edited
-
100a/boot.c (modified) (15 diffs)
-
100a/capt_seq.c (modified) (4 diffs)
-
100a/led.c (modified) (1 diff)
-
100a/movie_rec.c (modified) (4 diffs)
-
100a/stubs_auto.S (modified) (2 diffs)
-
100c/boot.c (modified) (15 diffs)
-
100c/capt_seq.c (modified) (4 diffs)
-
100c/movie_rec.c (modified) (4 diffs)
-
100c/stubs_auto.S (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/platform/ixus130_sd1400/sub/100a/boot.c
r1992 r1993 10 10 void __attribute__((naked,noinline)) init_file_modules_task() { // FF89467C 11 11 asm volatile ( 12 "push {r4, r5, r6, lr}\n" 13 "bl sub_FF88CAC0\n" 14 "ldr r5, =0x00005006\n" // was: "[pc, #408] ; ff894874" 15 "movs r4, r0\n" 16 "ldrne r1, =0x0\n" // was: "mov ..., #0" 17 "movne r0, r5\n" 18 "blne sub_FF8904CC\n" 19 "bl sub_FF88CAEC\n" 20 //"bl sub_ff88cb3c_my\n" 21 "bl core_spytask_can_start\n" 22 "cmp r4, #0\n" // 0x0 23 "moveq r0, r5\n" 24 "popeq {r4, r5, r6, lr}\n" 25 "ldreq r1, =0x0\n" // was: "mov ..., #0" 26 "beq sub_FF8904CC\n" 27 ); 28 asm volatile ( 29 "pop {r4, r5, r6, pc}\n" 12 "PUSH {r4, r5, r6, lr}\n" 13 "BL sub_FF88CAC0\n" 14 "LDR r5, =0x00005006\n" // was: "[pc, #408] ; ff894874" 15 "MOVS r4, r0\n" 16 "LDRNE r1, =0x0\n" // was: "mov ..., #0" 17 "MOVNE r0, r5\n" 18 "BLNE sub_FF8904CC\n" 19 "BL sub_FF88CAEC\n" 20 //"BL sub_ff88cb3c_my\n" 21 "BL core_spytask_can_start\n" 22 "CMP r4, #0\n" // 0x0 23 "MOVEQ r0, r5\n" 24 "POPEQ {r4, r5, r6, lr}\n" 25 "LDREQ r1, =0x0\n" // was: "mov ..., #0" 26 "BEQ sub_FF8904CC\n" 27 "POP {r4, r5, r6, pc}\n" 30 28 ); 31 29 }; … … 48 46 void __attribute__((naked,noinline)) boot() { 49 47 asm volatile ( 50 " ldrr1, =0xc0410000\n" // was: "[pc, #336] ; ff810164"51 " ldrr0, =0x0\n" // was: "mov ..., #0"52 " strr0, [r1]\n"53 " ldrr1, =0x78\n" // was: "mov ..., #120"54 " mcr15, 0, r1, cr1, cr0, 0\n"55 " ldrr1, =0x0\n" // was: "mov ..., #0"56 " mcr15, 0, r1, cr7, cr10, 4\n"57 " mcr15, 0, r1, cr7, cr5, 0\n"58 " mcr15, 0, r1, cr7, cr6, 0\n"59 " ldrr0, =0x3d\n" // was: "mov ..., #61"60 " mcr15, 0, r0, cr6, cr0, 0\n"61 " ldrr0, =0xc000002f\n" // was: "mov ..., #-1073741777"62 " mcr15, 0, r0, cr6, cr1, 0\n"63 " ldrr0, =0x33\n" // was: "mov ..., #51"64 " mcr15, 0, r0, cr6, cr2, 0\n"65 " ldrr0, =0x40000033\n" // was: "mov ..., #1073741875"66 " mcr15, 0, r0, cr6, cr3, 0\n"67 " ldrr0, =0x80000017\n" // was: "mov ..., #-2147483625"68 " mcr15, 0, r0, cr6, cr4, 0\n"69 " ldrr0, =0xff80002d\n" // was: "[pc, #264] ; ff810168"70 " mcr15, 0, r0, cr6, cr5, 0\n"71 " ldrr0, =0x34\n" // was: "mov ..., #52"72 " mcr15, 0, r0, cr2, cr0, 0\n"73 " ldrr0, =0x34\n" // was: "mov ..., #52"74 " mcr15, 0, r0, cr2, cr0, 1\n"75 " ldrr0, =0x34\n" // was: "mov ..., #52"76 " mcr15, 0, r0, cr3, cr0, 0\n"77 " ldrr0, =0x03333330\n" // was: "[pc, #236] ; ff81016c"78 " mcr15, 0, r0, cr5, cr0, 2\n"79 " ldrr0, =0x03333330\n" // was: "[pc, #228] ; ff81016c"80 " mcr15, 0, r0, cr5, cr0, 3\n"81 " mrc15, 0, r0, cr1, cr0, 0\n"82 " orrr0, r0, #4096\n" // 0x100083 " orrr0, r0, #4\n" // 0x484 " orrr0, r0, #1\n" // 0x185 " mcr15, 0, r0, cr1, cr0, 0\n"86 " ldrr1, =0x80000006\n" // was: "mov ..., #-2147483642"87 " mcr15, 0, r1, cr9, cr1, 0\n"88 " ldrr1, =0x6\n" // was: "mov ..., #6"89 " mcr15, 0, r1, cr9, cr1, 1\n"90 " mrc15, 0, r1, cr1, cr0, 0\n"91 " orrr1, r1, #327680\n" // 0x5000092 " mcr15, 0, r1, cr1, cr0, 0\n"93 " ldrr2, =0xc0200000\n" // was: "[pc, #176] ; ff810170"94 " ldrr1, =0x1\n" // was: "mov ..., #1"95 " strr1, [r2, #268]\n"96 " ldrr1, =0xff\n" // was: "mov ..., #255"97 " strr1, [r2, #12]\n"98 " strr1, [r2, #28]\n"99 " strr1, [r2, #44]\n"100 " strr1, [r2, #60]\n"101 " strr1, [r2, #76]\n"102 " strr1, [r2, #92]\n"103 " strr1, [r2, #108]\n"104 " strr1, [r2, #124]\n"105 " strr1, [r2, #140]\n"106 " strr1, [r2, #156]\n"107 " strr1, [r2, #172]\n"108 " strr1, [r2, #188]\n"109 " strr1, [r2, #204]\n"110 " strr1, [r2, #220]\n"111 " strr1, [r2, #236]\n"112 " strr1, [r2, #252]\n"113 " ldrr1, =0xc0400008\n" // was: "[pc, #100] ; ff810174"114 " ldrr2, =0x00430005\n" // was: "[pc, #100] ; ff810178"115 " strr2, [r1]\n"116 " ldrr1, =0x1\n" // was: "mov ..., #1"117 " ldrr2, =0xc0243100\n" // was: "[pc, #92] ; ff81017c"118 " strr2, [r1]\n"119 " ldrr2, =0xc0242010\n" // was: "[pc, #88] ; ff810180"120 " ldrr1, [r2]\n"121 " orrr1, r1, #1\n" // 0x1122 " strr1, [r2]\n"123 " ldrr0, =0xFFBF837C\n" // canon_data_src124 " ldrr1, =0x1900\n" // MEMBASEADDR125 " ldrr3, =0xebd0\n" // canon_bss_start48 "LDR r1, =0xc0410000\n" // was: "[pc, #336] ; ff810164" 49 "LDR r0, =0x0\n" // was: "mov ..., #0" 50 "STR r0, [r1]\n" 51 "LDR r1, =0x78\n" // was: "mov ..., #120" 52 "MCR 15, 0, r1, cr1, cr0, 0\n" 53 "LDR r1, =0x0\n" // was: "mov ..., #0" 54 "MCR 15, 0, r1, cr7, cr10, 4\n" 55 "MCR 15, 0, r1, cr7, cr5, 0\n" 56 "MCR 15, 0, r1, cr7, cr6, 0\n" 57 "LDR r0, =0x3d\n" // was: "mov ..., #61" 58 "MCR 15, 0, r0, cr6, cr0, 0\n" 59 "LDR r0, =0xc000002f\n" // was: "mov ..., #-1073741777" 60 "MCR 15, 0, r0, cr6, cr1, 0\n" 61 "LDR r0, =0x33\n" // was: "mov ..., #51" 62 "MCR 15, 0, r0, cr6, cr2, 0\n" 63 "LDR r0, =0x40000033\n" // was: "mov ..., #1073741875" 64 "MCR 15, 0, r0, cr6, cr3, 0\n" 65 "LDR r0, =0x80000017\n" // was: "mov ..., #-2147483625" 66 "MCR 15, 0, r0, cr6, cr4, 0\n" 67 "LDR r0, =0xff80002d\n" // was: "[pc, #264] ; ff810168" 68 "MCR 15, 0, r0, cr6, cr5, 0\n" 69 "LDR r0, =0x34\n" // was: "mov ..., #52" 70 "MCR 15, 0, r0, cr2, cr0, 0\n" 71 "LDR r0, =0x34\n" // was: "mov ..., #52" 72 "MCR 15, 0, r0, cr2, cr0, 1\n" 73 "LDR r0, =0x34\n" // was: "mov ..., #52" 74 "MCR 15, 0, r0, cr3, cr0, 0\n" 75 "LDR r0, =0x03333330\n" // was: "[pc, #236] ; ff81016c" 76 "MCR 15, 0, r0, cr5, cr0, 2\n" 77 "LDR r0, =0x03333330\n" // was: "[pc, #228] ; ff81016c" 78 "MCR 15, 0, r0, cr5, cr0, 3\n" 79 "MRC 15, 0, r0, cr1, cr0, 0\n" 80 "ORR r0, r0, #4096\n" // 0x1000 81 "ORR r0, r0, #4\n" // 0x4 82 "ORR r0, r0, #1\n" // 0x1 83 "MCR 15, 0, r0, cr1, cr0, 0\n" 84 "LDR r1, =0x80000006\n" // was: "mov ..., #-2147483642" 85 "MCR 15, 0, r1, cr9, cr1, 0\n" 86 "LDR r1, =0x6\n" // was: "mov ..., #6" 87 "MCR 15, 0, r1, cr9, cr1, 1\n" 88 "MRC 15, 0, r1, cr1, cr0, 0\n" 89 "ORR r1, r1, #327680\n" // 0x50000 90 "MCR 15, 0, r1, cr1, cr0, 0\n" 91 "LDR r2, =0xc0200000\n" // was: "[pc, #176] ; ff810170" 92 "LDR r1, =0x1\n" // was: "mov ..., #1" 93 "STR r1, [r2, #268]\n" 94 "LDR r1, =0xff\n" // was: "mov ..., #255" 95 "STR r1, [r2, #12]\n" 96 "STR r1, [r2, #28]\n" 97 "STR r1, [r2, #44]\n" 98 "STR r1, [r2, #60]\n" 99 "STR r1, [r2, #76]\n" 100 "STR r1, [r2, #92]\n" 101 "STR r1, [r2, #108]\n" 102 "STR r1, [r2, #124]\n" 103 "STR r1, [r2, #140]\n" 104 "STR r1, [r2, #156]\n" 105 "STR r1, [r2, #172]\n" 106 "STR r1, [r2, #188]\n" 107 "STR r1, [r2, #204]\n" 108 "STR r1, [r2, #220]\n" 109 "STR r1, [r2, #236]\n" 110 "STR r1, [r2, #252]\n" 111 "LDR r1, =0xc0400008\n" // was: "[pc, #100] ; ff810174" 112 "LDR r2, =0x00430005\n" // was: "[pc, #100] ; ff810178" 113 "STR r2, [r1]\n" 114 "LDR r1, =0x1\n" // was: "mov ..., #1" 115 "LDR r2, =0xc0243100\n" // was: "[pc, #92] ; ff81017c" 116 "STR r2, [r1]\n" 117 "LDR r2, =0xc0242010\n" // was: "[pc, #88] ; ff810180" 118 "LDR r1, [r2]\n" 119 "ORR r1, r1, #1\n" // 0x1 120 "STR r1, [r2]\n" 121 "LDR r0, =0xFFBF837C\n" // canon_data_src 122 "LDR r1, =0x1900\n" // MEMBASEADDR 123 "LDR r3, =0xebd0\n" // canon_bss_start 126 124 "loc_ff81013c:\n" 127 " cmpr1, r3\n"128 " ldrccr2, [r0], #4\n"129 " strccr2, [r1], #4\n"130 " bccloc_ff81013c\n"131 " ldrr1, =0x0014fe20\n" // MEMISOSTART132 " ldrr2, =0x0\n" // was: "mov ..., #0"125 "CMP r1, r3\n" 126 "LDRCC r2, [r0], #4\n" 127 "STRCC r2, [r1], #4\n" 128 "BCC loc_ff81013c\n" 129 "LDR r1, =0x0014fe20\n" // MEMISOSTART 130 "LDR r2, =0x0\n" // was: "mov ..., #0" 133 131 "loc_ff810154:\n" 134 " cmpr3, r1\n"135 " strccr2, [r3], #4\n"136 " bccloc_ff810154\n"137 " bsub_ff810354_my\n"132 "CMP r3, r1\n" 133 "STRCC r2, [r3], #4\n" 134 "BCC loc_ff810154\n" 135 "B sub_ff810354_my\n" 138 136 ); 139 137 } … … 175 173 176 174 asm volatile ( 177 " ldrr0, =0xff8103cc\n" // was: "[pc, #1036] ; ff810768"178 " ldrr1, =0x0\n" // was: "mov ..., #0"179 " ldrr3, =0xff810404\n" // was: "[pc, #1032] ; ff81076c"175 "LDR r0, =0xff8103cc\n" // was: "[pc, #1036] ; ff810768" 176 "LDR r1, =0x0\n" // was: "mov ..., #0" 177 "LDR r3, =0xff810404\n" // was: "[pc, #1032] ; ff81076c" 180 178 "loc_ff810360:\n" 181 " cmpr0, r3\n"182 " ldrccr2, [r0], #4\n"183 " strccr2, [r1], #4\n"184 " bccloc_ff810360\n"185 " ldrr0, =0xff810404\n" // was: "[pc, #1016] ; ff810770"186 " ldrr1, =0x4b0\n" // was: "mov ..., #1200"187 " ldrr3, =0xff810618\n" // was: "[pc, #1012] ; ff810774"179 "CMP r0, r3\n" 180 "LDRCC r2, [r0], #4\n" 181 "STRCC r2, [r1], #4\n" 182 "BCC loc_ff810360\n" 183 "LDR r0, =0xff810404\n" // was: "[pc, #1016] ; ff810770" 184 "LDR r1, =0x4b0\n" // was: "mov ..., #1200" 185 "LDR r3, =0xff810618\n" // was: "[pc, #1012] ; ff810774" 188 186 "loc_ff81037c:\n" 189 " cmpr0, r3\n"190 " ldrccr2, [r0], #4\n"191 " strccr2, [r1], #4\n"192 " bccloc_ff81037c\n"193 " ldrr0, =0xd2\n" // was: "mov ..., #210"194 " msrCPSR_fsxc, r0\n"195 " ldrsp, =0x1000\n" // was: "mov ..., #4096"196 " ldrr0, =0xd3\n" // was: "mov ..., #211"197 " msrCPSR_fsxc, r0\n"198 " ldrsp, =0x1000\n" // was: "mov ..., #4096"199 " ldrr0, =0x000006c4\n" // was: "[pc, #20] ; ff8103c0"200 " ldrr2, =0xeeeeeeee\n" // was: "[pc, #968] ; ff810778"201 " ldrr3, =0x1000\n" // was: "mov ..., #4096"187 "CMP r0, r3\n" 188 "LDRCC r2, [r0], #4\n" 189 "STRCC r2, [r1], #4\n" 190 "BCC loc_ff81037c\n" 191 "LDR r0, =0xd2\n" // was: "mov ..., #210" 192 "MSR CPSR_fsxc, r0\n" 193 "LDR sp, =0x1000\n" // was: "mov ..., #4096" 194 "LDR r0, =0xd3\n" // was: "mov ..., #211" 195 "MSR CPSR_fsxc, r0\n" 196 "LDR sp, =0x1000\n" // was: "mov ..., #4096" 197 "LDR r0, =0x000006c4\n" // was: "[pc, #20] ; ff8103c0" 198 "LDR r2, =0xeeeeeeee\n" // was: "[pc, #968] ; ff810778" 199 "LDR r3, =0x1000\n" // was: "mov ..., #4096" 202 200 "loc_ff8103b0:\n" 203 " cmpr0, r3\n"204 " strccr2, [r0], #4\n"205 " bccloc_ff8103b0\n"206 " blsub_ff811198_my\n"201 "CMP r0, r3\n" 202 "STRCC r2, [r0], #4\n" 203 "BCC loc_ff8103b0\n" 204 "BL sub_ff811198_my\n" 207 205 ); 208 206 } … … 210 208 void __attribute__((naked,noinline)) sub_ff811198_my() { 211 209 asm volatile ( 212 " push{lr}\n" // (str lr, [sp, #-4]!)213 " subsp, sp, #116\n" // 0x74214 " movr0, sp\n"215 " ldrr1, =0x74\n" // was: "mov ..., #116"216 " blsub_FFB39910\n"217 " ldrr0, =0x53000\n" // was: "mov ..., #339968"218 " strr0, [sp, #4]\n"219 220 " ldrr0, =new_sa\n" // Replaces original start location 0x14fe20221 " ldrr0, [r0]\n"222 223 " ldrr2, =0x00339c00\n" // was: "[pc, #136] ; ff811248"224 " ldrr1, =0x003324a8\n" // was: "[pc, #140] ; ff811250"225 " strr0, [sp, #8]\n"226 " subr0, r1, r0\n"227 " addr3, sp, #12\n" // 0xc228 " strr2, [sp]\n"229 " stmr3, {r0, r1, r2}\n"230 " ldrr0, =0x22\n" // was: "mov ..., #34"231 " strr0, [sp, #24]\n"232 " ldrr0, =0x68\n" // was: "mov ..., #104"233 " strr0, [sp, #28]\n"234 " ldrr0, =0x0000019b\n" // was: "[pc, #104] ; ff811254"235 " ldrr1, =uHwSetup_my\n" // was: "[pc, #104] ; ff811258"236 " strr0, [sp, #32]\n"237 " ldrr0, =0x96\n" // was: "mov ..., #150"238 " strr0, [sp, #36]\n"239 " ldrr0, =0x78\n" // was: "mov ..., #120"240 " strr0, [sp, #40]\n"241 " ldrr0, =0x64\n" // was: "mov ..., #100"242 " strr0, [sp, #44]\n"243 " ldrr0, =0x0\n" // was: "mov ..., #0"244 " strr0, [sp, #48]\n"245 " strr0, [sp, #52]\n"246 " ldrr0, =0x10\n" // was: "mov ..., #16"247 " strr0, [sp, #92]\n"248 " ldrr0, =0x800\n" // was: "mov ..., #2048"249 " strr0, [sp, #96]\n"250 " ldrr0, =0xa0\n" // was: "mov ..., #160"251 " strr0, [sp, #100]\n"252 " ldrr0, =0x280\n" // was: "mov ..., #640"253 " strr0, [sp, #104]\n"254 " movr0, sp\n"255 " ldrr2, =0x0\n" // was: "mov ..., #0"256 " blsub_ff813404\n"257 " addsp, sp, #116\n" // 0x74258 " pop{pc}\n" // (ldr pc, [sp], #4)210 "PUSH {lr}\n" // (str lr, [sp, #-4]!) 211 "SUB sp, sp, #116\n" // 0x74 212 "MOV r0, sp\n" 213 "LDR r1, =0x74\n" // was: "mov ..., #116" 214 "BL sub_FFB39910\n" 215 "LDR r0, =0x53000\n" // was: "mov ..., #339968" 216 "STR r0, [sp, #4]\n" 217 218 "LDR r0, =new_sa\n" // Replaces original start location 0x14fe20 219 "LDR r0, [r0]\n" 220 221 "LDR r2, =0x00339c00\n" // was: "[pc, #136] ; ff811248" 222 "LDR r1, =0x003324a8\n" // was: "[pc, #140] ; ff811250" 223 "STR r0, [sp, #8]\n" 224 "SUB r0, r1, r0\n" 225 "ADD r3, sp, #12\n" // 0xc 226 "STR r2, [sp]\n" 227 "STM r3, {r0, r1, r2}\n" 228 "LDR r0, =0x22\n" // was: "mov ..., #34" 229 "STR r0, [sp, #24]\n" 230 "LDR r0, =0x68\n" // was: "mov ..., #104" 231 "STR r0, [sp, #28]\n" 232 "LDR r0, =0x0000019b\n" // was: "[pc, #104] ; ff811254" 233 "LDR r1, =uHwSetup_my\n" // was: "[pc, #104] ; ff811258" 234 "STR r0, [sp, #32]\n" 235 "LDR r0, =0x96\n" // was: "mov ..., #150" 236 "STR r0, [sp, #36]\n" 237 "LDR r0, =0x78\n" // was: "mov ..., #120" 238 "STR r0, [sp, #40]\n" 239 "LDR r0, =0x64\n" // was: "mov ..., #100" 240 "STR r0, [sp, #44]\n" 241 "LDR r0, =0x0\n" // was: "mov ..., #0" 242 "STR r0, [sp, #48]\n" 243 "STR r0, [sp, #52]\n" 244 "LDR r0, =0x10\n" // was: "mov ..., #16" 245 "STR r0, [sp, #92]\n" 246 "LDR r0, =0x800\n" // was: "mov ..., #2048" 247 "STR r0, [sp, #96]\n" 248 "LDR r0, =0xa0\n" // was: "mov ..., #160" 249 "STR r0, [sp, #100]\n" 250 "LDR r0, =0x280\n" // was: "mov ..., #640" 251 "STR r0, [sp, #104]\n" 252 "MOV r0, sp\n" 253 "LDR r2, =0x0\n" // was: "mov ..., #0" 254 "BL sub_ff813404\n" 255 "ADD sp, sp, #116\n" // 0x74 256 "POP {pc}\n" // (ldr pc, [sp], #4) 259 257 ); 260 258 } … … 262 260 void __attribute__((naked,noinline)) uHwSetup_my() { // 0xff815e58 263 261 asm volatile ( 264 " push{r4, lr}\n"265 " blsub_ff810b20\n"266 " blsub_ff81a244\n"267 " cmpr0, #0\n" // 0x0268 " ldrltr0, =0xff815f6c\n" // was: "addlt r0, pc, #252" *"dmSetup"269 " blltsub_ff815f4c\n"270 " blsub_ff815a94\n"271 " cmpr0, #0\n" // 0x0272 " ldrltr0, =0xff815f74\n" // was: "addlt r0, pc, #244" *"termDriverInit"273 " blltsub_ff815f4c\n"274 " ldrr0, =0xff815f84\n" // was: "add r0, pc, #252" *"/_term"275 " blsub_ff815b7c\n"276 " cmpr0, #0\n" // 0x0277 " ldrltr0, =0xff815f8c\n" // was: "addlt r0, pc, #248" *"termDeviceCreate"278 " blltsub_ff815f4c\n"279 " ldrr0, =0xff815f84\n" // was: "add r0, pc, #232" *"/_term"280 " blsub_ff813bf0\n"281 " cmpr0, #0\n" // 0x0282 " ldrltr0, =0xff815fa0\n" // was: "addlt r0, pc, #248" *"stdioSetup"283 " blltsub_ff815f4c\n"284 " blsub_ff819c3c\n"285 " cmpr0, #0\n" // 0x0286 " ldrltr0, =0xff815fac\n" // was: "addlt r0, pc, #244" *"stdlibSetup"287 " blltsub_ff815f4c\n"288 " blsub_ff81167c\n"289 " cmpr0, #0\n" // 0x0290 " ldrltr0, =0xff815fb8\n" // was: "addlt r0, pc, #240" *"armlib_setup"291 " blltsub_ff815f4c\n"292 " pop{r4, lr}\n"293 " btaskcreate_Startup_my\n" // ff81faf0262 "PUSH {r4, lr}\n" 263 "BL sub_ff810b20\n" 264 "BL sub_ff81a244\n" 265 "CMP r0, #0\n" // 0x0 266 "LDRLT r0, =0xff815f6c\n" // was: "addlt r0, pc, #252" *"dmSetup" 267 "BLLT sub_ff815f4c\n" 268 "BL sub_ff815a94\n" 269 "CMP r0, #0\n" // 0x0 270 "LDRLT r0, =0xff815f74\n" // was: "addlt r0, pc, #244" *"termDriverInit" 271 "BLLT sub_ff815f4c\n" 272 "LDR r0, =0xff815f84\n" // was: "add r0, pc, #252" *"/_term" 273 "BL sub_ff815b7c\n" 274 "CMP r0, #0\n" // 0x0 275 "LDRLT r0, =0xff815f8c\n" // was: "addlt r0, pc, #248" *"termDeviceCreate" 276 "BLLT sub_ff815f4c\n" 277 "LDR r0, =0xff815f84\n" // was: "add r0, pc, #232" *"/_term" 278 "BL sub_ff813bf0\n" 279 "CMP r0, #0\n" // 0x0 280 "LDRLT r0, =0xff815fa0\n" // was: "addlt r0, pc, #248" *"stdioSetup" 281 "BLLT sub_ff815f4c\n" 282 "BL sub_ff819c3c\n" 283 "CMP r0, #0\n" // 0x0 284 "LDRLT r0, =0xff815fac\n" // was: "addlt r0, pc, #244" *"stdlibSetup" 285 "BLLT sub_ff815f4c\n" 286 "BL sub_ff81167c\n" 287 "CMP r0, #0\n" // 0x0 288 "LDRLT r0, =0xff815fb8\n" // was: "addlt r0, pc, #240" *"armlib_setup" 289 "BLLT sub_ff815f4c\n" 290 "POP {r4, lr}\n" 291 "B taskcreate_Startup_my\n" // ff81faf0 294 292 ); 295 293 } … … 297 295 void __attribute__((naked,noinline)) taskcreate_Startup_my() { // 0xff81faf0 298 296 asm volatile ( 299 " push{r3, lr}\n"300 " blsub_ff834340\n"301 " blsub_ff83ba88\n"302 " cmpr0, #0\n" // 0x0303 " bneloc_ff81fb34\n"304 " blsub_ff835b2c\n"305 " cmpr0, #0\n" // 0x0306 " beqloc_ff81fb34\n"307 " blsub_ff83433c\n"308 " cmpr0, #0\n" // 0x0309 " bneloc_ff81fb34\n"310 " blsub_ff8339dc\n"311 " ldrr1, =0xc0220000\n" // was: "[pc, #76] ; ff81fb74"312 " ldrr0, =0x44\n" // was: "mov ..., #68"313 " strr0, [r1, #28]\n"314 " blsub_ff833bc8\n"297 "PUSH {r3, lr}\n" 298 "BL sub_ff834340\n" 299 "BL sub_ff83ba88\n" 300 "CMP r0, #0\n" // 0x0 301 "BNE loc_ff81fb34\n" 302 "BL sub_ff835b2c\n" 303 "CMP r0, #0\n" // 0x0 304 "BEQ loc_ff81fb34\n" 305 "BL sub_ff83433c\n" 306 "CMP r0, #0\n" // 0x0 307 "BNE loc_ff81fb34\n" 308 "BL sub_ff8339dc\n" 309 "LDR r1, =0xc0220000\n" // was: "[pc, #76] ; ff81fb74" 310 "LDR r0, =0x44\n" // was: "mov ..., #68" 311 "STR r0, [r1, #28]\n" 312 "BL sub_ff833bc8\n" 315 313 "loc_ff81fb30:\n" 316 " bloc_ff81fb30\n"314 "B loc_ff81fb30\n" 317 315 "loc_ff81fb34:\n" // 3 refs 318 //" blsub_ff834348\n" // disabled for correct Power Button detection319 //" blsub_ff834344\n" // nullsub320 " blsub_ff839cb0\n"321 " ldrr1, =0x0038e000\n" // was: "[pc, #48] ; ff81fb78"322 " ldrr0, =0x0\n" // was: "mov ..., #0"323 " blsub_ff83a0f8\n"324 " blsub_ff839ea4\n"325 " ldrr3, =0x0\n" // was: "mov ..., #0"326 " strr3, [sp]\n"327 " ldrr3, =task_Startup_my\n" // was: "sub r3, pc, #212\n" // ff81fa8c: (e92d4010)328 " ldrr2, =0x0\n" // was: "mov ..., #0"329 " ldrr1, =0x19\n" // was: "mov ..., #25"330 " addr0, pc, #16\n" // ff81fb7c: (72617453) *"Startup"331 " blsub_ff81e83c\n"332 " ldrr0, =0x0\n" // was: "mov ..., #0"333 " pop{ip, pc}\n"316 //"BL sub_ff834348\n" // disabled for correct Power Button detection 317 //"BL sub_ff834344\n" // nullsub 318 "BL sub_ff839cb0\n" 319 "LDR r1, =0x0038e000\n" // was: "[pc, #48] ; ff81fb78" 320 "LDR r0, =0x0\n" // was: "mov ..., #0" 321 "BL sub_ff83a0f8\n" 322 "BL sub_ff839ea4\n" 323 "LDR r3, =0x0\n" // was: "mov ..., #0" 324 "STR r3, [sp]\n" 325 "LDR r3, =task_Startup_my\n" // was: "sub r3, pc, #212\n" // ff81fa8c: (e92d4010) 326 "LDR r2, =0x0\n" // was: "mov ..., #0" 327 "LDR r1, =0x19\n" // was: "mov ..., #25" 328 "ADD r0, pc, #16\n" // ff81fb7c: (72617453) *"Startup" 329 "BL sub_ff81e83c\n" 330 "LDR r0, =0x0\n" // was: "mov ..., #0" 331 "POP {ip, pc}\n" 334 332 ); 335 333 } … … 337 335 void __attribute__((naked,noinline)) task_Startup_my() { // ff81fa8c 338 336 asm volatile ( 339 " push{r4, lr}\n"340 " blsub_ff81650c\n" // taskcreate_ClockSave341 " blsub_ff83543c\n"342 " blsub_ff833638\n"343 " blsub_ff83bac8\n" // j_nullsub344 " blsub_ff83bcb4\n"337 "PUSH {r4, lr}\n" 338 "BL sub_ff81650c\n" // taskcreate_ClockSave 339 "BL sub_ff83543c\n" 340 "BL sub_ff833638\n" 341 "BL sub_ff83bac8\n" // j_nullsub 342 "BL sub_ff83bcb4\n" 345 343 //"bl sub_ff83bb5c\n" // original: StartSdInit() -> StartDiskboot() 346 344 ); … … 351 349 352 350 asm volatile ( 353 " blsub_ff83be58\n"354 " blsub_ff8322e4\n"355 " blsub_ff83bce4\n"356 " blsub_ff839454\n"357 " blsub_ff83be5c\n"358 " bltaskcreate_PhySw_my\n" // sub_ff834230359 //" blsub_ff834230\n"360 " bltask_ShootSeqTask_my\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff361 //" blsub_ff8377a8\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff362 " blsub_ff83be74\n"363 //" blsub_ff8316a8\n" // nullsub364 " blsub_ff833090\n" // Battery.c:0365 " blsub_ff83b860\n" // taskcreate_Bye366 " blsub_ff8335ec\n"367 " blsub_ff83302c\n" // taskcreate_BatteryTask / taskcreate_TempCheck368 " blsub_ff832318\n"369 " blsub_ff83c8f4\n" // taskcreate_FactoryModeController370 " blsub_ff833004\n" // taskcreate_Ui371 " pop{r4, lr}\n"372 " bsub_ff81662c\n" // MLHClock.c:992351 "BL sub_ff83be58\n" 352 "BL sub_ff8322e4\n" 353 "BL sub_ff83bce4\n" 354 "BL sub_ff839454\n" 355 "BL sub_ff83be5c\n" 356 "BL taskcreate_PhySw_my\n" // sub_ff834230 357 //"BL sub_ff834230\n" 358 "BL task_ShootSeqTask_my\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff 359 //"BL sub_ff8377a8\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff 360 "BL sub_ff83be74\n" 361 //"BL sub_ff8316a8\n" // nullsub 362 "BL sub_ff833090\n" // Battery.c:0 363 "BL sub_ff83b860\n" // taskcreate_Bye 364 "BL sub_ff8335ec\n" 365 "BL sub_ff83302c\n" // taskcreate_BatteryTask / taskcreate_TempCheck 366 "BL sub_ff832318\n" 367 "BL sub_ff83c8f4\n" // taskcreate_FactoryModeController 368 "BL sub_ff833004\n" // taskcreate_Ui 369 "POP {r4, lr}\n" 370 "B sub_ff81662c\n" // MLHClock.c:992 373 371 ); 374 372 } … … 376 374 void __attribute__((naked,noinline)) taskcreate_PhySw_my() { // 0xff834230 377 375 asm volatile ( 378 " push{r3, r4, r5, lr}\n"379 " ldrr4, =0x00001c20\n" // was: "[pc, #476] ; ff834418"380 " ldrr0, [r4, #16]\n"381 " cmpr0, #0\n" // 0x0382 " bneloc_ff834264\n"383 " ldrr3, =0x0\n" // was: "mov ..., #0"384 " strr3, [sp]\n"385 //" ldrr3, =0xff8341fc\n" //386 " ldrr3, =mykbd_task\n" // 0xff8341fc376 "PUSH {r3, r4, r5, lr}\n" 377 "LDR r4, =0x00001c20\n" // was: "[pc, #476] ; ff834418" 378 "LDR r0, [r4, #16]\n" 379 "CMP r0, #0\n" // 0x0 380 "BNE loc_ff834264\n" 381 "LDR r3, =0x0\n" // was: "mov ..., #0" 382 "STR r3, [sp]\n" 383 //"LDR r3, =0xff8341fc\n" // 384 "LDR r3, =mykbd_task\n" // 0xff8341fc 387 385 // Increate stack size from 0x800 to 0x2000 for new task_PhySw so we don't have to do stack switch 388 " ldrr2, =0x2000\n"389 //" ldrr2, =0x800\n" // was: "mov ..., #2048"390 " ldrr1, =0x17\n" // was: "mov ..., #23"391 " ldrr0, =0xff834438\n" // was: "add r0, pc, #472" *"PhySw"392 " blsub_ff839ef8\n" // KernelCreateTask393 " strr0, [r4, #16]\n"386 "LDR r2, =0x2000\n" 387 //"LDR r2, =0x800\n" // was: "mov ..., #2048" 388 "LDR r1, =0x17\n" // was: "mov ..., #23" 389 "LDR r0, =0xff834438\n" // was: "add r0, pc, #472" *"PhySw" 390 "BL sub_ff839ef8\n" // KernelCreateTask 391 "STR r0, [r4, #16]\n" 394 392 "loc_ff834264:\n" 395 " blsub_FF88A5F4\n"396 " blsub_ff835aa4\n" // IsFactoryMode397 " cmpr0, #0\n" // 0x0398 " ldreqr1, =0x0003280c\n" // was: "[pc, #428] ; ff834424"399 " popeq{r3, r4, r5, lr}\n"400 " beqsub_FF88A57C\n" // eventproc_export_OpLog_Start401 " pop{r3, r4, r5, pc}\n"393 "BL sub_FF88A5F4\n" 394 "BL sub_ff835aa4\n" // IsFactoryMode 395 "CMP r0, #0\n" // 0x0 396 "LDREQ r1, =0x0003280c\n" // was: "[pc, #428] ; ff834424" 397 "POPEQ {r3, r4, r5, lr}\n" 398 "BEQ sub_FF88A57C\n" // eventproc_export_OpLog_Start 399 "POP {r3, r4, r5, pc}\n" 402 400 ); 403 401 } … … 405 403 void __attribute__((naked,noinline)) task_ShootSeqTask_my() { //FF8377A8 406 404 asm volatile ( 407 " push{r4, lr}\n"408 " ldrr1, =0x0\n" // was: "mov ..., #0"409 " ldrr0, =0x0\n" // was: "mov ..., #0"410 " blsub_ff839f50\n"411 " ldrr4, =0x00001c7c\n" // was: "[pc, #-492] ; ff8375d4"412 " strr0, [r4, #16]\n"413 " blsub_FF87F19C\n"414 " blsub_FF8808E4\n" // taskcreate_SsTask415 " blsub_FF87E2E4\n"416 " blsub_ff878d6c_my\n"417 " blsub_FF87F480\n"418 " ldrr0, [r4, #16]\n"419 " pop{r4, lr}\n"420 " ldrr1, =0x1000\n" // was: "mov ..., #4096"421 " bsub_FF883F4C\n"405 "PUSH {r4, lr}\n" 406 "LDR r1, =0x0\n" // was: "mov ..., #0" 407 "LDR r0, =0x0\n" // was: "mov ..., #0" 408 "BL sub_ff839f50\n" 409 "LDR r4, =0x00001c7c\n" // was: "[pc, #-492] ; ff8375d4" 410 "STR r0, [r4, #16]\n" 411 "BL sub_FF87F19C\n" 412 "BL sub_FF8808E4\n" // taskcreate_SsTask 413 "BL sub_FF87E2E4\n" 414 "BL sub_ff878d6c_my\n" 415 "BL sub_FF87F480\n" 416 "LDR r0, [r4, #16]\n" 417 "POP {r4, lr}\n" 418 "LDR r1, =0x1000\n" // was: "mov ..., #4096" 419 "B sub_FF883F4C\n" 422 420 ); 423 421 } … … 425 423 void __attribute__((naked,noinline)) sub_ff878d6c_my() { // was FF878D1C_my FF878D1C 426 424 asm volatile ( 427 " push{r4, lr}\n"428 " ldrr4, =0x00002b64\n" // was: "[pc, #-3512] ; ff877fc0"429 " ldrr0, [r4, #12]\n"430 " cmpr0, #0\n" // 0x0431 " bneloc_FF878D88\n"432 " blsub_FF87C848\n" // nullsub433 " ldrr1, =0x1\n" // was: "mov ..., #1"434 " ldrr0, =0x0\n" // was: "mov ..., #0"435 " blsub_ff839f74\n" // KernelMisc.c:55436 " strr0, [r4, #4]\n"437 " ldrr0, =0x0\n" // was: "mov ..., #0"438 " ldrr1, =0x8\n" // was: "mov ..., #8"439 " blsub_ff839f50\n" // KernelMisc.c:43440 " strr0, [r4, #8]\n"441 " blsub_FF8790FC\n"442 " blsub_FF879884\n"443 " ldrr0, =0x0\n" // was: "mov ..., #0"444 " strr0, [r4]\n"445 " addr0, r4, #16\n" // 0x10446 " ldrr1, =0x0\n" // was: "mov ..., #0"447 " strr1, [r0], #4\n"448 " strr1, [r0]\n"449 " blsub_FF879A94\n"450 " blsub_FF87F680\n"451 " blsub_FF87CC74\n"452 " blsub_ff87a5d8_my\n" // taskcreate_CaptSeqTask453 " blsub_ff87b688\n"425 "PUSH {r4, lr}\n" 426 "LDR r4, =0x00002b64\n" // was: "[pc, #-3512] ; ff877fc0" 427 "LDR r0, [r4, #12]\n" 428 "CMP r0, #0\n" // 0x0 429 "BNE loc_FF878D88\n" 430 "BL sub_FF87C848\n" // nullsub 431 "LDR r1, =0x1\n" // was: "mov ..., #1" 432 "LDR r0, =0x0\n" // was: "mov ..., #0" 433 "BL sub_ff839f74\n" // KernelMisc.c:55 434 "STR r0, [r4, #4]\n" 435 "LDR r0, =0x0\n" // was: "mov ..., #0" 436 "LDR r1, =0x8\n" // was: "mov ..., #8" 437 "BL sub_ff839f50\n" // KernelMisc.c:43 438 "STR r0, [r4, #8]\n" 439 "BL sub_FF8790FC\n" 440 "BL sub_FF879884\n" 441 "LDR r0, =0x0\n" // was: "mov ..., #0" 442 "STR r0, [r4]\n" 443 "ADD r0, r4, #16\n" // 0x10 444 "LDR r1, =0x0\n" // was: "mov ..., #0" 445 "STR r1, [r0], #4\n" 446 "STR r1, [r0]\n" 447 "BL sub_FF879A94\n" 448 "BL sub_FF87F680\n" 449 "BL sub_FF87CC74\n" 450 "BL sub_ff87a5d8_my\n" // taskcreate_CaptSeqTask 451 "BL sub_ff87b688\n" 454 452 "loc_FF878D88:\n" 455 " ldrr0, =0x1\n" // was: "mov ..., #1"456 " strr0, [r4, #12]\n"457 " pop{r4, pc}\n"453 "LDR r0, =0x1\n" // was: "mov ..., #1" 454 "STR r0, [r4, #12]\n" 455 "POP {r4, pc}\n" 458 456 ); 459 457 } … … 461 459 void __attribute__((naked,noinline)) sub_ff87a5d8_my() { // was sub_ff87a5d8_my 462 460 asm volatile ( //FF87A5D8 463 " push{r3, r4, r5, lr}\n"464 " ldrr2, =0x00039578\n" // was: "[pc, #-1920] ; ff879eb4"465 " ldrr0, =0x0\n" // was: "mov ..., #0"466 " ldrr1, =0x0\n" // was: "mov ..., #0"461 "PUSH {r3, r4, r5, lr}\n" 462 "LDR r2, =0x00039578\n" // was: "[pc, #-1920] ; ff879eb4" 463 "LDR r0, =0x0\n" // was: "mov ..., #0" 464 "LDR r1, =0x0\n" // was: "mov ..., #0" 467 465 "loc_FF87A5E8:\n" //WAS loc_ff87a638 468 " addr3, r2, r0, lsl #4\n"469 " addr0, r0, #1\n" // 0x1470 " cmpr0, #5\n" // 0x5471 " strr1, [r3, #8]\n"472 " bccloc_FF87A5E8\n"473 " blsub_FF87B1C4\n"474 " blsub_FF95F3A0\n" // nullsub475 " blsub_FF95FF60\n"476 " ldrr1, =0x5\n" // was: "mov ..., #5"477 " ldrr0, =0x0\n" // was: "mov ..., #0"478 " blsub_ff839f2c\n" // KernelMisc.c:31479 " ldrr4, =0x00002b9c\n" // was: "[pc, #-2000] ; ff879e9c"480 " ldrr1, =0x00101dff\n" // was: "[pc, #-1968] ; ff879ec0"481 " strr0, [r4, #4]\n"482 " ldrr0, =0x0\n" // was: "mov ..., #0"483 " blsub_ff839f50\n" // KernelMisc.c:43484 " strr0, [r4]\n"485 " ldrr0, =0x0\n" // was: "mov ..., #0"486 " ldrr1, =0x1\n" // was: "mov ..., #1"487 " blsub_ff839f74\n" // KernelMisc.c:55488 " strr0, [r4, #8]\n"489 " ldrr3, =0x0\n" // was: "mov ..., #0"490 " strr3, [sp]\n"491 //" ldrr3, =capt_seq_task\n"492 " ldrr3, =0xFF87A2C0\n" // capt_seq_task493 " ldrr0, =0xFF87A848\n" // *"CaptSeqTask"494 " ldrr2, =0x1000\n" // was: "mov ..., #4096"495 " ldrr1, =0x17\n" // was: "mov ..., #23"496 " blsub_ff839ef8\n" // was FF839EF8 KernelCreateTask ; LOCATION: KernelMisc.c:19497 " pop{r3, r4, r5, pc}\n"466 "ADD r3, r2, r0, lsl #4\n" 467 "ADD r0, r0, #1\n" // 0x1 468 "CMP r0, #5\n" // 0x5 469 "STR r1, [r3, #8]\n" 470 "BCC loc_FF87A5E8\n" 471 "BL sub_FF87B1C4\n" 472 "BL sub_FF95F3A0\n" // nullsub 473 "BL sub_FF95FF60\n" 474 "LDR r1, =0x5\n" // was: "mov ..., #5" 475 "LDR r0, =0x0\n" // was: "mov ..., #0" 476 "BL sub_ff839f2c\n" // KernelMisc.c:31 477 "LDR r4, =0x00002b9c\n" // was: "[pc, #-2000] ; ff879e9c" 478 "LDR r1, =0x00101dff\n" // was: "[pc, #-1968] ; ff879ec0" 479 "STR r0, [r4, #4]\n" 480 "LDR r0, =0x0\n" // was: "mov ..., #0" 481 "BL sub_ff839f50\n" // KernelMisc.c:43 482 "STR r0, [r4]\n" 483 "LDR r0, =0x0\n" // was: "mov ..., #0" 484 "LDR r1, =0x1\n" // was: "mov ..., #1" 485 "BL sub_ff839f74\n" // KernelMisc.c:55 486 "STR r0, [r4, #8]\n" 487 "LDR r3, =0x0\n" // was: "mov ..., #0" 488 "STR r3, [sp]\n" 489 //"LDR r3, =capt_seq_task\n" 490 "LDR r3, =0xFF87A2C0\n" // capt_seq_task 491 "LDR r0, =0xFF87A848\n" // *"CaptSeqTask" 492 "LDR r2, =0x1000\n" // was: "mov ..., #4096" 493 "LDR r1, =0x17\n" // was: "mov ..., #23" 494 "BL sub_ff839ef8\n" // was FF839EF8 KernelCreateTask ; LOCATION: KernelMisc.c:19 495 "POP {r3, r4, r5, pc}\n" 498 496 ); 499 497 } … … 503 501 void __attribute__((naked,noinline)) sub_ff88cb3c_my() { // sub_FF88FF58_my 504 502 asm volatile ( 505 " push{r4, lr}\n"506 " ldrr0, =0x3\n" // was: "mov ..., #3"507 " blsub_ff86f084_my\n"508 " blsub_ff94002c\n"509 " ldrr4, =0x00002f54\n" // was: "[pc, #112] ; ff88cbc4"510 " ldrr0, [r4, #4]\n"511 " cmpr0, #0\n" // 0x0512 " bneloc_ff88cb74\n"513 " blsub_ff86e2cc\n"514 " blsub_ff9344f0\n"515 " blsub_ff86e2cc\n"516 " blsub_ff86a6f0\n"517 " blsub_ff86e1cc\n"518 " blsub_ff93458c\n"503 "PUSH {r4, lr}\n" 504 "LDR r0, =0x3\n" // was: "mov ..., #3" 505 "BL sub_ff86f084_my\n" 506 "BL sub_ff94002c\n" 507 "LDR r4, =0x00002f54\n" // was: "[pc, #112] ; ff88cbc4" 508 "LDR r0, [r4, #4]\n" 509 "CMP r0, #0\n" // 0x0 510 "BNE loc_ff88cb74\n" 511 "BL sub_ff86e2cc\n" 512 "BL sub_ff9344f0\n" 513 "BL sub_ff86e2cc\n" 514 "BL sub_ff86a6f0\n" 515 "BL sub_ff86e1cc\n" 516 "BL sub_ff93458c\n" 519 517 "loc_ff88cb74:\n" 520 " ldrr0, =0x1\n" // was: "mov ..., #1"521 " strr0, [r4]\n"522 " pop{r4, pc}\n"518 "LDR r0, =0x1\n" // was: "mov ..., #1" 519 "STR r0, [r4]\n" 520 "POP {r4, pc}\n" 523 521 ); 524 522 }; … … 526 524 void __attribute__((naked,noinline)) sub_ff86f084_my() { // sub_FF871A04_my 527 525 asm volatile ( 528 " push{r4, r5, r6, r7, r8, lr}\n"529 " movr8, r0\n"530 " blsub_ff86f004\n"531 " ldrr1, =0x00038448\n" // was: "[pc, #-2052] ; ff86e894"532 " movr6, r0\n"533 " addr4, r1, r0, lsl #7\n"534 " ldrr0, [r4, #108]\n"535 " cmpr0, #4\n" // 0x4536 " ldreqr1, =0x0000085a\n" // was: "[pc, #208] ; ff86f17c"537 " ldreqr0, =0xff86eb44\n" // was: "[pc, #200] ; ff86f178" **"Mounter.c"538 " bleqsub_ff81eb14\n"539 " movr1, r8\n"540 " movr0, r6\n"541 " blsub_ff86e8bc\n"542 " ldrr0, [r4, #56]\n"543 " blsub_ff86f724\n"544 " cmpr0, #0\n" // 0x0545 " streqr0, [r4, #108]\n"546 " movr0, r6\n"547 " blsub_ff86e94c\n"548 " movr0, r6\n"549 " blsub_ff86ecac\n"550 " movr5, r0\n"551 " movr0, r6\n"552 " blsub_ff86eedc_my\n"553 " ldrr6, [r4, #60]\n"554 " andr7, r5, r0\n"555 " cmpr6, #0\n" // 0x0556 " ldrr1, [r4, #56]\n"557 " ldreqr0, =0x80000001\n" // was: "mov ..., #-2147483647"558 " ldrr5, =0x0\n" // was: "mov ..., #0"559 " beqloc_ff86f134\n"560 " movr0, r1\n"561 " blsub_ff86e434\n"562 " cmpr0, #0\n" // 0x0563 " ldrner5, =0x4\n" // was: "mov ..., #4"564 " cmpr6, #5\n" // 0x5565 " orrner0, r5, #1\n" // 0x1566 " biceqr0, r5, #1\n" // 0x1567 " cmpr7, #0\n" // 0x0568 " biceqr0, r0, #2\n" // 0x2569 " orreqr0, r0, #0x80000000\n"570 " bicner0, r0, #0x80000000\n"571 " orrner0, r0, #2\n" // 0x2526 "PUSH {r4, r5, r6, r7, r8, lr}\n" 527 "MOV r8, r0\n" 528 "BL sub_ff86f004\n" 529 "LDR r1, =0x00038448\n" // was: "[pc, #-2052] ; ff86e894" 530 "MOV r6, r0\n" 531 "ADD r4, r1, r0, lsl #7\n" 532 "LDR r0, [r4, #108]\n" 533 "CMP r0, #4\n" // 0x4 534 "LDREQ r1, =0x0000085a\n" // was: "[pc, #208] ; ff86f17c" 535 "LDREQ r0, =0xff86eb44\n" // was: "[pc, #200] ; ff86f178" **"Mounter.c" 536 "BLEQ sub_ff81eb14\n" 537 "MOV r1, r8\n" 538 "MOV r0, r6\n" 539 "BL sub_ff86e8bc\n" 540 "LDR r0, [r4, #56]\n" 541 "BL sub_ff86f724\n" 542 "CMP r0, #0\n" // 0x0 543 "STREQ r0, [r4, #108]\n" 544 "MOV r0, r6\n" 545 "BL sub_ff86e94c\n" 546 "MOV r0, r6\n" 547 "BL sub_ff86ecac\n" 548 "MOV r5, r0\n" 549 "MOV r0, r6\n" 550 "BL sub_ff86eedc_my\n" 551 "LDR r6, [r4, #60]\n" 552 "AND r7, r5, r0\n" 553 "CMP r6, #0\n" // 0x0 554 "LDR r1, [r4, #56]\n" 555 "LDREQ r0, =0x80000001\n" // was: "mov ..., #-2147483647" 556 "LDR r5, =0x0\n" // was: "mov ..., #0" 557 "BEQ loc_ff86f134\n" 558 "MOV r0, r1\n" 559 "BL sub_ff86e434\n" 560 "CMP r0, #0\n" // 0x0 561 "LDRNE r5, =0x4\n" // was: "mov ..., #4" 562 "CMP r6, #5\n" // 0x5 563 "ORRNE r0, r5, #1\n" // 0x1 564 "BICEQ r0, r5, #1\n" // 0x1 565 "CMP r7, #0\n" // 0x0 566 "BICEQ r0, r0, #2\n" // 0x2 567 "ORREQ r0, r0, #0x80000000\n" 568 "BICNE r0, r0, #0x80000000\n" 569 "ORRNE r0, r0, #2\n" // 0x2 572 570 "loc_ff86f134:\n" 573 " cmpr8, #7\n" // 0x7574 " strr0, [r4, #64]\n"575 " popne{r4, r5, r6, r7, r8, pc}\n"576 " movr0, r8\n"577 " blsub_ff86f054\n"578 " cmpr0, #0\n" // 0x0579 " popeq{r4, r5, r6, r7, r8, lr}\n"580 " ldreqr0, =0xff86f180\n" // was: "addeq r0, pc, #40" *"EMEM MOUNT ERROR!!!"581 " beqsub_ff81177c\n"582 " pop{r4, r5, r6, r7, r8, pc}\n"571 "CMP r8, #7\n" // 0x7 572 "STR r0, [r4, #64]\n" 573 "POPNE {r4, r5, r6, r7, r8, pc}\n" 574 "MOV r0, r8\n" 575 "BL sub_ff86f054\n" 576 "CMP r0, #0\n" // 0x0 577 "POPEQ {r4, r5, r6, r7, r8, lr}\n" 578 "LDREQ r0, =0xff86f180\n" // was: "addeq r0, pc, #40" *"EMEM MOUNT ERROR!!!" 579 "BEQ sub_ff81177c\n" 580 "POP {r4, r5, r6, r7, r8, pc}\n" 583 581 ); 584 582 }; … … 586 584 void __attribute__((naked,noinline)) sub_ff86eedc_my() { // FF87185C 587 585 asm volatile ( 588 " push{r3, r4, r5, r6, r7, r8, r9, lr}\n"589 " movr5, r0\n"590 " ldrr0, =0xff86f16c\n" // was: "add r0, pc, #640"591 " ldrr0, [r0]\n"592 " ldrr9, =0x00038448\n" // was: "[pc, #-1632] ; ff86e894"593 " strr0, [sp]\n"594 " addr4, r9, r5, lsl #7\n"595 " ldrr0, [r4, #108]\n"596 " tstr0, #4\n" // 0x4597 " ldrner0, =0x1\n" // was: "mov ..., #1"598 " bneloc_ff86ef48\n"599 " ldrr0, [r4, #60]\n"600 " ldrr6, =0x00002968\n" // was: "[pc, #-1672] ; ff86e88c"601 " cmpr0, #6\n" // 0x6602 " ldrr8, =0x1\n" // was: "mov ..., #1"603 " ldrr7, =0x0\n" // was: "mov ..., #0"604 " addlspc, pc, r0, lsl #2\n"605 " bloc_ff86efa8\n"606 " bloc_ff86ef40\n"607 " bloc_ff86ef4c\n"608 " bloc_ff86ef4c\n"609 " bloc_ff86ef4c\n"610 " bloc_ff86ef4c\n"611 " bloc_ff86ef64\n"612 " bloc_ff86ef4c\n"586 "PUSH {r3, r4, r5, r6, r7, r8, r9, lr}\n" 587 "MOV r5, r0\n" 588 "LDR r0, =0xff86f16c\n" // was: "add r0, pc, #640" 589 "LDR r0, [r0]\n" 590 "LDR r9, =0x00038448\n" // was: "[pc, #-1632] ; ff86e894" 591 "STR r0, [sp]\n" 592 "ADD r4, r9, r5, lsl #7\n" 593 "LDR r0, [r4, #108]\n" 594 "TST r0, #4\n" // 0x4 595 "LDRNE r0, =0x1\n" // was: "mov ..., #1" 596 "BNE loc_ff86ef48\n" 597 "LDR r0, [r4, #60]\n" 598 "LDR r6, =0x00002968\n" // was: "[pc, #-1672] ; ff86e88c" 599 "CMP r0, #6\n" // 0x6 600 "LDR r8, =0x1\n" // was: "mov ..., #1" 601 "LDR r7, =0x0\n" // was: "mov ..., #0" 602 "ADDLS pc, pc, r0, lsl #2\n" 603 "B loc_ff86efa8\n" 604 "B loc_ff86ef40\n" 605 "B loc_ff86ef4c\n" 606 "B loc_ff86ef4c\n" 607 "B loc_ff86ef4c\n" 608 "B loc_ff86ef4c\n" 609 "B loc_ff86ef64\n" 610 "B loc_ff86ef4c\n" 613 611 "loc_ff86ef40:\n" // jumptable entry 0 614 " ldrr0, =0x0\n" // was: "mov ..., #0"615 " strr7, [r4, #108]\n"612 "LDR r0, =0x0\n" // was: "mov ..., #0" 613 "STR r7, [r4, #108]\n" 616 614 "loc_ff86ef48:\n" 617 " pop{r3, r4, r5, r6, r7, r8, r9, pc}\n"615 "POP {r3, r4, r5, r6, r7, r8, r9, pc}\n" 618 616 "loc_ff86ef4c:\n" // 5 refs, jumptable entries 1-4,6 619 " ldrr0, [r4, #56]\n"620 " blsub_ff86e434\n"621 " cmpr0, #0\n" // 0x0622 " streqr7, [r6, #16]\n"623 " strner8, [r6, #16]\n"624 " bloc_ff86efb4\n"617 "LDR r0, [r4, #56]\n" 618 "BL sub_ff86e434\n" 619 "CMP r0, #0\n" // 0x0 620 "STREQ r7, [r6, #16]\n" 621 "STRNE r8, [r6, #16]\n" 622 "B loc_ff86efb4\n" 625 623 "loc_ff86ef64:\n" // jumptable entry 5 626 " ldrr2, =0x0\n" // was: "mov ..., #0"627 " ldrr1, =0x8000\n" // was: "mov ..., #32768"628 " ldrr0, =0x0\n" // was: "mov ..., #0"629 " strr8, [r6, #16]\n"630 " blsub_ff886bc0\n"631 " movr6, r0\n"632 " movr2, r4\n"633 " ldrr1, =0x8000\n" // was: "mov ..., #32768"634 " blsub_ff941dd8\n"635 " ldrr0, [r9, r5, lsl #7]\n"636 " movr1, r6\n"637 " strr0, [r4, #80]\n"638 " ldrr0, [r4, #4]\n"639 " strr0, [r4, #84]\n"640 " movr0, r5\n"641 " blsub_ff86e578\n"642 " bloc_ff86efb4\n"624 "LDR r2, =0x0\n" // was: "mov ..., #0" 625 "LDR r1, =0x8000\n" // was: "mov ..., #32768" 626 "LDR r0, =0x0\n" // was: "mov ..., #0" 627 "STR r8, [r6, #16]\n" 628 "BL sub_ff886bc0\n" 629 "MOV r6, r0\n" 630 "MOV r2, r4\n" 631 "LDR r1, =0x8000\n" // was: "mov ..., #32768" 632 "BL sub_ff941dd8\n" 633 "LDR r0, [r9, r5, lsl #7]\n" 634 "MOV r1, r6\n" 635 "STR r0, [r4, #80]\n" 636 "LDR r0, [r4, #4]\n" 637 "STR r0, [r4, #84]\n" 638 "MOV r0, r5\n" 639 "BL sub_ff86e578\n" 640 "B loc_ff86efb4\n" 643 641 "loc_ff86efa8:\n" // jumptable default entry 644 " ldrr1, =0x000006c1\n" // was: "[pc, #448] ; ff86f170"645 " ldrr0, =0xff86eb44\n" // was: "sub r0, pc, #1136" *"Mounter.c"646 " blsub_ff81eb14\n"642 "LDR r1, =0x000006c1\n" // was: "[pc, #448] ; ff86f170" 643 "LDR r0, =0xff86eb44\n" // was: "sub r0, pc, #1136" *"Mounter.c" 644 "BL sub_ff81eb14\n" 647 645 "loc_ff86efb4:\n" // 2 refs 648 " movr0, r5\n"649 " blsub_ff86e1d4\n"650 " strbr0, [sp]\n"651 " movr0, r5\n"652 " movr1, sp\n"653 " blsub_ff86edac\n"654 " cmnr0, #1\n" // 0x1655 " bneloc_ff86eff4\n"656 " ldrr1, =0x000384c8\n" // was: "[pc, #-1860] ; ff86e898"657 " addr0, r5, r5, lsl #4\n"658 " strr7, [r1, r0, lsl #2]\n"659 " ldrr1, [r4, #108]\n"660 " ldrr0, =0x0\n" // was: "mov ..., #0"661 " bicr1, r1, #6\n" // 0x6646 "MOV r0, r5\n" 647 "BL sub_ff86e1d4\n" 648 "STRB r0, [sp]\n" 649 "MOV r0, r5\n" 650 "MOV r1, sp\n" 651 "BL sub_ff86edac\n" 652 "CMN r0, #1\n" // 0x1 653 "BNE loc_ff86eff4\n" 654 "LDR r1, =0x000384c8\n" // was: "[pc, #-1860] ; ff86e898" 655 "ADD r0, r5, r5, lsl #4\n" 656 "STR r7, [r1, r0, lsl #2]\n" 657 "LDR r1, [r4, #108]\n" 658 "LDR r0, =0x0\n" // was: "mov ..., #0" 659 "BIC r1, r1, #6\n" // 0x6 662 660 "loc_ff86efec:\n" 663 " strr1, [r4, #108]\n"664 " pop{r3, r4, r5, r6, r7, r8, r9, pc}\n"661 "STR r1, [r4, #108]\n" 662 "POP {r3, r4, r5, r6, r7, r8, r9, pc}\n" 665 663 "loc_ff86eff4:\n" 666 " ldrr1, [r4, #108]\n"667 " ldrr0, =0x1\n" // was: "mov ..., #1"668 " orrr1, r1, #4\n" // 0x4669 " bloc_ff86efec\n"664 "LDR r1, [r4, #108]\n" 665 "LDR r0, =0x1\n" // was: "mov ..., #1" 666 "ORR r1, r1, #4\n" // 0x4 667 "B loc_ff86efec\n" 670 668 ); 671 669 }; -
trunk/platform/ixus130_sd1400/sub/100a/capt_seq.c
r1985 r1993 10 10 void __attribute__((naked,noinline)) capt_seq_task() { 11 11 asm volatile ( 12 " push{r3, r4, r5, r6, r7, r8, r9, lr}\n"13 " ldrr6, =0x00002b9c\n" // was: "[pc, #-1152] ; ff879e9c"14 " ldrr4, =0x00039644\n" // was: "[pc, #-1104] ; ff879ed0"15 " ldrr9, =0x1\n" // was: "mov ..., #1"16 " ldrr7, =0x0\n" // was: "mov ..., #0"12 "PUSH {r3, r4, r5, r6, r7, r8, r9, lr}\n" 13 "LDR r6, =0x00002b9c\n" // was: "[pc, #-1152] ; ff879e9c" 14 "LDR r4, =0x00039644\n" // was: "[pc, #-1104] ; ff879ed0" 15 "LDR r9, =0x1\n" // was: "mov ..., #1" 16 "LDR r7, =0x0\n" // was: "mov ..., #0" 17 17 "loc_FF87A2D4:\n" 18 " ldrr0, [r6, #4]\n"19 " ldrr2, =0x0\n" // was: "mov ..., #0"20 " movr1, sp\n"21 " blsub_FF8396E4\n"22 " tstr0, #1\n" // 0x123 " beqloc_FF87A300\n"24 " ldrr1, =0x000005b4\n" // was: "[pc, #1352] ; ff87a88c"25 " ldrr0, =0xFF879E50\n" // was: "[pc, #1336] ; ff87a880" **"SsShootTask.c"26 " blsub_ff81eb14\n"27 " blsub_ff81eacc\n"28 " pop{r3, r4, r5, r6, r7, r8, r9, pc}\n"18 "LDR r0, [r6, #4]\n" 19 "LDR r2, =0x0\n" // was: "mov ..., #0" 20 "MOV r1, sp\n" 21 "BL sub_FF8396E4\n" 22 "TST r0, #1\n" // 0x1 23 "BEQ loc_FF87A300\n" 24 "LDR r1, =0x000005b4\n" // was: "[pc, #1352] ; ff87a88c" 25 "LDR r0, =0xFF879E50\n" // was: "[pc, #1336] ; ff87a880" **"SsShootTask.c" 26 "BL sub_ff81eb14\n" 27 "BL sub_ff81eacc\n" 28 "POP {r3, r4, r5, r6, r7, r8, r9, pc}\n" 29 29 "loc_FF87A300:\n" 30 " ldrr0, [sp]\n"31 " ldrr1, [r0]\n"32 " cmpr1, #29\n" // 0x1d33 " addlspc, pc, r1, lsl #2\n"34 " bloc_FF87A59C\n"35 " bloc_FF87A38C\n" // 0 jumptable start36 " bloc_FF87A3F0\n" // 137 " bloc_FF87A42C\n" // 238 " bloc_FF87A440\n" // 339 " bloc_FF87A438\n" // 440 " bloc_FF87A448\n" // 541 " bloc_FF87A450\n" // 642 " bloc_FF87A458\n" // 743 " bloc_FF87A4B0\n" // 844 " bloc_FF87A4D8\n" // 945 " bloc_FF87A4BC\n" // 1046 " bloc_FF87A4C8\n" // 1147 " bloc_FF87A4D0\n" // 1248 " bloc_FF87A4E0\n" // 1349 " bloc_FF87A4E8\n" // 1450 " bloc_FF87A4F0\n" // 1551 " bloc_FF87A4F8\n" // 1652 " bloc_FF87A500\n" // 1753 " bloc_FF87A50C\n" // 1854 " bloc_FF87A514\n" // 1955 " bloc_FF87A51C\n" // 2056 " bloc_FF87A524\n" // 2157 " bloc_FF87A52C\n" // 2258 " bloc_FF87A538\n" // 2359 " bloc_FF87A540\n" // 2460 " bloc_FF87A548\n" // 2561 " bloc_FF87A550\n" // 2662 " bloc_FF87A558\n" // 2763 " bloc_FF87A564\n" // 2864 " bloc_FF87A5A8\n" // 2930 "LDR r0, [sp]\n" 31 "LDR r1, [r0]\n" 32 "CMP r1, #29\n" // 0x1d 33 "ADDLS pc, pc, r1, lsl #2\n" 34 "B loc_FF87A59C\n" 35 "B loc_FF87A38C\n" // 0 jumptable start 36 "B loc_FF87A3F0\n" // 1 37 "B loc_FF87A42C\n" // 2 38 "B loc_FF87A440\n" // 3 39 "B loc_FF87A438\n" // 4 40 "B loc_FF87A448\n" // 5 41 "B loc_FF87A450\n" // 6 42 "B loc_FF87A458\n" // 7 43 "B loc_FF87A4B0\n" // 8 44 "B loc_FF87A4D8\n" // 9 45 "B loc_FF87A4BC\n" // 10 46 "B loc_FF87A4C8\n" // 11 47 "B loc_FF87A4D0\n" // 12 48 "B loc_FF87A4E0\n" // 13 49 "B loc_FF87A4E8\n" // 14 50 "B loc_FF87A4F0\n" // 15 51 "B loc_FF87A4F8\n" // 16 52 "B loc_FF87A500\n" // 17 53 "B loc_FF87A50C\n" // 18 54 "B loc_FF87A514\n" // 19 55 "B loc_FF87A51C\n" // 20 56 "B loc_FF87A524\n" // 21 57 "B loc_FF87A52C\n" // 22 58 "B loc_FF87A538\n" // 23 59 "B loc_FF87A540\n" // 24 60 "B loc_FF87A548\n" // 25 61 "B loc_FF87A550\n" // 26 62 "B loc_FF87A558\n" // 27 63 "B loc_FF87A564\n" // 28 64 "B loc_FF87A5A8\n" // 29 65 65 "loc_FF87A38C:\n" // jumptable entry 0 66 " blsub_FF87AC50\n"67 " blshooting_expo_param_override\n" // added68 " blsub_FF87805C\n"66 "BL sub_FF87AC50\n" 67 "BL shooting_expo_param_override\n" // added 68 "BL sub_FF87805C\n" 69 69 70 70 // this code added to avoid some incorrect behavior if overrides are used. 71 71 // but it can cause some unexpected side effects. In this case, remove this code! 72 " movr0, #0\n"73 " strr0, [r4, #36]\n" // 0x24 fixes overrides behavior at short shutter press72 "MOV r0, #0\n" 73 "STR r0, [r4, #36]\n" // 0x24 fixes overrides behavior at short shutter press 74 74 75 " bloc_FF87A5A8\n"75 "B loc_FF87A5A8\n" 76 76 /* 77 " ldrr0, [r4, #36]\n"78 " cmpr0, #0\n" // 0x079 " beqloc_FF87A5A8\n"80 " blsub_FF879B30\n"81 " movr5, r0\n"82 " ldrr0, [r4, #36]\n"83 " cmpr0, #0\n" // 0x084 " beqloc_FF87A3D4\n"85 " ldrr0, =0xc\n" // was: "mov ..., #12"86 " blsub_FF87F124\n"87 " tstr0, #1\n" // 0x188 " strner9, [r6, #16]\n"89 " ldrner0, [r5, #8]\n"90 " orrner0, r0, #1073741824\n" // 0x4000000091 " strner0, [r5, #8]\n"92 " bneloc_FF87A5A8\n"77 "LDR r0, [r4, #36]\n" 78 "CMP r0, #0\n" // 0x0 79 "BEQ loc_FF87A5A8\n" 80 "BL sub_FF879B30\n" 81 "MOV r5, r0\n" 82 "LDR r0, [r4, #36]\n" 83 "CMP r0, #0\n" // 0x0 84 "BEQ loc_FF87A3D4\n" 85 "LDR r0, =0xc\n" // was: "mov ..., #12" 86 "BL sub_FF87F124\n" 87 "TST r0, #1\n" // 0x1 88 "STRNE r9, [r6, #16]\n" 89 "LDRNE r0, [r5, #8]\n" 90 "ORRNE r0, r0, #1073741824\n" // 0x40000000 91 "STRNE r0, [r5, #8]\n" 92 "BNE loc_FF87A5A8\n" 93 93 "loc_FF87A3D4:\n" 94 " movr0, r5\n"95 " blsub_FF879DD4\n"96 " movr0, r5\n"94 "MOV r0, r5\n" 95 "BL sub_FF879DD4\n" 96 "MOV r0, r5\n" 97 97 98 " blsub_ff95f120_my\n" // taskcreate_ShutterSoundTask()99 " blcapt_seq_hook_raw_here\n" // added98 "BL sub_ff95f120_my\n" // taskcreate_ShutterSoundTask() 99 "BL capt_seq_hook_raw_here\n" // added 100 100 101 " tstr0, #1\n" // 0x1102 " strner9, [r6, #16]\n"103 " bloc_FF87A5A8\n"101 "TST r0, #1\n" // 0x1 102 "STRNE r9, [r6, #16]\n" 103 "B loc_FF87A5A8\n" 104 104 */ 105 105 "loc_FF87A3F0:\n" // jumptable entry 1 106 " ldrr0, [r4, #36]\n"107 " cmpr0, #0\n" // 0x0108 " bneloc_FF87A41C\n"109 " ldrr0, =0xc\n" // was: "mov ..., #12"110 " blsub_FF87F124\n"111 " tstr0, #1\n" // 0x1112 " ldrner0, [sp]\n"113 " ldrner1, =0x1\n" // was: "mov ..., #1"114 " ldrner2, [r0, #12]\n"115 " ldrner0, =0x1\n" // was: "mov ..., #1"116 " bneloc_FF87A4A8\n"106 "LDR r0, [r4, #36]\n" 107 "CMP r0, #0\n" // 0x0 108 "BNE loc_FF87A41C\n" 109 "LDR r0, =0xc\n" // was: "mov ..., #12" 110 "BL sub_FF87F124\n" 111 "TST r0, #1\n" // 0x1 112 "LDRNE r0, [sp]\n" 113 "LDRNE r1, =0x1\n" // was: "mov ..., #1" 114 "LDRNE r2, [r0, #12]\n" 115 "LDRNE r0, =0x1\n" // was: "mov ..., #1" 116 "BNE loc_FF87A4A8\n" 117 117 "loc_FF87A41C:\n" 118 " ldrr0, [sp]\n"119 //" blsub_ff87a714\n"120 " blsub_ff87a714_my\n"118 "LDR r0, [sp]\n" 119 //"BL sub_ff87a714\n" 120 "BL sub_ff87a714_my\n" 121 121 "loc_FF87A424:\n" // 2 refs 122 " strr7, [r4, #36]\n"123 " bloc_FF87A5A8\n"122 "STR r7, [r4, #36]\n" 123 "B loc_FF87A5A8\n" 124 124 "loc_FF87A42C:\n" // jumptable entry 2 125 " ldrr0, =0x1\n" // was: "mov ..., #1"126 " blsub_FF87AEF4\n"127 " bloc_FF87A5A8\n"125 "LDR r0, =0x1\n" // was: "mov ..., #1" 126 "BL sub_FF87AEF4\n" 127 "B loc_FF87A5A8\n" 128 128 "loc_FF87A438:\n" // jumptable entry 4 129 " blsub_FF87A86C\n"130 " bloc_FF87A424\n"129 "BL sub_FF87A86C\n" 130 "B loc_FF87A424\n" 131 131 "loc_FF87A440:\n" // jumptable entry 3 132 " blsub_FF87AC30\n"133 " bloc_FF87A424\n"132 "BL sub_FF87AC30\n" 133 "B loc_FF87A424\n" 134 134 "loc_FF87A448:\n" // jumptable entry 5 135 " blsub_FF87AC38\n"136 " bloc_FF87A5A8\n"135 "BL sub_FF87AC38\n" 136 "B loc_FF87A5A8\n" 137 137 "loc_FF87A450:\n" // jumptable entry 6 138 " blsub_FF87AE04\n"139 " bloc_FF87A4B4\n"138 "BL sub_FF87AE04\n" 139 "B loc_FF87A4B4\n" 140 140 "loc_FF87A458:\n" // jumptable entry 7 141 " ldrr5, [r0, #12]\n"142 " blsub_FF87AC40\n"143 " movr0, r5\n"144 " blsub_FF95E03C\n"145 " tstr0, #1\n" // 0x1146 " movr8, r0\n"147 " bneloc_FF87A498\n"148 " blsub_FF88C384\n"149 " strr0, [r5, #24]\n"150 " movr0, r5\n"151 " blsub_FF95EF80\n"152 " movr0, r5\n"153 " blsub_FF95F31C\n"154 " movr8, r0\n"155 " ldrr0, [r5, #24]\n"156 " blsub_FF88C5BC\n"141 "LDR r5, [r0, #12]\n" 142 "BL sub_FF87AC40\n" 143 "MOV r0, r5\n" 144 "BL sub_FF95E03C\n" 145 "TST r0, #1\n" // 0x1 146 "MOV r8, r0\n" 147 "BNE loc_FF87A498\n" 148 "BL sub_FF88C384\n" 149 "STR r0, [r5, #24]\n" 150 "MOV r0, r5\n" 151 "BL sub_FF95EF80\n" 152 "MOV r0, r5\n" 153 "BL sub_FF95F31C\n" 154 "MOV r8, r0\n" 155 "LDR r0, [r5, #24]\n" 156 "BL sub_FF88C5BC\n" 157 157 "loc_FF87A498:\n" 158 " blsub_FF87AC30\n"159 " movr2, r5\n"160 " ldrr1, =0x9\n" // was: "mov ..., #9"161 " movr0, r8\n"158 "BL sub_FF87AC30\n" 159 "MOV r2, r5\n" 160 "LDR r1, =0x9\n" // was: "mov ..., #9" 161 "MOV r0, r8\n" 162 162 "loc_FF87A4A8:\n" 163 " blsub_FF87851C\n"164 " bloc_FF87A5A8\n"163 "BL sub_FF87851C\n" 164 "B loc_FF87A5A8\n" 165 165 "loc_FF87A4B0:\n" // jumptable entry 8 166 " blsub_FF87AE6C\n"166 "BL sub_FF87AE6C\n" 167 167 "loc_FF87A4B4:\n" 168 " blsub_FF87805C\n"169 " bloc_FF87A5A8\n"168 "BL sub_FF87805C\n" 169 "B loc_FF87A5A8\n" 170 170 "loc_FF87A4BC:\n" // jumptable entry 10 171 " ldrr0, [r4, #84]\n"172 " blsub_FF87B298\n"173 " bloc_FF87A5A8\n"171 "LDR r0, [r4, #84]\n" 172 "BL sub_FF87B298\n" 173 "B loc_FF87A5A8\n" 174 174 "loc_FF87A4C8:\n" // jumptable entry 11 175 " blsub_FF87B54C\n"176 " bloc_FF87A5A8\n"175 "BL sub_FF87B54C\n" 176 "B loc_FF87A5A8\n" 177 177 "loc_FF87A4D0:\n" // jumptable entry 12 178 " blsub_FF87B5E0\n"179 " bloc_FF87A5A8\n"178 "BL sub_FF87B5E0\n" 179 "B loc_FF87A5A8\n" 180 180 "loc_FF87A4D8:\n" // jumptable entry 9 181 " blsub_FF87AC30\n"182 " bloc_FF87A5A8\n"181 "BL sub_FF87AC30\n" 182 "B loc_FF87A5A8\n" 183 183 "loc_FF87A4E0:\n" // jumptable entry 13 184 " blsub_FF95E254\n"185 " bloc_FF87A5A8\n"184 "BL sub_FF95E254\n" 185 "B loc_FF87A5A8\n" 186 186 "loc_FF87A4E8:\n" // jumptable entry 14 187 " blsub_FF95E468\n"188 " bloc_FF87A5A8\n"187 "BL sub_FF95E468\n" 188 "B loc_FF87A5A8\n" 189 189 "loc_FF87A4F0:\n" // jumptable entry 15 190 " blsub_FF95E500\n"191 " bloc_FF87A5A8\n"190 "BL sub_FF95E500\n" 191 "B loc_FF87A5A8\n" 192 192 "loc_FF87A4F8:\n" // jumptable entry 16 193 " blsub_FF95E5D0\n"194 " bloc_FF87A5A8\n"193 "BL sub_FF95E5D0\n" 194 "B loc_FF87A5A8\n" 195 195 "loc_FF87A500:\n" // jumptable entry 17 196 " ldrr0, =0x0\n" // was: "mov ..., #0"197 " blsub_FF95E838\n"198 " bloc_FF87A5A8\n"196 "LDR r0, =0x0\n" // was: "mov ..., #0" 197 "BL sub_FF95E838\n" 198 "B loc_FF87A5A8\n" 199 199 "loc_FF87A50C:\n" // jumptable entry 18 200 " blsub_FF95E988\n"201 " bloc_FF87A5A8\n"200 "BL sub_FF95E988\n" 201 "B loc_FF87A5A8\n" 202 202 "loc_FF87A514:\n" // jumptable entry 19 203 " blsub_FF95EA18\n"204 " bloc_FF87A5A8\n"203 "BL sub_FF95EA18\n" 204 "B loc_FF87A5A8\n" 205 205 "loc_FF87A51C:\n" // jumptable entry 20 206 " blsub_FF95EAD8\n"207 " bloc_FF87A5A8\n"206 "BL sub_FF95EAD8\n" 207 "B loc_FF87A5A8\n" 208 208 "loc_FF87A524:\n" // jumptable entry 21 209 " blsub_FF87B06C\n"210 " bloc_FF87A5A8\n"209 "BL sub_FF87B06C\n" 210 "B loc_FF87A5A8\n" 211 211 "loc_FF87A52C:\n" // jumptable entry 22 212 " blsub_FF87B114\n"213 " blsub_FF8376FC\n"214 " bloc_FF87A5A8\n"212 "BL sub_FF87B114\n" 213 "BL sub_FF8376FC\n" 214 "B loc_FF87A5A8\n" 215 215 "loc_FF87A538:\n" // jumptable entry 23 216 " blsub_FF95E69C\n"217 " bloc_FF87A5A8\n"216 "BL sub_FF95E69C\n" 217 "B loc_FF87A5A8\n" 218 218 "loc_FF87A540:\n" // jumptable entry 24 219 " blsub_FF95E708\n"219 "BL sub_FF95E708\n" 220 220 //"loc_FF87A544:\n" // this line does not have a correspondence in 100a dump! 221 " bloc_FF87A5A8\n"221 "B loc_FF87A5A8\n" 222 222 "loc_FF87A548:\n" // jumptable entry 25 223 " blsub_FF87D72C\n"224 " bloc_FF87A5A8\n"223 "BL sub_FF87D72C\n" 224 "B loc_FF87A5A8\n" 225 225 "loc_FF87A550:\n" // jumptable entry 26 226 " blsub_FF87D7B4\n"227 " bloc_FF87A5A8\n"226 "BL sub_FF87D7B4\n" 227 "B loc_FF87A5A8\n" 228 228 "loc_FF87A558:\n" // jumptable entry 27 229 " blsub_FF87D810\n"230 " blsub_FF87D7D0\n"231 " bloc_FF87A5A8\n"229 "BL sub_FF87D810\n" 230 "BL sub_FF87D7D0\n" 231 "B loc_FF87A5A8\n" 232 232 "loc_FF87A564:\n" // jumptable entry 28 233 " ldrr0, =0x1\n" // was: "mov ..., #1"234 " blsub_FF95FCE0\n"235 " ldrr0, =0x1\n" // was: "mov ..., #1"236 " blsub_FF95FE14\n"237 " ldrhr0, [r4, #148]\n"238 " cmpr0, #4\n" // 0x4239 " ldrnehr0, [r4]\n" // compiler doesn't like ldrhne, -> ldrneh240 " subneip, r0, #33280\n" // 0x8200241 " subnesip, ip, #42\n" // 0x2a compiler doesn't like subsne, -> subnes242 " bneloc_FF87A5A8\n"243 " blsub_FF87D7B4\n"244 " blsub_FF87DD24\n"245 " blsub_FF87DC34\n"246 " bloc_FF87A5A8\n"233 "LDR r0, =0x1\n" // was: "mov ..., #1" 234 "BL sub_FF95FCE0\n" 235 "LDR r0, =0x1\n" // was: "mov ..., #1" 236 "BL sub_FF95FE14\n" 237 "LDRH r0, [r4, #148]\n" 238 "CMP r0, #4\n" // 0x4 239 "LDRNEH r0, [r4]\n" // compiler doesn't like ldrhne, -> ldrneh 240 "SUBNE ip, r0, #33280\n" // 0x8200 241 "SUBNES ip, ip, #42\n" // 0x2a compiler doesn't like subsne, -> subnes 242 "BNE loc_FF87A5A8\n" 243 "BL sub_FF87D7B4\n" 244 "BL sub_FF87DD24\n" 245 "BL sub_FF87DC34\n" 246 "B loc_FF87A5A8\n" 247 247 "loc_FF87A59C:\n" // jumptable default 248 " ldrr1, =0x0000070b\n" // was: "[pc, #668] ; ff87a890"249 " ldrr0, =0xFF879E50\n" // was: "[pc, #648] ; ff87a880" **"SsShootTask.c"250 " blsub_ff81eb14\n"248 "LDR r1, =0x0000070b\n" // was: "[pc, #668] ; ff87a890" 249 "LDR r0, =0xFF879E50\n" // was: "[pc, #648] ; ff87a880" **"SsShootTask.c" 250 "BL sub_ff81eb14\n" 251 251 "loc_FF87A5A8:\n" // 30 refs jumptable entry 29 252 " ldrr0, [sp]\n"253 " ldrr1, [r0, #4]\n"254 " ldrr0, [r6]\n"255 " blsub_FF883F4C\n"256 " ldrr5, [sp]\n"257 " ldrr0, [r5, #8]\n"258 " cmpr0, #0\n" // 0x0259 " ldreqr1, =0x00000132\n" // was: "[pc, #632] ; ff87a894"260 " ldreqr0, =0xFF879E50\n" // was: "subeq r0, pc, #1920" *"SsShootTask.c"261 " bleqsub_ff81eb14\n"262 " strr7, [r5, #8]\n"263 " bloc_FF87A2D4\n"252 "LDR r0, [sp]\n" 253 "LDR r1, [r0, #4]\n" 254 "LDR r0, [r6]\n" 255 "BL sub_FF883F4C\n" 256 "LDR r5, [sp]\n" 257 "LDR r0, [r5, #8]\n" 258 "CMP r0, #0\n" // 0x0 259 "LDREQ r1, =0x00000132\n" // was: "[pc, #632] ; ff87a894" 260 "LDREQ r0, =0xFF879E50\n" // was: "subeq r0, pc, #1920" *"SsShootTask.c" 261 "BLEQ sub_ff81eb14\n" 262 "STR r7, [r5, #8]\n" 263 "B loc_FF87A2D4\n" 264 264 ); 265 265 } … … 268 268 void __attribute__((naked,noinline)) sub_ff95f120_my() { 269 269 asm volatile ( //FF95F068 270 " push{r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}\n"271 " movr4, r0\n"272 " blsub_FF95FFE4\n"273 " mvnr1, #0\n" // 0x0274 " blsub_FF883F80\n"275 " ldrr5, =0x000067c0\n" // was: "[pc, #-552] ; ff95ef14"276 " ldrr0, [r5, #12]\n"277 " cmpr0, #0\n" // 0x0278 " bneloc_FF95F0B8\n"279 " ldrr1, =0x1\n" // was: "mov ..., #1"280 " ldrr0, =0x0\n" // was: "mov ..., #0"281 " blsub_ff839f2c\n"282 " strr0, [r5, #12]\n"283 " ldrr3, =0x0\n" // was: "mov ..., #0"284 " strr3, [sp]\n"285 " ldrr3, =0xFF95EBC8\n" // was: "[pc, #496] ; ff95f354"286 " ldrr0, =0xFF95F2A0\n" // was: "add r0, pc, #496" *"ShutterSoundTask"287 " ldrr2, =0x400\n" // was: "mov ..., #1024"288 " ldrr1, =0x17\n" // was: "mov ..., #23"289 " blsub_ff839ef8\n"270 "PUSH {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}\n" 271 "MOV r4, r0\n" 272 "BL sub_FF95FFE4\n" 273 "MVN r1, #0\n" // 0x0 274 "BL sub_FF883F80\n" 275 "LDR r5, =0x000067c0\n" // was: "[pc, #-552] ; ff95ef14" 276 "LDR r0, [r5, #12]\n" 277 "CMP r0, #0\n" // 0x0 278 "BNE loc_FF95F0B8\n" 279 "LDR r1, =0x1\n" // was: "mov ..., #1" 280 "LDR r0, =0x0\n" // was: "mov ..., #0" 281 "BL sub_ff839f2c\n" 282 "STR r0, [r5, #12]\n" 283 "LDR r3, =0x0\n" // was: "mov ..., #0" 284 "STR r3, [sp]\n" 285 "LDR r3, =0xFF95EBC8\n" // was: "[pc, #496] ; ff95f354" 286 "LDR r0, =0xFF95F2A0\n" // was: "add r0, pc, #496" *"ShutterSoundTask" 287 "LDR r2, =0x400\n" // was: "mov ..., #1024" 288 "LDR r1, =0x17\n" // was: "mov ..., #23" 289 "BL sub_ff839ef8\n" 290 290 "loc_FF95F0B8:\n" 291 " ldrr2, =0x4\n" // was: "mov ..., #4"292 " addr1, sp, #8\n" // 0x8293 " ldrr0, =0x8a\n" // was: "mov ..., #138"294 " blsub_FF88C1F4\n"295 " tstr0, #1\n" // 0x1296 " ldrner1, =0x000003cd\n" // was: "[pc, #480] ; ff95f36c"297 " ldrner0, =0xFF95EE60\n" // was: "subne r0, pc, #632" *"SsCaptureSeq.c"298 " blnesub_ff81eb14\n"299 " ldrr6, =0x00039708\n" // was: "[pc, #420] ; ff95f33c"300 " ldrr7, =0x00039644\n" // was: "[pc, #-604] ; ff95ef40"301 " ldrr3, [r6]\n"302 " ldrshr2, [r6, #12]\n"303 " ldrshr1, [r6, #14]\n"304 " ldrr0, [r7, #136]\n"305 " blsub_FF92947C\n"306 " blsub_ff862ca4\n" // GetCCDTemperature() WAS ff862ca4 NOT CHANGED307 " ldrr3, =0x000067c8\n" // was: "[pc, #440] ; ff95f370"308 " strhr0, [r4, #164]\n"309 " subr2, r3, #4\n" // 0x4310 " strdr2, [sp]\n"311 " movr1, r0\n"312 " ldrhr0, [r7, #92]\n"313 " ldrshr2, [r6, #12]\n"314 " subr3, r3, #8\n" // 0x8315 " blsub_FF961B88\n"291 "LDR r2, =0x4\n" // was: "mov ..., #4" 292 "ADD r1, sp, #8\n" // 0x8 293 "LDR r0, =0x8a\n" // was: "mov ..., #138" 294 "BL sub_FF88C1F4\n" 295 "TST r0, #1\n" // 0x1 296 "LDRNE r1, =0x000003cd\n" // was: "[pc, #480] ; ff95f36c" 297 "LDRNE r0, =0xFF95EE60\n" // was: "subne r0, pc, #632" *"SsCaptureSeq.c" 298 "BLNE sub_ff81eb14\n" 299 "LDR r6, =0x00039708\n" // was: "[pc, #420] ; ff95f33c" 300 "LDR r7, =0x00039644\n" // was: "[pc, #-604] ; ff95ef40" 301 "LDR r3, [r6]\n" 302 "LDRSH r2, [r6, #12]\n" 303 "LDRSH r1, [r6, #14]\n" 304 "LDR r0, [r7, #136]\n" 305 "BL sub_FF92947C\n" 306 "BL sub_ff862ca4\n" // GetCCDTemperature() WAS ff862ca4 NOT CHANGED 307 "LDR r3, =0x000067c8\n" // was: "[pc, #440] ; ff95f370" 308 "STRH r0, [r4, #164]\n" 309 "SUB r2, r3, #4\n" // 0x4 310 "STRD r2, [sp]\n" 311 "MOV r1, r0\n" 312 "LDRH r0, [r7, #92]\n" 313 "LDRSH r2, [r6, #12]\n" 314 "SUB r3, r3, #8\n" // 0x8 315 "BL sub_FF961B88\n" 316 316 317 " blwait_until_remote_button_is_released\n"318 " blcapt_seq_hook_set_nr\n"319 " bsub_FF95F11C\n" // continue in Canon firmware ????????317 "BL wait_until_remote_button_is_released\n" 318 "BL capt_seq_hook_set_nr\n" 319 "B sub_FF95F11C\n" // continue in Canon firmware ???????? 320 320 /* 321 " ldrr0, [r4, #28]\n"322 " cmpr0, #0\n" // 0x0323 " ldrner0, =0x1\n" // was: "mov ..., #1"324 " strner0, [r5]\n"325 " ldrr0, [r5]\n"326 " lslr1, r0, #16\n"327 " ldrhr0, [r7, #92]\n"328 " lsrr1, r1, #16\n"329 " blsub_ff961d9c\n"330 " strr0, [r4, #172]\n"331 " ldrr0, [r5, #4]\n"332 " blsub_ff92c5c4\n"333 " ldrr0, [r5, #8]\n"334 " blsub_ff8b1504\n"335 " ldrr0, =0x1\n" // was: "mov ..., #1"336 " blsub_ff8b151c\n"337 " movr1, r4\n"338 " ldrr0, =0xff95ecf0\n" // was: "sub r0, pc, #1328"339 " blsub_ff8b14e0\n"340 " ldrr0, [r5]\n"341 " cmpr0, #1\n" // 0x1342 " beqloc_ff95f248\n"343 " cmpr0, #2\n" // 0x2344 " beqloc_ff95f260\n"345 " cmpr0, #3\n" // 0x3346 " beqloc_ff95f280\n"347 " cmpr0, #7\n" // 0x7348 " bneloc_ff95f29c\n"349 " ldrr0, =0x0\n" // was: "mov ..., #0"321 "LDR r0, [r4, #28]\n" 322 "CMP r0, #0\n" // 0x0 323 "LDRNE r0, =0x1\n" // was: "mov ..., #1" 324 "STRNE r0, [r5]\n" 325 "LDR r0, [r5]\n" 326 "LSL r1, r0, #16\n" 327 "LDRH r0, [r7, #92]\n" 328 "LSR r1, r1, #16\n" 329 "BL sub_ff961d9c\n" 330 "STR r0, [r4, #172]\n" 331 "LDR r0, [r5, #4]\n" 332 "BL sub_ff92c5c4\n" 333 "LDR r0, [r5, #8]\n" 334 "BL sub_ff8b1504\n" 335 "LDR r0, =0x1\n" // was: "mov ..., #1" 336 "BL sub_ff8b151c\n" 337 "MOV r1, r4\n" 338 "LDR r0, =0xff95ecf0\n" // was: "sub r0, pc, #1328" 339 "BL sub_ff8b14e0\n" 340 "LDR r0, [r5]\n" 341 "CMP r0, #1\n" // 0x1 342 "BEQ loc_ff95f248\n" 343 "CMP r0, #2\n" // 0x2 344 "BEQ loc_ff95f260\n" 345 "CMP r0, #3\n" // 0x3 346 "BEQ loc_ff95f280\n" 347 "CMP r0, #7\n" // 0x7 348 "BNE loc_ff95f29c\n" 349 "LDR r0, =0x0\n" // was: "mov ..., #0" 350 350 "loc_ff95f248:\n" 351 " blsub_ff8b1510\n"352 " ldrr2, [sp, #8]\n"353 " addr1, sp, #12\n" // 0xc354 " movr0, r4\n"355 " blsub_ff95ef78\n"356 " bloc_ff95f278\n"351 "BL sub_ff8b1510\n" 352 "LDR r2, [sp, #8]\n" 353 "ADD r1, sp, #12\n" // 0xc 354 "MOV r0, r4\n" 355 "BL sub_ff95ef78\n" 356 "B loc_ff95f278\n" 357 357 "loc_ff95f260:\n" 358 " ldrr0, =0x1\n" // was: "mov ..., #1"359 " blsub_ff8b1510\n"360 " ldrr2, [sp, #8]\n"361 " addr1, sp, #12\n" // 0xc362 " movr0, r4\n"363 " blsub_ff95f474\n"358 "LDR r0, =0x1\n" // was: "mov ..., #1" 359 "BL sub_ff8b1510\n" 360 "LDR r2, [sp, #8]\n" 361 "ADD r1, sp, #12\n" // 0xc 362 "MOV r0, r4\n" 363 "BL sub_ff95f474\n" 364 364 "loc_ff95f278:\n" // 2 refs 365 " movr8, r0\n"366 " bloc_ff95f2a8\n"365 "MOV r8, r0\n" 366 "B loc_ff95f2a8\n" 367 367 "loc_ff95f280:\n" 368 " ldrr0, =0x1\n" // was: "mov ..., #1"369 " blsub_ff8b1510\n"370 " ldrr2, [sp, #8]\n"371 " addr1, sp, #12\n" // 0xc372 " movr0, r4\n"373 " blsub_ff95f540\n"374 " bloc_ff95f278\n"368 "LDR r0, =0x1\n" // was: "mov ..., #1" 369 "BL sub_ff8b1510\n" 370 "LDR r2, [sp, #8]\n" 371 "ADD r1, sp, #12\n" // 0xc 372 "MOV r0, r4\n" 373 "BL sub_ff95f540\n" 374 "B loc_ff95f278\n" 375 375 "loc_ff95f29c:\n" 376 " ldrr1, =0x00000429\n" // was: "[pc, #208] ; ff95f374"377 " ldrr0, =0xff95ef18\n" // was: "sub r0, pc, #912" *"SsCaptureSeq.c"378 " blsub_ff81eb14\n"376 "LDR r1, =0x00000429\n" // was: "[pc, #208] ; ff95f374" 377 "LDR r0, =0xff95ef18\n" // was: "sub r0, pc, #912" *"SsCaptureSeq.c" 378 "BL sub_ff81eb14\n" 379 379 "loc_ff95f2a8:\n" 380 " tstr8, #1\n" // 0x1381 " movner0, r8\n"382 " bneloc_ff95f32c\n"383 " ldrr0, =0xff95ed2c\n" // was: "[pc, #188] ; ff95f378"384 " ldrr1, =0x0\n" // was: "mov ..., #0"385 " blsub_ff8b14e0\n"386 " ldrhr0, [r7]\n"387 " subip, r0, #32768\n" // 0x8000388 " subsip, ip, #524\n" // 0x20c389 " bleqsub_ff89d470\n"390 " ldrr2, =0x000067c4\n" // was: "[pc, #164] ; ff95f37c"391 " ldrr0, [r4, #24]\n"392 " ldrr3, =0x4\n" // was: "mov ..., #4"393 " ldrr1, =0x45\n" // was: "mov ..., #69"394 " blsub_ff88c728\n"395 " ldrr0, =0x1\n" // was: "mov ..., #1"396 " blsub_ff929534\n"397 " strr0, [r4, #216]\n"398 " blsub_ff87ce94\n"399 " blsub_ff96009c\n"400 " ldrr5, =0x0000044c\n" // was: "[pc, #128] ; ff95f380"401 " ldrr2, =0x00003a98\n" // was: "[pc, #-988] ; ff95ef28"402 " ldrr3, =0xff95ef18\n" // was: "sub r3, pc, #1008" *"SsCaptureSeq.c"403 " ldrr1, =0x4\n" // was: "mov ..., #4"404 " strr5, [sp]\n"405 " blsub_ff87f4f0\n"406 " cmpr0, #0\n" // 0x0407 " ldrner0, =0xff95ef18\n" // was: "[pc, #104] ; ff95f384" **"SsCaptureSeq.c"408 " movner1, r5\n"409 " blnesub_ff81eb14\n"410 " ldrhr0, [sp, #12]\n"411 " strhr0, [r4, #20]\n"412 " ldrr0, =0x0\n" // was: "mov ..., #0"380 "TST r8, #1\n" // 0x1 381 "MOVNE r0, r8\n" 382 "BNE loc_ff95f32c\n" 383 "LDR r0, =0xff95ed2c\n" // was: "[pc, #188] ; ff95f378" 384 "LDR r1, =0x0\n" // was: "mov ..., #0" 385 "BL sub_ff8b14e0\n" 386 "LDRH r0, [r7]\n" 387 "SUB ip, r0, #32768\n" // 0x8000 388 "SUBS ip, ip, #524\n" // 0x20c 389 "BLEQ sub_ff89d470\n" 390 "LDR r2, =0x000067c4\n" // was: "[pc, #164] ; ff95f37c" 391 "LDR r0, [r4, #24]\n" 392 "LDR r3, =0x4\n" // was: "mov ..., #4" 393 "LDR r1, =0x45\n" // was: "mov ..., #69" 394 "BL sub_ff88c728\n" 395 "LDR r0, =0x1\n" // was: "mov ..., #1" 396 "BL sub_ff929534\n" 397 "STR r0, [r4, #216]\n" 398 "BL sub_ff87ce94\n" 399 "BL sub_ff96009c\n" 400 "LDR r5, =0x0000044c\n" // was: "[pc, #128] ; ff95f380" 401 "LDR r2, =0x00003a98\n" // was: "[pc, #-988] ; ff95ef28" 402 "LDR r3, =0xff95ef18\n" // was: "sub r3, pc, #1008" *"SsCaptureSeq.c" 403 "LDR r1, =0x4\n" // was: "mov ..., #4" 404 "STR r5, [sp]\n" 405 "BL sub_ff87f4f0\n" 406 "CMP r0, #0\n" // 0x0 407 "LDRNE r0, =0xff95ef18\n" // was: "[pc, #104] ; ff95f384" **"SsCaptureSeq.c" 408 "MOVNE r1, r5\n" 409 "BLNE sub_ff81eb14\n" 410 "LDRH r0, [sp, #12]\n" 411 "STRH r0, [r4, #20]\n" 412 "LDR r0, =0x0\n" // was: "mov ..., #0" 413 413 "loc_ff95f32c:\n" 414 " addsp, sp, #16\n" // 0x10415 " pop{r4, r5, r6, r7, r8, pc}\n"414 "ADD sp, sp, #16\n" // 0x10 415 "POP {r4, r5, r6, r7, r8, pc}\n" 416 416 */ 417 417 ); … … 420 420 void __attribute__((naked,noinline)) sub_ff87a714_my() { // FF87A6C4 421 421 asm volatile ( 422 " push{r4, r5, r6, lr}\n"423 " ldrr4, [r0, #12]\n"424 " ldrr6, =0x00039644\n" // was: "[pc, #-2132] ; ff879ed0"425 " ldrr0, [r4, #8]\n"426 " ldrr5, =0x0\n" // was: "mov ..., #0"427 " orrr0, r0, #1\n" // 0x1428 " strr0, [r4, #8]\n"429 " ldrr0, [r6, #36]\n"430 " cmpr0, #0\n" // 0x0431 " ldreqr0, =0x2\n" // was: "mov ..., #2"432 " bleqsub_FF876718\n"433 " blsub_FF87AC40\n"434 " ldrr0, [r6, #36]\n"435 " cmpr0, #0\n" // 0x0436 " bneloc_FF87A78C\n"437 " ldrr0, =0x0\n" // was: "mov ..., #0"438 " blsub_FF95FCE0\n"439 " ldrr0, =0x0\n" // was: "mov ..., #0"440 " blsub_FF95FE14\n"441 " movr0, r4\n"442 " blsub_FF87B014\n"443 " movr0, r4\n"444 " blsub_FF95DC80\n"445 " cmpr0, #0\n" // 0x0446 " beqloc_FF87A754\n"447 " blsub_FF95FD20\n"448 " blsub_FF95FE58\n"449 " blsub_FF95FEA8\n"450 " movr0, r4\n"451 " blsub_FF95DD64\n"452 " tstr0, #1\n" // 0x1453 " movner2, r4\n"454 " popne{r4, r5, r6, lr}\n"455 " ldrner1, =0x1\n" // was: "mov ..., #1"456 " bnesub_FF87851C\n"457 " bloc_FF87A768\n"422 "PUSH {r4, r5, r6, lr}\n" 423 "LDR r4, [r0, #12]\n" 424 "LDR r6, =0x00039644\n" // was: "[pc, #-2132] ; ff879ed0" 425 "LDR r0, [r4, #8]\n" 426 "LDR r5, =0x0\n" // was: "mov ..., #0" 427 "ORR r0, r0, #1\n" // 0x1 428 "STR r0, [r4, #8]\n" 429 "LDR r0, [r6, #36]\n" 430 "CMP r0, #0\n" // 0x0 431 "LDREQ r0, =0x2\n" // was: "mov ..., #2" 432 "BLEQ sub_FF876718\n" 433 "BL sub_FF87AC40\n" 434 "LDR r0, [r6, #36]\n" 435 "CMP r0, #0\n" // 0x0 436 "BNE loc_FF87A78C\n" 437 "LDR r0, =0x0\n" // was: "mov ..., #0" 438 "BL sub_FF95FCE0\n" 439 "LDR r0, =0x0\n" // was: "mov ..., #0" 440 "BL sub_FF95FE14\n" 441 "MOV r0, r4\n" 442 "BL sub_FF87B014\n" 443 "MOV r0, r4\n" 444 "BL sub_FF95DC80\n" 445 "CMP r0, #0\n" // 0x0 446 "BEQ loc_FF87A754\n" 447 "BL sub_FF95FD20\n" 448 "BL sub_FF95FE58\n" 449 "BL sub_FF95FEA8\n" 450 "MOV r0, r4\n" 451 "BL sub_FF95DD64\n" 452 "TST r0, #1\n" // 0x1 453 "MOVNE r2, r4\n" 454 "POPNE {r4, r5, r6, lr}\n" 455 "LDRNE r1, =0x1\n" // was: "mov ..., #1" 456 "BNE sub_FF87851C\n" 457 "B loc_FF87A768\n" 458 458 "loc_FF87A754:\n" //WAS ff87a7a4 459 " movr0, r4\n"460 " blsub_FF95DD00\n"461 " blsub_FF95FD20\n"462 " blsub_FF95FE58\n"463 " blsub_FF95FEA8\n"459 "MOV r0, r4\n" 460 "BL sub_FF95DD00\n" 461 "BL sub_FF95FD20\n" 462 "BL sub_FF95FE58\n" 463 "BL sub_FF95FEA8\n" 464 464 "loc_FF87A768:\n" 465 " movr0, r4\n"466 " blsub_FF879DD4\n"467 " movr0, r4\n"468 " blsub_FF95EF80\n"469 " blsub_FF95FABC\n"470 " movr0, r4\n"471 //" blsub_ff95f120\n"472 " blsub_ff95f120_my\n"473 " movr5, r0\n"474 " blcapt_seq_hook_raw_here\n" // added (sx210is)475 " bloc_FF87A79C\n"465 "MOV r0, r4\n" 466 "BL sub_FF879DD4\n" 467 "MOV r0, r4\n" 468 "BL sub_FF95EF80\n" 469 "BL sub_FF95FABC\n" 470 "MOV r0, r4\n" 471 //"BL sub_ff95f120\n" 472 "BL sub_ff95f120_my\n" 473 "MOV r5, r0\n" 474 "BL capt_seq_hook_raw_here\n" // added (sx210is) 475 "B loc_FF87A79C\n" 476 476 "loc_FF87A78C:\n" 477 " ldrr0, =0x00002b9c\n" // was: "[pc, #-2376] ; ff879e9c"478 " ldrr0, [r0, #16]\n"479 " cmpr0, #0\n" // 0x0480 " ldrner5, =0x1d\n" // was: "mov ..., #29"477 "LDR r0, =0x00002b9c\n" // was: "[pc, #-2376] ; ff879e9c" 478 "LDR r0, [r0, #16]\n" 479 "CMP r0, #0\n" // 0x0 480 "LDRNE r5, =0x1d\n" // was: "mov ..., #29" 481 481 "loc_FF87A79C:\n" 482 " blsub_FF87D7B4\n"483 " blsub_FF87D7FC\n"484 " blsub_FF87D83C\n"485 " movr2, r4\n"486 " ldrr1, =0x1\n" // was: "mov ..., #1"487 " movr0, r5\n"488 " blsub_FF87851C\n"489 " blsub_FF95F2D0\n"490 " cmpr0, #0\n" // 0x0491 " ldrner0, [r4, #8]\n"492 " orrner0, r0, #8192\n" // 0x2000493 " strner0, [r4, #8]\n"494 " pop{r4, r5, r6, pc}\n"482 "BL sub_FF87D7B4\n" 483 "BL sub_FF87D7FC\n" 484 "BL sub_FF87D83C\n" 485 "MOV r2, r4\n" 486 "LDR r1, =0x1\n" // was: "mov ..., #1" 487 "MOV r0, r5\n" 488 "BL sub_FF87851C\n" 489 "BL sub_FF95F2D0\n" 490 "CMP r0, #0\n" // 0x0 491 "LDRNE r0, [r4, #8]\n" 492 "ORRNE r0, r0, #8192\n" // 0x2000 493 "STRNE r0, [r4, #8]\n" 494 "POP {r4, r5, r6, pc}\n" 495 495 ); 496 496 } … … 500 500 void __attribute__((naked,noinline)) exp_drv_task() { // was FF8C25DC 501 501 asm volatile ( //FF8BAAD8 502 " push{r4, r5, r6, r7, r8, lr}\n"503 " subsp, sp, #32\n" // 0x20504 " ldrr8, =0x00000bb8\n" // was: "[pc, #-908] ; ff8ba7ac"505 " ldrr7, =0x00003f58\n" // was: "[pc, #2736] ; ff8bb5ec"506 " ldrr5, =0x00042ab0\n" // was: "[pc, #2764] ; ff8bb60c"507 " ldrr0, =0x0\n" // was: "mov ..., #0"508 " addr6, sp, #16\n" // 0x10509 " strr0, [sp, #12]\n"502 "PUSH {r4, r5, r6, r7, r8, lr}\n" 503 "SUB sp, sp, #32\n" // 0x20 504 "LDR r8, =0x00000bb8\n" // was: "[pc, #-908] ; ff8ba7ac" 505 "LDR r7, =0x00003f58\n" // was: "[pc, #2736] ; ff8bb5ec" 506 "LDR r5, =0x00042ab0\n" // was: "[pc, #2764] ; ff8bb60c" 507 "LDR r0, =0x0\n" // was: "mov ..., #0" 508 "ADD r6, sp, #16\n" // 0x10 509 "STR r0, [sp, #12]\n" 510 510 "loc_FF8BAAF8:\n" 511 " ldrr0, [r7, #32]\n"512 " ldrr2, =0x0\n" // was: "mov ..., #0"513 " addr1, sp, #28\n" // 0x1c514 " blsub_FF8396E4\n"515 " ldrr0, [sp, #12]\n"516 " cmpr0, #1\n" // 0x1517 " bneloc_FF8BAB44\n"518 " ldrr0, [sp, #28]\n"519 " ldrr0, [r0]\n"520 " cmpr0, #19\n" // 0x13521 " cmpner0, #20\n" // 0x14522 " cmpner0, #21\n" // 0x15523 " cmpner0, #22\n" // 0x16524 " beqloc_FF8BACA8\n"525 " cmpr0, #40\n" // 0x28526 " beqloc_FF8BAC30\n"527 " addr1, sp, #12\n" // 0xc528 " ldrr0, =0x0\n" // was: "mov ..., #0"529 " blsub_FF8BAA88\n"511 "LDR r0, [r7, #32]\n" 512 "LDR r2, =0x0\n" // was: "mov ..., #0" 513 "ADD r1, sp, #28\n" // 0x1c 514 "BL sub_FF8396E4\n" 515 "LDR r0, [sp, #12]\n" 516 "CMP r0, #1\n" // 0x1 517 "BNE loc_FF8BAB44\n" 518 "LDR r0, [sp, #28]\n" 519 "LDR r0, [r0]\n" 520 "CMP r0, #19\n" // 0x13 521 "CMPNE r0, #20\n" // 0x14 522 "CMPNE r0, #21\n" // 0x15 523 "CMPNE r0, #22\n" // 0x16 524 "BEQ loc_FF8BACA8\n" 525 "CMP r0, #40\n" // 0x28 526 "BEQ loc_FF8BAC30\n" 527 "ADD r1, sp, #12\n" // 0xc 528 "LDR r0, =0x0\n" // was: "mov ..., #0" 529 "BL sub_FF8BAA88\n" 530 530 "loc_FF8BAB44:\n" 531 " ldrr0, [sp, #28]\n"532 " ldrr1, [r0]\n"533 " cmpr1, #46\n" // 0x2e534 " bneloc_FF8BAB74\n"535 " ldrr0, [sp, #28]\n"536 " blsub_ff8bbe38\n"537 " ldrr0, [r7, #28]\n"538 " ldrr1, =0x1\n" // was: "mov ..., #1"539 " blsub_FF883F4C\n"540 " blsub_ff81eacc\n" // eventproc_export_ExitTask()541 " addsp, sp, #32\n" // 0x20542 " pop{r4, r5, r6, r7, r8, pc}\n"531 "LDR r0, [sp, #28]\n" 532 "LDR r1, [r0]\n" 533 "CMP r1, #46\n" // 0x2e 534 "BNE loc_FF8BAB74\n" 535 "LDR r0, [sp, #28]\n" 536 "BL sub_ff8bbe38\n" 537 "LDR r0, [r7, #28]\n" 538 "LDR r1, =0x1\n" // was: "mov ..., #1" 539 "BL sub_FF883F4C\n" 540 "BL sub_ff81eacc\n" // eventproc_export_ExitTask() 541 "ADD sp, sp, #32\n" // 0x20 542 "POP {r4, r5, r6, r7, r8, pc}\n" 543 543 "loc_FF8BAB74:\n" 544 " cmpr1, #45\n" // 0x2d545 " bneloc_FF8BAB90\n"546 " ldrr2, [r0, #140]!\n"547 " ldrr1, [r0, #4]\n"548 " movr0, r1\n"549 " blxr2\n"550 " bloc_FF8BB0D0\n"544 "CMP r1, #45\n" // 0x2d 545 "BNE loc_FF8BAB90\n" 546 "LDR r2, [r0, #140]!\n" 547 "LDR r1, [r0, #4]\n" 548 "MOV r0, r1\n" 549 "BLX r2\n" 550 "B loc_FF8BB0D0\n" 551 551 "loc_FF8BAB90:\n" 552 " cmpr1, #38\n" // 0x26553 " bneloc_FF8BABE0\n"554 " ldrr0, [r7, #28]\n"555 " ldrr1, =0x80\n" // was: "mov ..., #128"556 " blsub_FF883F80\n"557 " ldrr0, =0xFF8B71EC\n" // was: "[pc, #2580] ; ff8bb610"558 " ldrr1, =0x80\n" // was: "mov ..., #128"559 " blsub_FF952E50\n"560 " ldrr0, [r7, #28]\n"561 " movr2, r8\n"562 " ldrr1, =0x80\n" // was: "mov ..., #128"563 " blsub_FF883E8C\n"564 " tstr0, #1\n" // 0x1565 " ldrner1, =0x00000e5f\n" // was: "[pc, #2552] ; ff8bb614"566 " bneloc_FF8BAC9C\n"552 "CMP r1, #38\n" // 0x26 553 "BNE loc_FF8BABE0\n" 554 "LDR r0, [r7, #28]\n" 555 "LDR r1, =0x80\n" // was: "mov ..., #128" 556 "BL sub_FF883F80\n" 557 "LDR r0, =0xFF8B71EC\n" // was: "[pc, #2580] ; ff8bb610" 558 "LDR r1, =0x80\n" // was: "mov ..., #128" 559 "BL sub_FF952E50\n" 560 "LDR r0, [r7, #28]\n" 561 "MOV r2, r8\n" 562 "LDR r1, =0x80\n" // was: "mov ..., #128" 563 "BL sub_FF883E8C\n" 564 "TST r0, #1\n" // 0x1 565 "LDRNE r1, =0x00000e5f\n" // was: "[pc, #2552] ; ff8bb614" 566 "BNE loc_FF8BAC9C\n" 567 567 "loc_FF8BABCC:\n" // 5 refs 568 " ldrr1, [sp, #28]\n"569 " ldrr0, [r1, #144]\n"570 " ldrr1, [r1, #140]\n"571 " blxr1\n"572 " bloc_FF8BB0D0\n"568 "LDR r1, [sp, #28]\n" 569 "LDR r0, [r1, #144]\n" 570 "LDR r1, [r1, #140]\n" 571 "BLX r1\n" 572 "B loc_FF8BB0D0\n" 573 573 "loc_FF8BABE0:\n" 574 " cmpr1, #39\n" // 0x27575 " bneloc_FF8BAC28\n"576 " addr1, sp, #12\n" // 0xc577 " blsub_FF8BAA88\n"578 " ldrr0, [r7, #28]\n"579 " ldrr1, =0x100\n" // was: "mov ..., #256"580 " blsub_FF883F80\n"581 " ldrr0, =0xFF8B71FC\n" // was: "[pc, #2500] ; ff8bb618"582 " ldrr1, =0x100\n" // was: "mov ..., #256"583 " blsub_FF9530D8\n"584 " ldrr0, [r7, #28]\n"585 " movr2, r8\n"586 " ldrr1, =0x100\n" // was: "mov ..., #256"587 " blsub_FF883E8C\n"588 " tstr0, #1\n" // 0x1589 " beqloc_FF8BABCC\n"590 " ldrr1, =0x00000e69\n" // was: "[pc, #2468] ; ff8bb61c"591 " bloc_FF8BAC9C\n"574 "CMP r1, #39\n" // 0x27 575 "BNE loc_FF8BAC28\n" 576 "ADD r1, sp, #12\n" // 0xc 577 "BL sub_FF8BAA88\n" 578 "LDR r0, [r7, #28]\n" 579 "LDR r1, =0x100\n" // was: "mov ..., #256" 580 "BL sub_FF883F80\n" 581 "LDR r0, =0xFF8B71FC\n" // was: "[pc, #2500] ; ff8bb618" 582 "LDR r1, =0x100\n" // was: "mov ..., #256" 583 "BL sub_FF9530D8\n" 584 "LDR r0, [r7, #28]\n" 585 "MOV r2, r8\n" 586 "LDR r1, =0x100\n" // was: "mov ..., #256" 587 "BL sub_FF883E8C\n" 588 "TST r0, #1\n" // 0x1 589 "BEQ loc_FF8BABCC\n" 590 "LDR r1, =0x00000e69\n" // was: "[pc, #2468] ; ff8bb61c" 591 "B loc_FF8BAC9C\n" 592 592 "loc_FF8BAC28:\n" 593 " cmpr1, #40\n" // 0x28594 " bneloc_FF8BAC40\n"593 "CMP r1, #40\n" // 0x28 594 "BNE loc_FF8BAC40\n" 595 595 "loc_FF8BAC30:\n" 596 " ldrr0, [sp, #28]\n"597 " addr1, sp, #12\n" // 0xc598 " blsub_FF8BAA88\n"599 " bloc_FF8BABCC\n" //WAS ff8bac1c596 "LDR r0, [sp, #28]\n" 597 "ADD r1, sp, #12\n" // 0xc 598 "BL sub_FF8BAA88\n" 599 "B loc_FF8BABCC\n" //WAS ff8bac1c 600 600 "loc_FF8BAC40:\n" //WSA ff8bac90 601 " cmpr1, #43\n" // 0x2b602 " bneloc_FF8BAC58\n"603 " blsub_FF8AA368\n"604 " blsub_FF8AAF9C\n"605 " blsub_FF8AAAEC\n"606 " bloc_FF8BABCC\n"601 "CMP r1, #43\n" // 0x2b 602 "BNE loc_FF8BAC58\n" 603 "BL sub_FF8AA368\n" 604 "BL sub_FF8AAF9C\n" 605 "BL sub_FF8AAAEC\n" 606 "B loc_FF8BABCC\n" 607 607 "loc_FF8BAC58:\n" 608 " cmpr1, #44\n" // 0x2c609 " bneloc_FF8BACA8\n"610 " ldrr0, [r7, #28]\n"611 " ldrr1, =0x4\n" // was: "mov ..., #4"612 " blsub_FF883F80\n"613 " ldrr1, =0xFF8B721C\n" // was: "[pc, #-1252] ; ff8ba7e0"614 " ldrr0, =0xfffff400\n" // was: "[pc, #-1252] ; ff8ba7e4"615 " ldrr2, =0x4\n" // was: "mov ..., #4"616 " blsub_FF8A9DE4\n" //WAS ff8a9e34617 " blsub_FF8AA06C\n" //WAS ff8aa0bc618 " ldrr0, [r7, #28]\n"619 " movr2, r8\n"620 " ldrr1, =0x4\n" // was: "mov ..., #4"621 " blsub_FF883DA8\n" //WAS ff883df8622 " tstr0, #1\n" // 0x1623 " beqloc_FF8BABCC\n" //ff8bac1c624 " ldrr1, =0x00000e91\n" // was: "[pc, #2352] ; ff8bb620"608 "CMP r1, #44\n" // 0x2c 609 "BNE loc_FF8BACA8\n" 610 "LDR r0, [r7, #28]\n" 611 "LDR r1, =0x4\n" // was: "mov ..., #4" 612 "BL sub_FF883F80\n" 613 "LDR r1, =0xFF8B721C\n" // was: "[pc, #-1252] ; ff8ba7e0" 614 "LDR r0, =0xfffff400\n" // was: "[pc, #-1252] ; ff8ba7e4" 615 "LDR r2, =0x4\n" // was: "mov ..., #4" 616 "BL sub_FF8A9DE4\n" //WAS ff8a9e34 617 "BL sub_FF8AA06C\n" //WAS ff8aa0bc 618 "LDR r0, [r7, #28]\n" 619 "MOV r2, r8\n" 620 "LDR r1, =0x4\n" // was: "mov ..., #4" 621 "BL sub_FF883DA8\n" //WAS ff883df8 622 "TST r0, #1\n" // 0x1 623 "BEQ loc_FF8BABCC\n" //ff8bac1c 624 "LDR r1, =0x00000e91\n" // was: "[pc, #2352] ; ff8bb620" 625 625 "loc_FF8BAC9C:\n" // 2 refs WSA ff8bacec 626 " ldrr0, =0xff8b78ac\n" // was: "[pc, #-1344] ; ff8ba7b4" **"ExpDrv.c"627 " blsub_ff81eb14\n"628 " bloc_FF8BABCC\n"626 "LDR r0, =0xff8b78ac\n" // was: "[pc, #-1344] ; ff8ba7b4" **"ExpDrv.c" 627 "BL sub_ff81eb14\n" 628 "B loc_FF8BABCC\n" 629 629 "loc_FF8BACA8:\n" // 2 refs 630 " ldrr0, [sp, #28]\n"631 " ldrr4, =0x1\n" // was: "mov ..., #1"632 " ldrr1, [r0]\n"633 " cmpr1, #17\n" // 0x11634 " cmpner1, #18\n" // 0x12635 " bneloc_FF8BAD18\n"636 " ldrr1, [r0, #124]\n"637 " addr1, r1, r1, lsl #1\n"638 " addr1, r0, r1, lsl #2\n"639 " subr1, r1, #8\n" // 0x8640 " ldmr1, {r2, r3, r4}\n"641 " stmr6, {r2, r3, r4}\n"642 " blsub_FF8B93AC\n"643 " ldrr0, [sp, #28]\n"644 " ldrr1, [r0, #124]\n"645 " ldrr3, [r0, #140]\n"646 " ldrr2, [r0, #144]\n"647 " addr0, r0, #4\n" // 0x4648 " blxr3\n"649 " ldrr0, [sp, #28]\n"650 " blsub_FF8BC1AC\n"651 " ldrr0, [sp, #28]\n"652 " ldrr1, [r0, #124]\n"653 " ldrr3, [r0, #148]\n"654 " ldrr2, [r0, #152]\n"655 " addr0, r0, #4\n" // 0x4656 " blxr3\n"657 " bloc_FF8BB010\n"630 "LDR r0, [sp, #28]\n" 631 "LDR r4, =0x1\n" // was: "mov ..., #1" 632 "LDR r1, [r0]\n" 633 "CMP r1, #17\n" // 0x11 634 "CMPNE r1, #18\n" // 0x12 635 "BNE loc_FF8BAD18\n" 636 "LDR r1, [r0, #124]\n" 637 "ADD r1, r1, r1, lsl #1\n" 638 "ADD r1, r0, r1, lsl #2\n" 639 "SUB r1, r1, #8\n" // 0x8 640 "LDM r1, {r2, r3, r4}\n" 641 "STM r6, {r2, r3, r4}\n" 642 "BL sub_FF8B93AC\n" 643 "LDR r0, [sp, #28]\n" 644 "LDR r1, [r0, #124]\n" 645 "LDR r3, [r0, #140]\n" 646 "LDR r2, [r0, #144]\n" 647 "ADD r0, r0, #4\n" // 0x4 648 "BLX r3\n" 649 "LDR r0, [sp, #28]\n" 650 "BL sub_FF8BC1AC\n" 651 "LDR r0, [sp, #28]\n" 652 "LDR r1, [r0, #124]\n" 653 "LDR r3, [r0, #148]\n" 654 "LDR r2, [r0, #152]\n" 655 "ADD r0, r0, #4\n" // 0x4 656 "BLX r3\n" 657 "B loc_FF8BB010\n" 658 658 "loc_FF8BAD18:\n" 659 " cmpr1, #19\n" // 0x13660 " cmpner1, #20\n" // 0x14661 " cmpner1, #21\n" // 0x15662 " cmpner1, #22\n" // 0x16663 " bneloc_FF8BADD0\n"664 " addr3, sp, #12\n" // 0xc665 " movr2, sp\n"666 " addr1, sp, #16\n" // 0x10667 " blsub_FF8B9688\n"668 " cmpr0, #1\n" // 0x1669 " movr4, r0\n"670 " cmpner4, #5\n" // 0x5671 " bneloc_FF8BAD6C\n"672 " ldrr0, [sp, #28]\n"673 " movr2, r4\n"674 " ldrr1, [r0, #124]!\n"675 " ldrip, [r0, #16]!\n"676 " ldrr3, [r0, #4]\n"677 " movr0, sp\n"678 " blxip\n"679 " bloc_FF8BADA4\n"659 "CMP r1, #19\n" // 0x13 660 "CMPNE r1, #20\n" // 0x14 661 "CMPNE r1, #21\n" // 0x15 662 "CMPNE r1, #22\n" // 0x16 663 "BNE loc_FF8BADD0\n" 664 "ADD r3, sp, #12\n" // 0xc 665 "MOV r2, sp\n" 666 "ADD r1, sp, #16\n" // 0x10 667 "BL sub_FF8B9688\n" 668 "CMP r0, #1\n" // 0x1 669 "MOV r4, r0\n" 670 "CMPNE r4, #5\n" // 0x5 671 "BNE loc_FF8BAD6C\n" 672 "LDR r0, [sp, #28]\n" 673 "MOV r2, r4\n" 674 "LDR r1, [r0, #124]!\n" 675 "LDR ip, [r0, #16]!\n" 676 "LDR r3, [r0, #4]\n" 677 "MOV r0, sp\n" 678 "BLX ip\n" 679 "B loc_FF8BADA4\n" 680 680 "loc_FF8BAD6C:\n" 681 " ldrr0, [sp, #28]\n"682 " cmpr4, #2\n" // 0x2683 " ldrr3, [r0, #144]\n"684 " cmpner4, #6\n" // 0x6685 " bneloc_FF8BADB8\n"686 " ldrip, [r0, #140]\n"687 " movr0, sp\n"688 " movr2, r4\n"689 " ldrr1, =0x1\n" // was: "mov ..., #1"690 " blxip\n"691 " ldrr0, [sp, #28]\n"692 " movr2, sp\n"693 " addr1, sp, #16\n" // 0x10694 " blsub_FF8BA79C\n"681 "LDR r0, [sp, #28]\n" 682 "CMP r4, #2\n" // 0x2 683 "LDR r3, [r0, #144]\n" 684 "CMPNE r4, #6\n" // 0x6 685 "BNE loc_FF8BADB8\n" 686 "LDR ip, [r0, #140]\n" 687 "MOV r0, sp\n" 688 "MOV r2, r4\n" 689 "LDR r1, =0x1\n" // was: "mov ..., #1" 690 "BLX ip\n" 691 "LDR r0, [sp, #28]\n" 692 "MOV r2, sp\n" 693 "ADD r1, sp, #16\n" // 0x10 694 "BL sub_FF8BA79C\n" 695 695 "loc_FF8BADA4:\n" 696 " ldrr0, [sp, #28]\n"697 " ldrr2, [sp, #12]\n"698 " movr1, r4\n"699 " blsub_FF8BAA28\n"700 " bloc_FF8BB010\n"696 "LDR r0, [sp, #28]\n" 697 "LDR r2, [sp, #12]\n" 698 "MOV r1, r4\n" 699 "BL sub_FF8BAA28\n" 700 "B loc_FF8BB010\n" 701 701 "loc_FF8BADB8:\n" 702 " ldrr1, [r0, #124]\n"703 " ldrip, [r0, #140]\n"704 " addr0, r0, #4\n" // 0x4705 " movr2, r4\n"706 " blxip\n"707 " bloc_FF8BB010\n"702 "LDR r1, [r0, #124]\n" 703 "LDR ip, [r0, #140]\n" 704 "ADD r0, r0, #4\n" // 0x4 705 "MOV r2, r4\n" 706 "BLX ip\n" 707 "B loc_FF8BB010\n" 708 708 "loc_FF8BADD0:\n" 709 " cmpr1, #34\n" // 0x22710 " cmpner1, #35\n" // 0x23711 " bneloc_FF8BAE1C\n"712 " ldrr1, [r0, #124]\n"713 " addr1, r1, r1, lsl #1\n"714 " addr1, r0, r1, lsl #2\n"715 " subr1, r1, #8\n" // 0x8716 " ldmr1, {r2, r3, r4}\n"717 " stmr6, {r2, r3, r4}\n"718 " blsub_FF8B88FC\n"719 " ldrr0, [sp, #28]\n"720 " ldrr1, [r0, #124]\n"721 " ldrr3, [r0, #140]\n"722 " ldrr2, [r0, #144]\n"723 " addr0, r0, #4\n" // 0x4724 " blxr3\n"725 " ldrr0, [sp, #28]\n"726 " blsub_FF8B8BF0\n"727 " bloc_FF8BB010\n"709 "CMP r1, #34\n" // 0x22 710 "CMPNE r1, #35\n" // 0x23 711 "BNE loc_FF8BAE1C\n" 712 "LDR r1, [r0, #124]\n" 713 "ADD r1, r1, r1, lsl #1\n" 714 "ADD r1, r0, r1, lsl #2\n" 715 "SUB r1, r1, #8\n" // 0x8 716 "LDM r1, {r2, r3, r4}\n" 717 "STM r6, {r2, r3, r4}\n" 718 "BL sub_FF8B88FC\n" 719 "LDR r0, [sp, #28]\n" 720 "LDR r1, [r0, #124]\n" 721 "LDR r3, [r0, #140]\n" 722 "LDR r2, [r0, #144]\n" 723 "ADD r0, r0, #4\n" // 0x4 724 "BLX r3\n" 725 "LDR r0, [sp, #28]\n" 726 "BL sub_FF8B8BF0\n" 727 "B loc_FF8BB010\n" 728 728 "loc_FF8BAE1C:\n" 729 " addr1, r0, #4\n" // 0x4730 " ldmr1, {r2, r3, ip}\n"731 " stmr6, {r2, r3, ip}\n"732 " ldrr1, [r0]\n"733 " cmpr1, #37\n" // 0x25734 " addlspc, pc, r1, lsl #2\n"735 " bloc_FF8BAFF0\n"736 " bloc_FF8BAED0\n" // 0 jump table start737 " bloc_FF8BAED0\n"738 " bloc_FF8BAED8\n"739 " bloc_FF8BAEE0\n"740 " bloc_FF8BAEE0\n"741 " bloc_FF8BAEE0\n"742 " bloc_FF8BAED0\n"743 " bloc_FF8BAED8\n"744 " bloc_FF8BAEE0\n"745 " bloc_FF8BAEE0\n"746 " bloc_FF8BAEF8\n" // 10747 " bloc_FF8BAEF8\n"748 " bloc_FF8BAFE4\n"749 " bloc_FF8BAFEC\n"750 " bloc_FF8BAFEC\n"751 " bloc_FF8BAFEC\n"752 " bloc_FF8BAFEC\n"753 " bloc_FF8BAFF0\n"754 " bloc_FF8BAFF0\n"755 " bloc_FF8BAFF0\n"756 " bloc_FF8BAFF0\n" // 20757 " bloc_FF8BAFF0\n"758 " bloc_FF8BAFF0\n"759 " bloc_FF8BAEE8\n"760 " bloc_FF8BAEF0\n"761 " bloc_FF8BAEF0\n"762 " bloc_FF8BAF04\n"763 " bloc_FF8BAF04\n"764 " bloc_FF8BAF0C\n"765 " bloc_FF8BAF3C\n"766 " bloc_FF8BAF6C\n" // 30767 " bloc_FF8BAF9C\n"768 " bloc_FF8BAFCC\n"769 " bloc_FF8BAFCC\n"770 " bloc_FF8BAFF0\n"771 " bloc_FF8BAFF0\n"772 " bloc_FF8BAFD4\n"773 " bloc_FF8BAFDC\n" // 37729 "ADD r1, r0, #4\n" // 0x4 730 "LDM r1, {r2, r3, ip}\n" 731 "STM r6, {r2, r3, ip}\n" 732 "LDR r1, [r0]\n" 733 "CMP r1, #37\n" // 0x25 734 "ADDLS pc, pc, r1, lsl #2\n" 735 "B loc_FF8BAFF0\n" 736 "B loc_FF8BAED0\n" // 0 jump table start 737 "B loc_FF8BAED0\n" 738 "B loc_FF8BAED8\n" 739 "B loc_FF8BAEE0\n" 740 "B loc_FF8BAEE0\n" 741 "B loc_FF8BAEE0\n" 742 "B loc_FF8BAED0\n" 743 "B loc_FF8BAED8\n" 744 "B loc_FF8BAEE0\n" 745 "B loc_FF8BAEE0\n" 746 "B loc_FF8BAEF8\n" // 10 747 "B loc_FF8BAEF8\n" 748 "B loc_FF8BAFE4\n" 749 "B loc_FF8BAFEC\n" 750 "B loc_FF8BAFEC\n" 751 "B loc_FF8BAFEC\n" 752 "B loc_FF8BAFEC\n" 753 "B loc_FF8BAFF0\n" 754 "B loc_FF8BAFF0\n" 755 "B loc_FF8BAFF0\n" 756 "B loc_FF8BAFF0\n" // 20 757 "B loc_FF8BAFF0\n" 758 "B loc_FF8BAFF0\n" 759 "B loc_FF8BAEE8\n" 760 "B loc_FF8BAEF0\n" 761 "B loc_FF8BAEF0\n" 762 "B loc_FF8BAF04\n" 763 "B loc_FF8BAF04\n" 764 "B loc_FF8BAF0C\n" 765 "B loc_FF8BAF3C\n" 766 "B loc_FF8BAF6C\n" // 30 767 "B loc_FF8BAF9C\n" 768 "B loc_FF8BAFCC\n" 769 "B loc_FF8BAFCC\n" 770 "B loc_FF8BAFF0\n" 771 "B loc_FF8BAFF0\n" 772 "B loc_FF8BAFD4\n" 773 "B loc_FF8BAFDC\n" // 37 774 774 "loc_FF8BAED0:\n" // jump table entries 0, 1, 6 775 " blsub_FF8B7704\n"776 " bloc_FF8BAFF0\n"775 "BL sub_FF8B7704\n" 776 "B loc_FF8BAFF0\n" 777 777 "loc_FF8BAED8:\n" // jump table entries 2, 7 778 " blsub_FF8B7988\n"779 " bloc_FF8BAFF0\n"778 "BL sub_FF8B7988\n" 779 "B loc_FF8BAFF0\n" 780 780 "loc_FF8BAEE0:\n" // jump table entries 3, 4, 5, 8, 9 781 " blsub_FF8B7B90\n"782 " bloc_FF8BAFF0\n"781 "BL sub_FF8B7B90\n" 782 "B loc_FF8BAFF0\n" 783 783 "loc_FF8BAEE8:\n" // jump table entry 23 784 " blsub_FF8B7E08\n"785 " bloc_FF8BAFF0\n"784 "BL sub_FF8B7E08\n" 785 "B loc_FF8BAFF0\n" 786 786 "loc_FF8BAEF0:\n" // jump table entry 24, 25 787 " blsub_FF8B8000\n"788 " bloc_FF8BAFF0\n"787 "BL sub_FF8B8000\n" 788 "B loc_FF8BAFF0\n" 789 789 "loc_FF8BAEF8:\n" // jump table entries 10, 11 790 " blsub_FF8B82BC\n"791 " ldrr4, =0x0\n" // was: "mov ..., #0"792 " bloc_FF8BAFF0\n"790 "BL sub_FF8B82BC\n" 791 "LDR r4, =0x0\n" // was: "mov ..., #0" 792 "B loc_FF8BAFF0\n" 793 793 "loc_FF8BAF04:\n" // jump table entry 26, 27 794 " blsub_FF8B83FC\n"795 " bloc_FF8BAFF0\n"794 "BL sub_FF8B83FC\n" 795 "B loc_FF8BAFF0\n" 796 796 "loc_FF8BAF0C:\n" // jump table entry 28 797 " ldrhr1, [r0, #4]\n"798 " strhr1, [sp, #16]\n"799 " ldrhr1, [r5, #2]\n"800 " strhr1, [sp, #18]\n"801 " ldrhr1, [r5, #4]\n"802 " strhr1, [sp, #20]\n"803 " ldrhr1, [r5, #6]\n"804 " strhr1, [sp, #22]\n"805 " ldrhr1, [r0, #12]\n"806 " strhr1, [sp, #24]\n"807 " blsub_FF8BBE5C\n"808 " bloc_FF8BAFF0\n"797 "LDRH r1, [r0, #4]\n" 798 "STRH r1, [sp, #16]\n" 799 "LDRH r1, [r5, #2]\n" 800 "STRH r1, [sp, #18]\n" 801 "LDRH r1, [r5, #4]\n" 802 "STRH r1, [sp, #20]\n" 803 "LDRH r1, [r5, #6]\n" 804 "STRH r1, [sp, #22]\n" 805 "LDRH r1, [r0, #12]\n" 806 "STRH r1, [sp, #24]\n" 807 "BL sub_FF8BBE5C\n" 808 "B loc_FF8BAFF0\n" 809 809 "loc_FF8BAF3C:\n" // jump table entry 29 810 " ldrhr1, [r0, #4]\n"811 " strhr1, [sp, #16]\n"812 " ldrhr1, [r5, #2]\n"813 " strhr1, [sp, #18]\n"814 " ldrhr1, [r5, #4]\n"815 " strhr1, [sp, #20]\n"816 " ldrhr1, [r5, #6]\n"817 " strhr1, [sp, #22]\n"818 " ldrhr1, [r5, #8]\n"819 " strhr1, [sp, #24]\n"820 " blsub_FF8BBFC4\n"821 " bloc_FF8BAFF0\n"810 "LDRH r1, [r0, #4]\n" 811 "STRH r1, [sp, #16]\n" 812 "LDRH r1, [r5, #2]\n" 813 "STRH r1, [sp, #18]\n" 814 "LDRH r1, [r5, #4]\n" 815 "STRH r1, [sp, #20]\n" 816 "LDRH r1, [r5, #6]\n" 817 "STRH r1, [sp, #22]\n" 818 "LDRH r1, [r5, #8]\n" 819 "STRH r1, [sp, #24]\n" 820 "BL sub_FF8BBFC4\n" 821 "B loc_FF8BAFF0\n" 822 822 "loc_FF8BAF6C:\n" // jump table entry 30 823 " ldrhr1, [r5]\n"824 " strhr1, [sp, #16]\n"825 " ldrhr1, [r0, #6]\n"826 " strhr1, [sp, #18]\n"827 " ldrhr1, [r5, #4]\n"828 " strhr1, [sp, #20]\n"829 " ldrhr1, [r5, #6]\n"830 " strhr1, [sp, #22]\n"831 " ldrhr1, [r5, #8]\n"832 " strhr1, [sp, #24]\n"833 " blsub_FF8BC070\n"834 " bloc_FF8BAFF0\n"823 "LDRH r1, [r5]\n" 824 "STRH r1, [sp, #16]\n" 825 "LDRH r1, [r0, #6]\n" 826 "STRH r1, [sp, #18]\n" 827 "LDRH r1, [r5, #4]\n" 828 "STRH r1, [sp, #20]\n" 829 "LDRH r1, [r5, #6]\n" 830 "STRH r1, [sp, #22]\n" 831 "LDRH r1, [r5, #8]\n" 832 "STRH r1, [sp, #24]\n" 833 "BL sub_FF8BC070\n" 834 "B loc_FF8BAFF0\n" 835 835 "loc_FF8BAF9C:\n" // jump table entry 31 836 " ldrhr1, [r5]\n"837 " strhr1, [sp, #16]\n"838 " ldrhr1, [r5, #2]\n"839 " strhr1, [sp, #18]\n"840 " ldrhr1, [r5, #4]\n"841 " strhr1, [sp, #20]\n"842 " ldrhr1, [r5, #6]\n"843 " strhr1, [sp, #22]\n"844 " ldrhr1, [r0, #12]\n"845 " strhr1, [sp, #24]\n"846 " blsub_FF8BC110\n"847 " bloc_FF8BAFF0\n"836 "LDRH r1, [r5]\n" 837 "STRH r1, [sp, #16]\n" 838 "LDRH r1, [r5, #2]\n" 839 "STRH r1, [sp, #18]\n" 840 "LDRH r1, [r5, #4]\n" 841 "STRH r1, [sp, #20]\n" 842 "LDRH r1, [r5, #6]\n" 843 "STRH r1, [sp, #22]\n" 844 "LDRH r1, [r0, #12]\n" 845 "STRH r1, [sp, #24]\n" 846 "BL sub_FF8BC110\n" 847 "B loc_FF8BAFF0\n" 848 848 "loc_FF8BAFCC:\n" // jump table entries 32, 33 849 " blsub_FF8B8754\n"850 " bloc_FF8BAFF0\n"849 "BL sub_FF8B8754\n" 850 "B loc_FF8BAFF0\n" 851 851 "loc_FF8BAFD4:\n" // jump table entry 36 852 " blsub_FF8B8CF4\n"853 " bloc_FF8BAFF0\n"852 "BL sub_FF8B8CF4\n" 853 "B loc_FF8BAFF0\n" 854 854 "loc_FF8BAFDC:\n" // jump table entry 37 855 " blsub_FF8B8F30\n"856 " bloc_FF8BAFF0\n"855 "BL sub_FF8B8F30\n" 856 "B loc_FF8BAFF0\n" 857 857 "loc_FF8BAFE4:\n" // jump table entry 12 858 " blsub_FF8B90AC\n"859 " bloc_FF8BAFF0\n"858 "BL sub_FF8B90AC\n" 859 "B loc_FF8BAFF0\n" 860 860 "loc_FF8BAFEC:\n" // jump table entries 13, 14, 15, 16 861 " blsub_FF8B9248\n"861 "BL sub_FF8B9248\n" 862 862 "loc_FF8BAFF0:\n" // jump table entries 17, 18, 19, 20, 21, 22, 34, 35, default 863 " ldrr0, [sp, #28]\n"864 " ldrr1, [r0, #124]\n"865 " ldrr3, [r0, #140]\n"866 " ldrr2, [r0, #144]\n"867 " addr0, r0, #4\n" // 0x4868 " blxr3\n"869 " cmpr4, #1\n" // 0x1870 " bneloc_FF8BB058\n"863 "LDR r0, [sp, #28]\n" 864 "LDR r1, [r0, #124]\n" 865 "LDR r3, [r0, #140]\n" 866 "LDR r2, [r0, #144]\n" 867 "ADD r0, r0, #4\n" // 0x4 868 "BLX r3\n" 869 "CMP r4, #1\n" // 0x1 870 "BNE loc_FF8BB058\n" 871 871 "loc_FF8BB010:\n" // 4 refs 872 " ldrr0, [sp, #28]\n"873 " ldrr2, =0xc\n" // was: "mov ..., #12"874 " ldrr1, [r0, #124]\n"875 " addr1, r1, r1, lsl #1\n"876 " addr0, r0, r1, lsl #2\n"877 " subr4, r0, #8\n" // 0x8878 " ldrr0, =0x00042ab0\n" // was: "[pc, #1420] ; ff8bb60c"879 " addr1, sp, #16\n" // 0x10880 " blsub_FFB396B4\n"881 " ldrr0, =0x00042abc\n" // was: "[pc, #1432] ; ff8bb624"882 " ldrr2, =0xc\n" // was: "mov ..., #12"883 " addr1, sp, #16\n" // 0x10884 " blsub_FFB396B4\n"885 " ldrr0, =0x00042ac8\n" // was: "[pc, #1420] ; ff8bb628"886 " ldrr2, =0xc\n" // was: "mov ..., #12"887 " movr1, r4\n"888 " blsub_FFB396B4\n"889 " bloc_FF8BB0D0\n"872 "LDR r0, [sp, #28]\n" 873 "LDR r2, =0xc\n" // was: "mov ..., #12" 874 "LDR r1, [r0, #124]\n" 875 "ADD r1, r1, r1, lsl #1\n" 876 "ADD r0, r0, r1, lsl #2\n" 877 "SUB r4, r0, #8\n" // 0x8 878 "LDR r0, =0x00042ab0\n" // was: "[pc, #1420] ; ff8bb60c" 879 "ADD r1, sp, #16\n" // 0x10 880 "BL sub_FFB396B4\n" 881 "LDR r0, =0x00042abc\n" // was: "[pc, #1432] ; ff8bb624" 882 "LDR r2, =0xc\n" // was: "mov ..., #12" 883 "ADD r1, sp, #16\n" // 0x10 884 "BL sub_FFB396B4\n" 885 "LDR r0, =0x00042ac8\n" // was: "[pc, #1420] ; ff8bb628" 886 "LDR r2, =0xc\n" // was: "mov ..., #12" 887 "MOV r1, r4\n" 888 "BL sub_FFB396B4\n" 889 "B loc_FF8BB0D0\n" 890 890 "loc_FF8BB058:\n" 891 " ldrr0, [sp, #28]\n"892 " ldrr0, [r0]\n"893 " cmpr0, #11\n" // 0xb894 " bneloc_FF8BB0A0\n"895 " ldrr3, =0x0\n" // was: "mov ..., #0"896 " strr3, [sp]\n"897 " ldrr3, =0x1\n" // was: "mov ..., #1"898 " ldrr2, =0x1\n" // was: "mov ..., #1"899 " ldrr1, =0x1\n" // was: "mov ..., #1"900 " ldrr0, =0x0\n" // was: "mov ..., #0"901 " blsub_FF8B750C\n"902 " ldrr3, =0x0\n" // was: "mov ..., #0"903 " strr3, [sp]\n"904 " ldrr3, =0x1\n" // was: "mov ..., #1"905 " ldrr2, =0x1\n" // was: "mov ..., #1"906 " ldrr1, =0x1\n" // was: "mov ..., #1"907 " ldrr0, =0x0\n" // was: "mov ..., #0"908 " bloc_FF8BB0CC\n"891 "LDR r0, [sp, #28]\n" 892 "LDR r0, [r0]\n" 893 "CMP r0, #11\n" // 0xb 894 "BNE loc_FF8BB0A0\n" 895 "LDR r3, =0x0\n" // was: "mov ..., #0" 896 "STR r3, [sp]\n" 897 "LDR r3, =0x1\n" // was: "mov ..., #1" 898 "LDR r2, =0x1\n" // was: "mov ..., #1" 899 "LDR r1, =0x1\n" // was: "mov ..., #1" 900 "LDR r0, =0x0\n" // was: "mov ..., #0" 901 "BL sub_FF8B750C\n" 902 "LDR r3, =0x0\n" // was: "mov ..., #0" 903 "STR r3, [sp]\n" 904 "LDR r3, =0x1\n" // was: "mov ..., #1" 905 "LDR r2, =0x1\n" // was: "mov ..., #1" 906 "LDR r1, =0x1\n" // was: "mov ..., #1" 907 "LDR r0, =0x0\n" // was: "mov ..., #0" 908 "B loc_FF8BB0CC\n" 909 909 "loc_FF8BB0A0:\n" 910 " ldrr3, =0x1\n" // was: "mov ..., #1"911 " ldrr2, =0x1\n" // was: "mov ..., #1"912 " ldrr1, =0x1\n" // was: "mov ..., #1"913 " ldrr0, =0x1\n" // was: "mov ..., #1"914 " strr3, [sp]\n"915 " blsub_FF8B750C\n"916 " ldrr3, =0x1\n" // was: "mov ..., #1"917 " ldrr2, =0x1\n" // was: "mov ..., #1"918 " ldrr1, =0x1\n" // was: "mov ..., #1"919 " ldrr0, =0x1\n" // was: "mov ..., #1"920 " strr3, [sp]\n"910 "LDR r3, =0x1\n" // was: "mov ..., #1" 911 "LDR r2, =0x1\n" // was: "mov ..., #1" 912 "LDR r1, =0x1\n" // was: "mov ..., #1" 913 "LDR r0, =0x1\n" // was: "mov ..., #1" 914 "STR r3, [sp]\n" 915 "BL sub_FF8B750C\n" 916 "LDR r3, =0x1\n" // was: "mov ..., #1" 917 "LDR r2, =0x1\n" // was: "mov ..., #1" 918 "LDR r1, =0x1\n" // was: "mov ..., #1" 919 "LDR r0, =0x1\n" // was: "mov ..., #1" 920 "STR r3, [sp]\n" 921 921 "loc_FF8BB0CC:\n" 922 " blsub_FF8B764C\n"922 "BL sub_FF8B764C\n" 923 923 "loc_FF8BB0D0:\n" // 3 refs 924 " ldrr0, [sp, #28]\n"925 " blsub_FF8BBDE8\n"926 " bloc_FF8BAAF8\n"924 "LDR r0, [sp, #28]\n" 925 "BL sub_FF8BBDE8\n" 926 "B loc_FF8BAAF8\n" 927 927 ); 928 928 } -
trunk/platform/ixus130_sd1400/sub/100a/led.c
r1985 r1993 1 /* note, this is unused debug code, left in case someone finds it useful*/ 1 2 #include "led.h" 2 3 -
trunk/platform/ixus130_sd1400/sub/100a/movie_rec.c
r1985 r1993 17 17 void __attribute__((naked,noinline)) movie_record_task() { // was FF96BD30 18 18 asm volatile ( 19 //"b sub_ff95a5f4\n" 20 "push {r2, r3, r4, r5, r6, r7, r8, lr}\n" 21 "ldr r8, =0x000004b3\n" // was: [pc, #756] ; ff95a838: (000004b3) 22 "ldr r7, =0x00002710\n" // was: [pc, #-2500] ; ff959b84: (00002710) 23 "ldr r4, =0x000063f8\n" // was: [pc, #-4008] ; ff9595a4: (000063f8) 24 "ldr r6, =0x0\n" // was: "mov ..., #0" 25 "ldr r5, =0x1\n" // was: "mov ..., #1" 19 "PUSH {r2, r3, r4, r5, r6, r7, r8, lr}\n" 20 "LDR r8, =0x000004b3\n" // was: [pc, #756] ; ff95a838: (000004b3) 21 "LDR r7, =0x00002710\n" // was: [pc, #-2500] ; ff959b84: (00002710) 22 "LDR r4, =0x000063f8\n" // was: [pc, #-4008] ; ff9595a4: (000063f8) 23 "LDR r6, =0x0\n" // was: "mov ..., #0" 24 "LDR r5, =0x1\n" // was: "mov ..., #1" 26 25 "loc_FF95A550:\n" 27 " ldrr0, [r4, #24]\n"28 " ldrr2, =0x0\n" // was: "mov ..., #0"29 " addr1, sp, #4\n" // 0x430 " blsub_ff8396e4\n"31 " ldrr0, [r4, #32]\n"32 " cmpr0, #0\n" // 0x033 " bneloc_FF95A620\n"34 " ldrr0, [sp, #4]\n"35 " ldrr1, [r0]\n"36 " subr1, r1, #2\n" // 0x237 " cmpr1, #9\n" // 0x938 " addlspc, pc, r1, lsl #2\n"39 " bloc_FF95A620\n"40 " bloc_FF95A5D4\n" // 0 jump table start41 " bloc_FF95A5F4\n"42 " bloc_FF95A604\n"43 " bloc_FF95A60C\n"44 " bloc_FF95A5DC\n"45 " bloc_FF95A614\n"46 " bloc_FF95A5E4\n"47 " bloc_FF95A620\n"48 " bloc_FF95A61C\n"49 " bloc_FF95A5AC\n" // 926 "LDR r0, [r4, #24]\n" 27 "LDR r2, =0x0\n" // was: "mov ..., #0" 28 "ADD r1, sp, #4\n" // 0x4 29 "BL sub_ff8396e4\n" 30 "LDR r0, [r4, #32]\n" 31 "CMP r0, #0\n" // 0x0 32 "BNE loc_FF95A620\n" 33 "LDR r0, [sp, #4]\n" 34 "LDR r1, [r0]\n" 35 "SUB r1, r1, #2\n" // 0x2 36 "CMP r1, #9\n" // 0x9 37 "ADDLS pc, pc, r1, lsl #2\n" 38 "B loc_FF95A620\n" 39 "B loc_FF95A5D4\n" // 0 jump table start 40 "B loc_FF95A5F4\n" 41 "B loc_FF95A604\n" 42 "B loc_FF95A60C\n" 43 "B loc_FF95A5DC\n" 44 "B loc_FF95A614\n" 45 "B loc_FF95A5E4\n" 46 "B loc_FF95A620\n" 47 "B loc_FF95A61C\n" 48 "B loc_FF95A5AC\n" // 9 50 49 "loc_FF95A5AC:\n" // jump table entry 9 51 " ldrr0, =0xFF95A24C\n" // was: "sub r0, pc, #872"52 " strr6, [r4, #52]\n"53 " strr0, [r4, #164]\n"50 "LDR r0, =0xFF95A24C\n" // was: "sub r0, pc, #872" 51 "STR r6, [r4, #52]\n" 52 "STR r0, [r4, #164]\n" 54 53 55 54 // Ixus300 has this, referenced in case 4: (what does it do?) … … 58 57 //"STR R0, [R4,#0xAC]\n" 59 58 60 " ldrr0, =0xFF959854\n" // was: [pc, #-2596] ; ff959ba4: (0009668c)61 " ldrr2, =0xFF959770\n" // was: [pc, #640] ; ff95a840: (ff959854)62 " ldrr1, =0x0009668c\n" // was: [pc, #632] ; ff95a83c: (ff959770)63 " strr6, [r4, #0x24]\n" // 0x2464 " blsub_ff85021c\n"65 " strr5, [r4, #56]\n" // 0x3866 " bloc_FF95A620\n"59 "LDR r0, =0xFF959854\n" // was: [pc, #-2596] ; ff959ba4: (0009668c) 60 "LDR r2, =0xFF959770\n" // was: [pc, #640] ; ff95a840: (ff959854) 61 "LDR r1, =0x0009668c\n" // was: [pc, #632] ; ff95a83c: (ff959770) 62 "STR r6, [r4, #0x24]\n" // 0x24 63 "BL sub_ff85021c\n" 64 "STR r5, [r4, #56]\n" // 0x38 65 "B loc_FF95A620\n" 67 66 "loc_FF95A5D4:\n" // jump table entry 0 68 " blunlock_optical_zoom\n" // added (disabled in camera.h, crashes)69 " blsub_FF95A354\n"70 " bloc_FF95A620\n"67 "BL unlock_optical_zoom\n" // added (disabled in camera.h, crashes) 68 "BL sub_FF95A354\n" 69 "B loc_FF95A620\n" 71 70 "loc_FF95A5DC:\n" // jump table entry 4 72 71 … … 75 74 //"BLX R1\n" 76 75 77 " blsub_FF959ECC\n"78 //" blsub_ff959f88_my\n"79 " bloc_FF95A620\n"76 "BL sub_FF959ECC\n" 77 //"BL sub_ff959f88_my\n" 78 "B loc_FF95A620\n" 80 79 "loc_FF95A5E4:\n" // jump table entry 6 81 " ldrr1, [r0, #24]\n"82 " ldrr0, [r0, #4]\n"83 " blsub_FFA8CB84\n"84 " bloc_FF95A620\n"80 "LDR r1, [r0, #24]\n" 81 "LDR r0, [r0, #4]\n" 82 "BL sub_FFA8CB84\n" 83 "B loc_FF95A620\n" 85 84 "loc_FF95A5F4:\n" // jump table entry 1 86 " ldrr0, [r4, #56]\n"87 " cmpr0, #5\n" // 0x588 " strner5, [r4, #40]\n"89 " bloc_FF95A620\n"85 "LDR r0, [r4, #56]\n" 86 "CMP r0, #5\n" // 0x5 87 "STRNE r5, [r4, #40]\n" 88 "B loc_FF95A620\n" 90 89 "loc_FF95A604:\n" // jump table entry 2 91 " blsub_FF959BC8\n"92 " bloc_FF95A620\n"90 "BL sub_FF959BC8\n" 91 "B loc_FF95A620\n" 93 92 "loc_FF95A60C:\n" // jump table entry 3 94 " blsub_FF9598A0\n"95 " bloc_FF95A620\n"93 "BL sub_FF9598A0\n" 94 "B loc_FF95A620\n" 96 95 "loc_FF95A614:\n" // jump table entry 5 97 " blsub_FF9596FC\n"98 " bloc_FF95A620\n"96 "BL sub_FF9596FC\n" 97 "B loc_FF95A620\n" 99 98 "loc_FF95A61C:\n" // jump table entry 8 100 " blsub_FF95A788\n"99 "BL sub_FF95A788\n" 101 100 "loc_FF95A620:\n" // jump table entry 7, default 102 " ldrr1, [sp, #4]\n"103 " ldrr3, =0xFF959590\n" // was [pc, #-2684] ; ff959bb0: (ff959590) **"MovieRecorder.c"104 " strr6, [r1]\n"105 " strr8, [sp]\n"106 " ldrr0, [r4, #28]\n"107 " movr2, r7\n"108 " blsub_FF83A038\n"109 " bloc_FF95A550\n"101 "LDR r1, [sp, #4]\n" 102 "LDR r3, =0xFF959590\n" // was [pc, #-2684] ; ff959bb0: (ff959590) **"MovieRecorder.c" 103 "STR r6, [r1]\n" 104 "STR r8, [sp]\n" 105 "LDR r0, [r4, #28]\n" 106 "MOV r2, r7\n" 107 "BL sub_FF83A038\n" 108 "B loc_FF95A550\n" 110 109 ); 111 110 } … … 113 112 void __attribute__((naked,noinline)) sub_ff959f88_my() { // was FF96BA00 114 113 asm volatile ( 115 " push{r4, r5, r6, r7, r8, lr}\n"116 " subsp, sp, #64\n" // 0x40117 " ldrr7, =0x0\n" // was: "mov ..., #0"118 " ldrr6, =0x000063f8\n" // was: "[pc, #-2376] ; ff959654"119 " movr4, r0\n"120 " strr7, [sp, #48]\n"121 " strr7, [sp, #40]\n"122 " ldrr0, [r6, #56]\n"123 " ldrr8, =0x4\n" // was: "mov ..., #4"124 " cmpr0, #3\n" // 0x3125 " streqr8, [r6, #56]\n"126 " ldrr0, [r6, #164]\n"127 " blxr0\n"128 " ldrr0, [r6, #56]\n"129 " cmpr0, #4\n" // 0x4130 " bneloc_ff95a0f8\n"131 " addr3, sp, #40\n" // 0x28132 " addr2, sp, #44\n" // 0x2c133 " addr1, sp, #48\n" // 0x30134 " addr0, sp, #52\n" // 0x34135 " blsub_ffa8ccc4\n"136 " cmpr0, #0\n" // 0x0137 " ldrr5, =0x1\n" // was: "mov ..., #1"138 " bneloc_ff95a004\n"139 " ldrr1, [r6, #40]\n"140 " cmpr1, #1\n" // 0x1141 " bneloc_ff95a100\n"142 " ldrr1, [r6, #92]\n"143 " ldrr2, [r6, #60]\n"144 " cmpr1, r2\n"145 " bccloc_ff95a100\n"114 "PUSH {r4, r5, r6, r7, r8, lr}\n" 115 "SUB sp, sp, #64\n" // 0x40 116 "LDR r7, =0x0\n" // was: "mov ..., #0" 117 "LDR r6, =0x000063f8\n" // was: "[pc, #-2376] ; ff959654" 118 "MOV r4, r0\n" 119 "STR r7, [sp, #48]\n" 120 "STR r7, [sp, #40]\n" 121 "LDR r0, [r6, #56]\n" 122 "LDR r8, =0x4\n" // was: "mov ..., #4" 123 "CMP r0, #3\n" // 0x3 124 "STREQ r8, [r6, #56]\n" 125 "LDR r0, [r6, #164]\n" 126 "BLX r0\n" 127 "LDR r0, [r6, #56]\n" 128 "CMP r0, #4\n" // 0x4 129 "BNE loc_ff95a0f8\n" 130 "ADD r3, sp, #40\n" // 0x28 131 "ADD r2, sp, #44\n" // 0x2c 132 "ADD r1, sp, #48\n" // 0x30 133 "ADD r0, sp, #52\n" // 0x34 134 "BL sub_ffa8ccc4\n" 135 "CMP r0, #0\n" // 0x0 136 "LDR r5, =0x1\n" // was: "mov ..., #1" 137 "BNE loc_ff95a004\n" 138 "LDR r1, [r6, #40]\n" 139 "CMP r1, #1\n" // 0x1 140 "BNE loc_ff95a100\n" 141 "LDR r1, [r6, #92]\n" 142 "LDR r2, [r6, #60]\n" 143 "CMP r1, r2\n" 144 "BCC loc_ff95a100\n" 146 145 "loc_ff95a004:\n" 147 " cmpr0, #-2147483647\n" // 0x80000001148 " streqr8, [r6, #96]\n"149 " beqloc_ff95a03c\n"150 " cmpr0, #-2147483645\n" // 0x80000003151 " streqr5, [r6, #96]\n"152 " beqloc_ff95a03c\n"153 " cmpr0, #-2147483643\n" // 0x80000005154 " ldreqr0, =0x2\n" // was: "mov ..., #2"155 " beqloc_ff95a038\n"156 " cmpr0, #-2147483641\n" // 0x80000007157 " strner7, [r6, #96]\n"158 " bneloc_ff95a03c\n"159 " ldrr0, =0x3\n" // was: "mov ..., #3"146 "CMP r0, #-2147483647\n" // 0x80000001 147 "STREQ r8, [r6, #96]\n" 148 "BEQ loc_ff95a03c\n" 149 "CMP r0, #-2147483645\n" // 0x80000003 150 "STREQ r5, [r6, #96]\n" 151 "BEQ loc_ff95a03c\n" 152 "CMP r0, #-2147483643\n" // 0x80000005 153 "LDREQ r0, =0x2\n" // was: "mov ..., #2" 154 "BEQ loc_ff95a038\n" 155 "CMP r0, #-2147483641\n" // 0x80000007 156 "STRNE r7, [r6, #96]\n" 157 "BNE loc_ff95a03c\n" 158 "LDR r0, =0x3\n" // was: "mov ..., #3" 160 159 "loc_ff95a038:\n" 161 " strr0, [r6, #96]\n"160 "STR r0, [r6, #96]\n" 162 161 "loc_ff95a03c:\n" // 3 refs 163 " ldrr0, =0x000966c0\n" // was: "[pc, #-2512] ; ff959674"164 " ldrr0, [r0, #8]\n"165 " cmpr0, #0\n" // 0x0166 " beqloc_ff95a054\n"167 " blsub_ff861870\n"168 " bloc_ff95a058\n"162 "LDR r0, =0x000966c0\n" // was: "[pc, #-2512] ; ff959674" 163 "LDR r0, [r0, #8]\n" 164 "CMP r0, #0\n" // 0x0 165 "BEQ loc_ff95a054\n" 166 "BL sub_ff861870\n" 167 "B loc_ff95a058\n" 169 168 "loc_ff95a054:\n" 170 " blsub_ff9597ac\n"169 "BL sub_ff9597ac\n" 171 170 "loc_ff95a058:\n" 172 " ldrr0, [r4, #28]\n"173 " addr4, sp, #24\n" // 0x18174 " addr3, sp, #56\n" // 0x38175 " mvnr2, #1\n" // 0x1176 " ldrr1, =0x0\n" // was: "mov ..., #0"177 " stmr4, {r0, r1, r2, r3}\n"178 " ldrr2, [r6, #116]\n"179 " ldrr3, [r6, #120]\n"180 " addr1, sp, #60\n" // 0x3c181 " addr4, sp, #8\n" // 0x8182 " ldrr0, =0x0\n" // was: "mov ..., #0"183 " stmr4, {r0, r1, r2, r3}\n"184 " ldrr3, =0x0\n" // was: "mov ..., #0"185 " ldrr2, =0x40\n" // was: "mov ..., #64"186 " strdr2, [sp]\n"187 " ldrr3, =0x000966d8\n" // was: "[pc, #2112] ; ff95a8dc"188 " ldrr2, =0x0\n" // was: "mov ..., #0"189 " ldrr1, =0x0\n" // was: "mov ..., #0"190 " blsub_ffa4b708\n"191 " ldrr0, [r6, #16]\n"192 " ldrr1, [r6, #84]\n"193 " blsub_ff839b00\n" // eventproc_export_TakeSemaphore()194 " cmpr0, #9\n" // 0x9195 " bneloc_ff95a0c8\n"171 "LDR r0, [r4, #28]\n" 172 "ADD r4, sp, #24\n" // 0x18 173 "ADD r3, sp, #56\n" // 0x38 174 "MVN r2, #1\n" // 0x1 175 "LDR r1, =0x0\n" // was: "mov ..., #0" 176 "STM r4, {r0, r1, r2, r3}\n" 177 "LDR r2, [r6, #116]\n" 178 "LDR r3, [r6, #120]\n" 179 "ADD r1, sp, #60\n" // 0x3c 180 "ADD r4, sp, #8\n" // 0x8 181 "LDR r0, =0x0\n" // was: "mov ..., #0" 182 "STM r4, {r0, r1, r2, r3}\n" 183 "LDR r3, =0x0\n" // was: "mov ..., #0" 184 "LDR r2, =0x40\n" // was: "mov ..., #64" 185 "STRD r2, [sp]\n" 186 "LDR r3, =0x000966d8\n" // was: "[pc, #2112] ; ff95a8dc" 187 "LDR r2, =0x0\n" // was: "mov ..., #0" 188 "LDR r1, =0x0\n" // was: "mov ..., #0" 189 "BL sub_ffa4b708\n" 190 "LDR r0, [r6, #16]\n" 191 "LDR r1, [r6, #84]\n" 192 "BL sub_ff839b00\n" // eventproc_export_TakeSemaphore() 193 "CMP r0, #9\n" // 0x9 194 "BNE loc_ff95a0c8\n" 196 195 "loc_ff95a0b8:\n" 197 " blsub_ffa8d198\n"198 " ldrr0, =0x1\n" // was: "mov ..., #1"199 " strr5, [r6, #56]\n"200 " bloc_ff95a228\n"196 "BL sub_ffa8d198\n" 197 "LDR r0, =0x1\n" // was: "mov ..., #1" 198 "STR r5, [r6, #56]\n" 199 "B loc_ff95a228\n" 201 200 "loc_ff95a0c8:\n" 202 " ldrr0, [sp, #56]\n"203 " cmpr0, #0\n" // 0x0204 " beqloc_ff95a0e4\n"201 "LDR r0, [sp, #56]\n" 202 "CMP r0, #0\n" // 0x0 203 "BEQ loc_ff95a0e4\n" 205 204 "loc_ff95a0d4:\n" 206 " blsub_ffa8d198\n"207 " ldrr0, =0x1\n" // was: "mov ..., #1"208 " strr5, [r6, #56]\n"209 " bloc_ff95a254\n"205 "BL sub_ffa8d198\n" 206 "LDR r0, =0x1\n" // was: "mov ..., #1" 207 "STR r5, [r6, #56]\n" 208 "B loc_ff95a254\n" 210 209 "loc_ff95a0e4:\n" 211 " ldrr0, =0x1\n" // was: "mov ..., #1"212 " blsub_ffa4b7ac\n"213 " blsub_ffa4b808\n"214 " ldrr0, =0x5\n" // was: "mov ..., #5"215 " strr0, [r6, #56]\n"210 "LDR r0, =0x1\n" // was: "mov ..., #1" 211 "BL sub_ffa4b7ac\n" 212 "BL sub_ffa4b808\n" 213 "LDR r0, =0x5\n" // was: "mov ..., #5" 214 "STR r0, [r6, #56]\n" 216 215 "loc_ff95a0f8:\n" // 3 refs 217 " addsp, sp, #64\n" // 0x40218 " pop{r4, r5, r6, r7, r8, pc}\n"216 "ADD sp, sp, #64\n" // 0x40 217 "POP {r4, r5, r6, r7, r8, pc}\n" 219 218 "loc_ff95a100:\n" // 2 refs 220 " ldrip, [sp, #48]\n"221 " cmpip, #0\n" // 0x0222 " beqloc_ff95a2b0\n"223 " strr5, [r6, #44]\n"224 " ldrr0, [r6, #92]\n"225 " ldrr8, [r4, #12]\n"226 " cmpr0, #0\n" // 0x0227 " ldrnelr, [sp, #52]\n"228 " bneloc_ff95a1ac\n"229 " ldrr0, [r4, #28]\n"230 " ldrr1, [r4, #32]\n"231 " addr3, sp, #56\n" // 0x38232 " mvnr2, #0\n" // 0x0233 " addlr, sp, #24\n" // 0x18234 " stmlr, {r0, r1, r2, r3}\n"235 " ldrr0, [sp, #40]\n"236 " ldrr2, [r6, #116]\n"237 " ldrr3, [r6, #120]\n"238 " addr1, sp, #60\n" // 0x3c239 " addlr, sp, #8\n" // 0x8240 " stmlr, {r0, r1, r2, r3}\n"241 " ldrr3, [sp, #44]\n"242 " strip, [sp]\n"243 " strr3, [sp, #4]\n"244 " ldmibr4, {r0, r1}\n"245 " ldrr3, [sp, #52]\n"246 " movr2, r8\n"247 " blsub_ffa4b708\n"248 " ldrr0, [r6, #16]\n"249 " ldrr1, [r6, #84]\n"250 " blsub_ff839b00\n" // eventproc_export_TakeSemaphore()251 " cmpr0, #9\n" // 0x9252 " beqloc_ff95a0b8\n"253 " ldrr0, [sp, #56]\n"254 " cmpr0, #0\n" // 0x0255 " bneloc_ff95a0d4\n"256 " ldrr0, =0x1\n" // was: "mov ..., #1"257 " blsub_ffa4b7ac\n"258 " ldrr0, [sp, #60]\n"259 " ldrr1, [sp, #52]\n"260 " addlr, r1, r0\n"261 " ldrr1, [sp, #48]\n"262 " subip, r1, r0\n"219 "LDR ip, [sp, #48]\n" 220 "CMP ip, #0\n" // 0x0 221 "BEQ loc_ff95a2b0\n" 222 "STR r5, [r6, #44]\n" 223 "LDR r0, [r6, #92]\n" 224 "LDR r8, [r4, #12]\n" 225 "CMP r0, #0\n" // 0x0 226 "LDRNE lr, [sp, #52]\n" 227 "BNE loc_ff95a1ac\n" 228 "LDR r0, [r4, #28]\n" 229 "LDR r1, [r4, #32]\n" 230 "ADD r3, sp, #56\n" // 0x38 231 "MVN r2, #0\n" // 0x0 232 "ADD lr, sp, #24\n" // 0x18 233 "STM lr, {r0, r1, r2, r3}\n" 234 "LDR r0, [sp, #40]\n" 235 "LDR r2, [r6, #116]\n" 236 "LDR r3, [r6, #120]\n" 237 "ADD r1, sp, #60\n" // 0x3c 238 "ADD lr, sp, #8\n" // 0x8 239 "STM lr, {r0, r1, r2, r3}\n" 240 "LDR r3, [sp, #44]\n" 241 "STR ip, [sp]\n" 242 "STR r3, [sp, #4]\n" 243 "LDMIB r4, {r0, r1}\n" 244 "LDR r3, [sp, #52]\n" 245 "MOV r2, r8\n" 246 "BL sub_ffa4b708\n" 247 "LDR r0, [r6, #16]\n" 248 "LDR r1, [r6, #84]\n" 249 "BL sub_ff839b00\n" // eventproc_export_TakeSemaphore() 250 "CMP r0, #9\n" // 0x9 251 "BEQ loc_ff95a0b8\n" 252 "LDR r0, [sp, #56]\n" 253 "CMP r0, #0\n" // 0x0 254 "BNE loc_ff95a0d4\n" 255 "LDR r0, =0x1\n" // was: "mov ..., #1" 256 "BL sub_ffa4b7ac\n" 257 "LDR r0, [sp, #60]\n" 258 "LDR r1, [sp, #52]\n" 259 "ADD lr, r1, r0\n" 260 "LDR r1, [sp, #48]\n" 261 "SUB ip, r1, r0\n" 263 262 "loc_ff95a1ac:\n" 264 " ldrr2, [r6, #88]\n"265 " ldrr0, [r4, #28]\n"266 " ldrr1, [r4, #32]\n"267 " addr3, sp, #56\n" // 0x38268 " strr0, [sp, #24]\n"269 " strr1, [sp, #28]\n"270 " strr3, [sp, #36]\n"271 " strr2, [sp, #32]\n"272 " ldrr2, [r6, #116]\n"273 " ldrr3, [r6, #120]\n"274 " ldrr0, [sp, #40]\n"275 " strr3, [sp, #20]\n"276 " ldrr3, [sp, #44]\n"277 " addr1, sp, #60\n" // 0x3c278 " strr2, [sp, #16]\n"279 " strr3, [sp, #4]\n"280 " strr1, [sp, #12]\n"281 " strip, [sp]\n"282 " strr0, [sp, #8]\n"283 " ldmibr4, {r0, r1}\n"284 " movr3, lr\n"285 " movr2, r8\n"286 " blsub_ffa4b708\n"287 " ldrr0, [r6, #16]\n"288 " ldrr1, [r6, #84]\n"289 " blsub_ff839b00\n" // eventproc_export_TakeSemaphore()290 " cmpr0, #9\n" // 0x9291 " bneloc_ff95a23c\n"292 " blsub_ffa8d198\n"293 " ldrr0, =0x0\n" // was: "mov ..., #0"294 " strr5, [r6, #56]\n"263 "LDR r2, [r6, #88]\n" 264 "LDR r0, [r4, #28]\n" 265 "LDR r1, [r4, #32]\n" 266 "ADD r3, sp, #56\n" // 0x38 267 "STR r0, [sp, #24]\n" 268 "STR r1, [sp, #28]\n" 269 "STR r3, [sp, #36]\n" 270 "STR r2, [sp, #32]\n" 271 "LDR r2, [r6, #116]\n" 272 "LDR r3, [r6, #120]\n" 273 "LDR r0, [sp, #40]\n" 274 "STR r3, [sp, #20]\n" 275 "LDR r3, [sp, #44]\n" 276 "ADD r1, sp, #60\n" // 0x3c 277 "STR r2, [sp, #16]\n" 278 "STR r3, [sp, #4]\n" 279 "STR r1, [sp, #12]\n" 280 "STR ip, [sp]\n" 281 "STR r0, [sp, #8]\n" 282 "LDMIB r4, {r0, r1}\n" 283 "MOV r3, lr\n" 284 "MOV r2, r8\n" 285 "BL sub_ffa4b708\n" 286 "LDR r0, [r6, #16]\n" 287 "LDR r1, [r6, #84]\n" 288 "BL sub_ff839b00\n" // eventproc_export_TakeSemaphore() 289 "CMP r0, #9\n" // 0x9 290 "BNE loc_ff95a23c\n" 291 "BL sub_ffa8d198\n" 292 "LDR r0, =0x0\n" // was: "mov ..., #0" 293 "STR r5, [r6, #56]\n" 295 294 "loc_ff95a228:\n" 296 " blsub_ffa4b7ac\n"297 " ldrr0, =0xc\n" // was: "mov ..., #12"298 " blsub_ff886d0c\n"299 " ldrr0, =0x90000\n" // was: "mov ..., #589824"300 " bloc_ff95a264\n"295 "BL sub_ffa4b7ac\n" 296 "LDR r0, =0xc\n" // was: "mov ..., #12" 297 "BL sub_ff886d0c\n" 298 "LDR r0, =0x90000\n" // was: "mov ..., #589824" 299 "B loc_ff95a264\n" 301 300 "loc_ff95a23c:\n" 302 " ldrr0, [sp, #56]\n"303 " cmpr0, #0\n" // 0x0304 " beqloc_ff95a278\n"305 " blsub_ffa8d198\n"306 " ldrr0, =0x0\n" // was: "mov ..., #0"307 " strr5, [r6, #56]\n"301 "LDR r0, [sp, #56]\n" 302 "CMP r0, #0\n" // 0x0 303 "BEQ loc_ff95a278\n" 304 "BL sub_ffa8d198\n" 305 "LDR r0, =0x0\n" // was: "mov ..., #0" 306 "STR r5, [r6, #56]\n" 308 307 "loc_ff95a254:\n" 309 " blsub_ffa4b7ac\n"310 " ldrr0, =0xc\n" // was: "mov ..., #12"311 " blsub_ff886d0c\n"312 " ldrr0, =0xa0000\n" // was: "mov ..., #655360"308 "BL sub_ffa4b7ac\n" 309 "LDR r0, =0xc\n" // was: "mov ..., #12" 310 "BL sub_ff886d0c\n" 311 "LDR r0, =0xa0000\n" // was: "mov ..., #655360" 313 312 "loc_ff95a264:\n" 314 " blsub_ff890f40\n" // eventproc_export_HardwareDefect()315 " ldrr1, [r6, #148]!\n"316 " ldrr0, [r6, #12]\n"317 " blxr1\n"318 " bloc_ff95a0f8\n"313 "BL sub_ff890f40\n" // eventproc_export_HardwareDefect() 314 "LDR r1, [r6, #148]!\n" 315 "LDR r0, [r6, #12]\n" 316 "BLX r1\n" 317 "B loc_ff95a0f8\n" 319 318 "loc_ff95a278:\n" 320 " ldrr0, =0x0\n" // was: "mov ..., #0"321 " blsub_ffa4b7ac\n"322 " ldrr0, [sp, #52]\n"323 " ldrr1, [sp, #60]\n"324 " blsub_ffa8cef0\n"325 " ldrr0, [r6, #88]\n"326 " ldrr3, =0x00006470\n" // <----327 " addr1, r0, #1\n" // 0x1328 " strr1, [r6, #88]\n"329 " strr3, [sp]\n"330 " ldrr0, [sp, #60]\n"331 " subr3, r3, #4\n" // <----332 " ldrr2, =0xf\n" // was: "mov ..., #15"333 " blsub_ffa8b040\n"334 335 //" ldrr0, =0x6470-4\n" // added336 //" blset_quality\n" // added319 "LDR r0, =0x0\n" // was: "mov ..., #0" 320 "BL sub_ffa4b7ac\n" 321 "LDR r0, [sp, #52]\n" 322 "LDR r1, [sp, #60]\n" 323 "BL sub_ffa8cef0\n" 324 "LDR r0, [r6, #88]\n" 325 "LDR r3, =0x00006470\n" // <---- 326 "ADD r1, r0, #1\n" // 0x1 327 "STR r1, [r6, #88]\n" 328 "STR r3, [sp]\n" 329 "LDR r0, [sp, #60]\n" 330 "SUB r3, r3, #4\n" // <---- 331 "LDR r2, =0xf\n" // was: "mov ..., #15" 332 "BL sub_ffa8b040\n" 333 334 //"LDR r0, =0x6470-4\n" // added 335 //"BL set_quality\n" // added 337 336 338 337 "loc_ff95a2b0:\n" 339 " ldrr0, [r6, #92]\n"340 " addr0, r0, #1\n" // 0x1341 " strr0, [r6, #92]\n"342 " ldrr1, [r6, #72]\n"343 " mulr0, r1, r0\n"344 " ldrr1, [r6, #68]\n"345 " blsub_ffb3b51c\n"346 " movr4, r0\n"347 " blsub_ffa8d1d0\n"348 " ldrr1, [r6, #124]\n"349 " cmpr1, r4\n"350 " bneloc_ff95a2ec\n"351 " ldrr0, [r6, #48]\n"352 " cmpr0, #1\n" // 0x1353 " bneloc_ff95a300\n"338 "LDR r0, [r6, #92]\n" 339 "ADD r0, r0, #1\n" // 0x1 340 "STR r0, [r6, #92]\n" 341 "LDR r1, [r6, #72]\n" 342 "MUL r0, r1, r0\n" 343 "LDR r1, [r6, #68]\n" 344 "BL sub_ffb3b51c\n" 345 "MOV r4, r0\n" 346 "BL sub_ffa8d1d0\n" 347 "LDR r1, [r6, #124]\n" 348 "CMP r1, r4\n" 349 "BNE loc_ff95a2ec\n" 350 "LDR r0, [r6, #48]\n" 351 "CMP r0, #1\n" // 0x1 352 "BNE loc_ff95a300\n" 354 353 "loc_ff95a2ec:\n" 355 " ldrr1, [r6, #136]\n"356 " movr0, r4\n"357 " blxr1\n"358 " strr4, [r6, #124]\n"359 " strr7, [r6, #48]\n"354 "LDR r1, [r6, #136]\n" 355 "MOV r0, r4\n" 356 "BLX r1\n" 357 "STR r4, [r6, #124]\n" 358 "STR r7, [r6, #48]\n" 360 359 "loc_ff95a300:\n" 361 " strr7, [r6, #44]\n"362 " bloc_ff95a0f8\n"360 "STR r7, [r6, #44]\n" 361 "B loc_ff95a0f8\n" 363 362 ); 364 363 } -
trunk/platform/ixus130_sd1400/sub/100a/stubs_auto.S
r1985 r1993 179 179 STUB(ff83ba88) 180 180 STUB(ff83bac8) 181 STUB(ff83bb5c)182 181 STUB(ff83bcb4) 183 182 STUB(ff83bce4) … … 229 228 STUB(ff9597ac) 230 229 STUB(ff959f88) 231 STUB(ff95a5f4)232 230 STUB(ff95ef78) 233 231 STUB(ff95f120) -
trunk/platform/ixus130_sd1400/sub/100c/boot.c
r1985 r1993 10 10 void __attribute__((naked,noinline)) init_file_modules_task() { // ff8946cc 11 11 asm volatile ( 12 "push {r4, r5, r6, lr}\n" 13 "bl sub_ff88cb10\n" 14 "ldr r5, =0x00005006\n" // was: "[pc, #408] ; ff894874" 15 "movs r4, r0\n" 16 "ldrne r1, =0x0\n" // was: "mov ..., #0" 17 "movne r0, r5\n" 18 "blne sub_ff89051c\n" 19 "bl sub_ff88cb3c\n" 20 //"bl sub_ff88cb3c_my\n" 21 "bl core_spytask_can_start\n" 22 "cmp r4, #0\n" // 0x0 23 "moveq r0, r5\n" 24 "popeq {r4, r5, r6, lr}\n" 25 "ldreq r1, =0x0\n" // was: "mov ..., #0" 26 "beq sub_ff89051c\n" 27 ); 28 asm volatile ( 29 "pop {r4, r5, r6, pc}\n" 12 "PUSH {r4, r5, r6, lr}\n" 13 "BL sub_ff88cb10\n" 14 "LDR r5, =0x00005006\n" // was: "[pc, #408] ; ff894874" 15 "MOVS r4, r0\n" 16 "LDRNE r1, =0x0\n" // was: "mov ..., #0" 17 "MOVNE r0, r5\n" 18 "BLNE sub_ff89051c\n" 19 "BL sub_ff88cb3c\n" 20 //"BL sub_ff88cb3c_my\n" 21 "BL core_spytask_can_start\n" 22 "CMP r4, #0\n" // 0x0 23 "MOVEQ r0, r5\n" 24 "POPEQ {r4, r5, r6, lr}\n" 25 "LDREQ r1, =0x0\n" // was: "mov ..., #0" 26 "BEQ sub_ff89051c\n" 27 "POP {r4, r5, r6, pc}\n" 30 28 ); 31 29 }; … … 51 49 void __attribute__((naked,noinline)) boot() { 52 50 asm volatile ( 53 " ldrr1, =0xc0410000\n" // was: "[pc, #336] ; ff810164"54 " ldrr0, =0x0\n" // was: "mov ..., #0"55 " strr0, [r1]\n"56 " ldrr1, =0x78\n" // was: "mov ..., #120"57 " mcr15, 0, r1, cr1, cr0, 0\n"58 " ldrr1, =0x0\n" // was: "mov ..., #0"59 " mcr15, 0, r1, cr7, cr10, 4\n"60 " mcr15, 0, r1, cr7, cr5, 0\n"61 " mcr15, 0, r1, cr7, cr6, 0\n"62 " ldrr0, =0x3d\n" // was: "mov ..., #61"63 " mcr15, 0, r0, cr6, cr0, 0\n"64 " ldrr0, =0xc000002f\n" // was: "mov ..., #-1073741777"65 " mcr15, 0, r0, cr6, cr1, 0\n"66 " ldrr0, =0x33\n" // was: "mov ..., #51"67 " mcr15, 0, r0, cr6, cr2, 0\n"68 " ldrr0, =0x40000033\n" // was: "mov ..., #1073741875"69 " mcr15, 0, r0, cr6, cr3, 0\n"70 " ldrr0, =0x80000017\n" // was: "mov ..., #-2147483625"71 " mcr15, 0, r0, cr6, cr4, 0\n"72 " ldrr0, =0xff80002d\n" // was: "[pc, #264] ; ff810168"73 " mcr15, 0, r0, cr6, cr5, 0\n"74 " ldrr0, =0x34\n" // was: "mov ..., #52"75 " mcr15, 0, r0, cr2, cr0, 0\n"76 " ldrr0, =0x34\n" // was: "mov ..., #52"77 " mcr15, 0, r0, cr2, cr0, 1\n"78 " ldrr0, =0x34\n" // was: "mov ..., #52"79 " mcr15, 0, r0, cr3, cr0, 0\n"80 " ldrr0, =0x03333330\n" // was: "[pc, #236] ; ff81016c"81 " mcr15, 0, r0, cr5, cr0, 2\n"82 " ldrr0, =0x03333330\n" // was: "[pc, #228] ; ff81016c"83 " mcr15, 0, r0, cr5, cr0, 3\n"84 " mrc15, 0, r0, cr1, cr0, 0\n"85 " orrr0, r0, #4096\n" // 0x100086 " orrr0, r0, #4\n" // 0x487 " orrr0, r0, #1\n" // 0x188 " mcr15, 0, r0, cr1, cr0, 0\n"89 " ldrr1, =0x80000006\n" // was: "mov ..., #-2147483642"90 " mcr15, 0, r1, cr9, cr1, 0\n"91 " ldrr1, =0x6\n" // was: "mov ..., #6"92 " mcr15, 0, r1, cr9, cr1, 1\n"93 " mrc15, 0, r1, cr1, cr0, 0\n"94 " orrr1, r1, #327680\n" // 0x5000095 " mcr15, 0, r1, cr1, cr0, 0\n"96 " ldrr2, =0xc0200000\n" // was: "[pc, #176] ; ff810170"97 " ldrr1, =0x1\n" // was: "mov ..., #1"98 " strr1, [r2, #268]\n"99 " ldrr1, =0xff\n" // was: "mov ..., #255"100 " strr1, [r2, #12]\n"101 " strr1, [r2, #28]\n"102 " strr1, [r2, #44]\n"103 " strr1, [r2, #60]\n"104 " strr1, [r2, #76]\n"105 " strr1, [r2, #92]\n"106 " strr1, [r2, #108]\n"107 " strr1, [r2, #124]\n"108 " strr1, [r2, #140]\n"109 " strr1, [r2, #156]\n"110 " strr1, [r2, #172]\n"111 " strr1, [r2, #188]\n"112 " strr1, [r2, #204]\n"113 " strr1, [r2, #220]\n"114 " strr1, [r2, #236]\n"115 " strr1, [r2, #252]\n"116 " ldrr1, =0xc0400008\n" // was: "[pc, #100] ; ff810174"117 " ldrr2, =0x00430005\n" // was: "[pc, #100] ; ff810178"118 " strr2, [r1]\n"119 " ldrr1, =0x1\n" // was: "mov ..., #1"120 " ldrr2, =0xc0243100\n" // was: "[pc, #92] ; ff81017c"121 " strr2, [r1]\n"122 " ldrr2, =0xc0242010\n" // was: "[pc, #88] ; ff810180"123 " ldrr1, [r2]\n"124 " orrr1, r1, #1\n" // 0x1125 " strr1, [r2]\n"126 " ldrr0, =0xffbf8434\n" // canon_data_src127 " ldrr1, =0x1900\n" // MEMBASEADDR128 " ldrr3, =0xebd0\n" // canon_bss_start51 "LDR r1, =0xc0410000\n" // was: "[pc, #336] ; ff810164" 52 "LDR r0, =0x0\n" // was: "mov ..., #0" 53 "STR r0, [r1]\n" 54 "LDR r1, =0x78\n" // was: "mov ..., #120" 55 "MCR 15, 0, r1, cr1, cr0, 0\n" 56 "LDR r1, =0x0\n" // was: "mov ..., #0" 57 "MCR 15, 0, r1, cr7, cr10, 4\n" 58 "MCR 15, 0, r1, cr7, cr5, 0\n" 59 "MCR 15, 0, r1, cr7, cr6, 0\n" 60 "LDR r0, =0x3d\n" // was: "mov ..., #61" 61 "MCR 15, 0, r0, cr6, cr0, 0\n" 62 "LDR r0, =0xc000002f\n" // was: "mov ..., #-1073741777" 63 "MCR 15, 0, r0, cr6, cr1, 0\n" 64 "LDR r0, =0x33\n" // was: "mov ..., #51" 65 "MCR 15, 0, r0, cr6, cr2, 0\n" 66 "LDR r0, =0x40000033\n" // was: "mov ..., #1073741875" 67 "MCR 15, 0, r0, cr6, cr3, 0\n" 68 "LDR r0, =0x80000017\n" // was: "mov ..., #-2147483625" 69 "MCR 15, 0, r0, cr6, cr4, 0\n" 70 "LDR r0, =0xff80002d\n" // was: "[pc, #264] ; ff810168" 71 "MCR 15, 0, r0, cr6, cr5, 0\n" 72 "LDR r0, =0x34\n" // was: "mov ..., #52" 73 "MCR 15, 0, r0, cr2, cr0, 0\n" 74 "LDR r0, =0x34\n" // was: "mov ..., #52" 75 "MCR 15, 0, r0, cr2, cr0, 1\n" 76 "LDR r0, =0x34\n" // was: "mov ..., #52" 77 "MCR 15, 0, r0, cr3, cr0, 0\n" 78 "LDR r0, =0x03333330\n" // was: "[pc, #236] ; ff81016c" 79 "MCR 15, 0, r0, cr5, cr0, 2\n" 80 "LDR r0, =0x03333330\n" // was: "[pc, #228] ; ff81016c" 81 "MCR 15, 0, r0, cr5, cr0, 3\n" 82 "MRC 15, 0, r0, cr1, cr0, 0\n" 83 "ORR r0, r0, #4096\n" // 0x1000 84 "ORR r0, r0, #4\n" // 0x4 85 "ORR r0, r0, #1\n" // 0x1 86 "MCR 15, 0, r0, cr1, cr0, 0\n" 87 "LDR r1, =0x80000006\n" // was: "mov ..., #-2147483642" 88 "MCR 15, 0, r1, cr9, cr1, 0\n" 89 "LDR r1, =0x6\n" // was: "mov ..., #6" 90 "MCR 15, 0, r1, cr9, cr1, 1\n" 91 "MRC 15, 0, r1, cr1, cr0, 0\n" 92 "ORR r1, r1, #327680\n" // 0x50000 93 "MCR 15, 0, r1, cr1, cr0, 0\n" 94 "LDR r2, =0xc0200000\n" // was: "[pc, #176] ; ff810170" 95 "LDR r1, =0x1\n" // was: "mov ..., #1" 96 "STR r1, [r2, #268]\n" 97 "LDR r1, =0xff\n" // was: "mov ..., #255" 98 "STR r1, [r2, #12]\n" 99 "STR r1, [r2, #28]\n" 100 "STR r1, [r2, #44]\n" 101 "STR r1, [r2, #60]\n" 102 "STR r1, [r2, #76]\n" 103 "STR r1, [r2, #92]\n" 104 "STR r1, [r2, #108]\n" 105 "STR r1, [r2, #124]\n" 106 "STR r1, [r2, #140]\n" 107 "STR r1, [r2, #156]\n" 108 "STR r1, [r2, #172]\n" 109 "STR r1, [r2, #188]\n" 110 "STR r1, [r2, #204]\n" 111 "STR r1, [r2, #220]\n" 112 "STR r1, [r2, #236]\n" 113 "STR r1, [r2, #252]\n" 114 "LDR r1, =0xc0400008\n" // was: "[pc, #100] ; ff810174" 115 "LDR r2, =0x00430005\n" // was: "[pc, #100] ; ff810178" 116 "STR r2, [r1]\n" 117 "LDR r1, =0x1\n" // was: "mov ..., #1" 118 "LDR r2, =0xc0243100\n" // was: "[pc, #92] ; ff81017c" 119 "STR r2, [r1]\n" 120 "LDR r2, =0xc0242010\n" // was: "[pc, #88] ; ff810180" 121 "LDR r1, [r2]\n" 122 "ORR r1, r1, #1\n" // 0x1 123 "STR r1, [r2]\n" 124 "LDR r0, =0xffbf8434\n" // canon_data_src 125 "LDR r1, =0x1900\n" // MEMBASEADDR 126 "LDR r3, =0xebd0\n" // canon_bss_start 129 127 "loc_ff81013c:\n" 130 " cmpr1, r3\n"131 " ldrccr2, [r0], #4\n"132 " strccr2, [r1], #4\n"133 " bccloc_ff81013c\n"134 " ldrr1, =0x0014fe20\n" // MEMISOSTART135 " ldrr2, =0x0\n" // was: "mov ..., #0"128 "CMP r1, r3\n" 129 "LDRCC r2, [r0], #4\n" 130 "STRCC r2, [r1], #4\n" 131 "BCC loc_ff81013c\n" 132 "LDR r1, =0x0014fe20\n" // MEMISOSTART 133 "LDR r2, =0x0\n" // was: "mov ..., #0" 136 134 "loc_ff810154:\n" 137 " cmpr3, r1\n"138 " strccr2, [r3], #4\n"139 " bccloc_ff810154\n"140 " bsub_ff810354_my\n"135 "CMP r3, r1\n" 136 "STRCC r2, [r3], #4\n" 137 "BCC loc_ff810154\n" 138 "B sub_ff810354_my\n" 141 139 ); 142 140 } … … 178 176 179 177 asm volatile ( 180 " ldrr0, =0xff8103cc\n" // was: "[pc, #1036] ; ff810768"181 " ldrr1, =0x0\n" // was: "mov ..., #0"182 " ldrr3, =0xff810404\n" // was: "[pc, #1032] ; ff81076c"178 "LDR r0, =0xff8103cc\n" // was: "[pc, #1036] ; ff810768" 179 "LDR r1, =0x0\n" // was: "mov ..., #0" 180 "LDR r3, =0xff810404\n" // was: "[pc, #1032] ; ff81076c" 183 181 "loc_ff810360:\n" 184 " cmpr0, r3\n"185 " ldrccr2, [r0], #4\n"186 " strccr2, [r1], #4\n"187 " bccloc_ff810360\n"188 " ldrr0, =0xff810404\n" // was: "[pc, #1016] ; ff810770"189 " ldrr1, =0x4b0\n" // was: "mov ..., #1200"190 " ldrr3, =0xff810618\n" // was: "[pc, #1012] ; ff810774"182 "CMP r0, r3\n" 183 "LDRCC r2, [r0], #4\n" 184 "STRCC r2, [r1], #4\n" 185 "BCC loc_ff810360\n" 186 "LDR r0, =0xff810404\n" // was: "[pc, #1016] ; ff810770" 187 "LDR r1, =0x4b0\n" // was: "mov ..., #1200" 188 "LDR r3, =0xff810618\n" // was: "[pc, #1012] ; ff810774" 191 189 "loc_ff81037c:\n" 192 " cmpr0, r3\n"193 " ldrccr2, [r0], #4\n"194 " strccr2, [r1], #4\n"195 " bccloc_ff81037c\n"196 " ldrr0, =0xd2\n" // was: "mov ..., #210"197 " msrCPSR_fsxc, r0\n"198 " ldrsp, =0x1000\n" // was: "mov ..., #4096"199 " ldrr0, =0xd3\n" // was: "mov ..., #211"200 " msrCPSR_fsxc, r0\n"201 " ldrsp, =0x1000\n" // was: "mov ..., #4096"202 " ldrr0, =0x000006c4\n" // was: "[pc, #20] ; ff8103c0"203 " ldrr2, =0xeeeeeeee\n" // was: "[pc, #968] ; ff810778"204 " ldrr3, =0x1000\n" // was: "mov ..., #4096"190 "CMP r0, r3\n" 191 "LDRCC r2, [r0], #4\n" 192 "STRCC r2, [r1], #4\n" 193 "BCC loc_ff81037c\n" 194 "LDR r0, =0xd2\n" // was: "mov ..., #210" 195 "MSR CPSR_fsxc, r0\n" 196 "LDR sp, =0x1000\n" // was: "mov ..., #4096" 197 "LDR r0, =0xd3\n" // was: "mov ..., #211" 198 "MSR CPSR_fsxc, r0\n" 199 "LDR sp, =0x1000\n" // was: "mov ..., #4096" 200 "LDR r0, =0x000006c4\n" // was: "[pc, #20] ; ff8103c0" 201 "LDR r2, =0xeeeeeeee\n" // was: "[pc, #968] ; ff810778" 202 "LDR r3, =0x1000\n" // was: "mov ..., #4096" 205 203 "loc_ff8103b0:\n" 206 " cmpr0, r3\n"207 " strccr2, [r0], #4\n"208 " bccloc_ff8103b0\n"209 " blsub_ff811198_my\n"204 "CMP r0, r3\n" 205 "STRCC r2, [r0], #4\n" 206 "BCC loc_ff8103b0\n" 207 "BL sub_ff811198_my\n" 210 208 ); 211 209 } … … 213 211 void __attribute__((naked,noinline)) sub_ff811198_my() { 214 212 asm volatile ( 215 " push{lr}\n" // (str lr, [sp, #-4]!)216 " subsp, sp, #116\n" // 0x74217 " movr0, sp\n"218 " ldrr1, =0x74\n" // was: "mov ..., #116"219 " blsub_ffb399c4\n"220 " ldrr0, =0x53000\n" // was: "mov ..., #339968"221 " strr0, [sp, #4]\n"222 223 " ldrr0, =new_sa\n" // Replaces original start location 0x14fe20224 " ldrr0, [r0]\n"225 226 " ldrr2, =0x00339c00\n" // was: "[pc, #136] ; ff811248"227 " ldrr1, =0x003324a8\n" // was: "[pc, #140] ; ff811250"228 " strr0, [sp, #8]\n"229 " subr0, r1, r0\n"230 " addr3, sp, #12\n" // 0xc231 " strr2, [sp]\n"232 " stmr3, {r0, r1, r2}\n"233 " ldrr0, =0x22\n" // was: "mov ..., #34"234 " strr0, [sp, #24]\n"235 " ldrr0, =0x68\n" // was: "mov ..., #104"236 " strr0, [sp, #28]\n"237 " ldrr0, =0x0000019b\n" // was: "[pc, #104] ; ff811254"238 " ldrr1, =uHwSetup_my\n" // was: "[pc, #104] ; ff811258"239 " strr0, [sp, #32]\n"240 " ldrr0, =0x96\n" // was: "mov ..., #150"241 " strr0, [sp, #36]\n"242 " ldrr0, =0x78\n" // was: "mov ..., #120"243 " strr0, [sp, #40]\n"244 " ldrr0, =0x64\n" // was: "mov ..., #100"245 " strr0, [sp, #44]\n"246 " ldrr0, =0x0\n" // was: "mov ..., #0"247 " strr0, [sp, #48]\n"248 " strr0, [sp, #52]\n"249 " ldrr0, =0x10\n" // was: "mov ..., #16"250 " strr0, [sp, #92]\n"251 " ldrr0, =0x800\n" // was: "mov ..., #2048"252 " strr0, [sp, #96]\n"253 " ldrr0, =0xa0\n" // was: "mov ..., #160"254 " strr0, [sp, #100]\n"255 " ldrr0, =0x280\n" // was: "mov ..., #640"256 " strr0, [sp, #104]\n"257 " movr0, sp\n"258 " ldrr2, =0x0\n" // was: "mov ..., #0"259 " blsub_ff813404\n"260 " addsp, sp, #116\n" // 0x74261 " pop{pc}\n" // (ldr pc, [sp], #4)213 "PUSH {lr}\n" // (str lr, [sp, #-4]!) 214 "SUB sp, sp, #116\n" // 0x74 215 "MOV r0, sp\n" 216 "LDR r1, =0x74\n" // was: "mov ..., #116" 217 "BL sub_ffb399c4\n" 218 "LDR r0, =0x53000\n" // was: "mov ..., #339968" 219 "STR r0, [sp, #4]\n" 220 221 "LDR r0, =new_sa\n" // Replaces original start location 0x14fe20 222 "LDR r0, [r0]\n" 223 224 "LDR r2, =0x00339c00\n" // was: "[pc, #136] ; ff811248" 225 "LDR r1, =0x003324a8\n" // was: "[pc, #140] ; ff811250" 226 "STR r0, [sp, #8]\n" 227 "SUB r0, r1, r0\n" 228 "ADD r3, sp, #12\n" // 0xc 229 "STR r2, [sp]\n" 230 "STM r3, {r0, r1, r2}\n" 231 "LDR r0, =0x22\n" // was: "mov ..., #34" 232 "STR r0, [sp, #24]\n" 233 "LDR r0, =0x68\n" // was: "mov ..., #104" 234 "STR r0, [sp, #28]\n" 235 "LDR r0, =0x0000019b\n" // was: "[pc, #104] ; ff811254" 236 "LDR r1, =uHwSetup_my\n" // was: "[pc, #104] ; ff811258" 237 "STR r0, [sp, #32]\n" 238 "LDR r0, =0x96\n" // was: "mov ..., #150" 239 "STR r0, [sp, #36]\n" 240 "LDR r0, =0x78\n" // was: "mov ..., #120" 241 "STR r0, [sp, #40]\n" 242 "LDR r0, =0x64\n" // was: "mov ..., #100" 243 "STR r0, [sp, #44]\n" 244 "LDR r0, =0x0\n" // was: "mov ..., #0" 245 "STR r0, [sp, #48]\n" 246 "STR r0, [sp, #52]\n" 247 "LDR r0, =0x10\n" // was: "mov ..., #16" 248 "STR r0, [sp, #92]\n" 249 "LDR r0, =0x800\n" // was: "mov ..., #2048" 250 "STR r0, [sp, #96]\n" 251 "LDR r0, =0xa0\n" // was: "mov ..., #160" 252 "STR r0, [sp, #100]\n" 253 "LDR r0, =0x280\n" // was: "mov ..., #640" 254 "STR r0, [sp, #104]\n" 255 "MOV r0, sp\n" 256 "LDR r2, =0x0\n" // was: "mov ..., #0" 257 "BL sub_ff813404\n" 258 "ADD sp, sp, #116\n" // 0x74 259 "POP {pc}\n" // (ldr pc, [sp], #4) 262 260 ); 263 261 } … … 265 263 void __attribute__((naked,noinline)) uHwSetup_my() { // 0xff815e58 266 264 asm volatile ( 267 " push{r4, lr}\n"268 " blsub_ff810b20\n"269 " blsub_ff81a244\n"270 " cmpr0, #0\n" // 0x0271 " ldrltr0, =0xff815f6c\n" // was: "addlt r0, pc, #252" *"dmSetup"272 " blltsub_ff815f4c\n"273 " blsub_ff815a94\n"274 " cmpr0, #0\n" // 0x0275 " ldrltr0, =0xff815f74\n" // was: "addlt r0, pc, #244" *"termDriverInit"276 " blltsub_ff815f4c\n"277 " ldrr0, =0xff815f84\n" // was: "add r0, pc, #252" *"/_term"278 " blsub_ff815b7c\n"279 " cmpr0, #0\n" // 0x0280 " ldrltr0, =0xff815f8c\n" // was: "addlt r0, pc, #248" *"termDeviceCreate"281 " blltsub_ff815f4c\n"282 " ldrr0, =0xff815f84\n" // was: "add r0, pc, #232" *"/_term"283 " blsub_ff813bf0\n"284 " cmpr0, #0\n" // 0x0285 " ldrltr0, =0xff815fa0\n" // was: "addlt r0, pc, #248" *"stdioSetup"286 " blltsub_ff815f4c\n"287 " blsub_ff819c3c\n"288 " cmpr0, #0\n" // 0x0289 " ldrltr0, =0xff815fac\n" // was: "addlt r0, pc, #244" *"stdlibSetup"290 " blltsub_ff815f4c\n"291 " blsub_ff81167c\n"292 " cmpr0, #0\n" // 0x0293 " ldrltr0, =0xff815fb8\n" // was: "addlt r0, pc, #240" *"armlib_setup"294 " blltsub_ff815f4c\n"295 " pop{r4, lr}\n"296 " btaskcreate_Startup_my\n" // ff81faf0265 "PUSH {r4, lr}\n" 266 "BL sub_ff810b20\n" 267 "BL sub_ff81a244\n" 268 "CMP r0, #0\n" // 0x0 269 "LDRLT r0, =0xff815f6c\n" // was: "addlt r0, pc, #252" *"dmSetup" 270 "BLLT sub_ff815f4c\n" 271 "BL sub_ff815a94\n" 272 "CMP r0, #0\n" // 0x0 273 "LDRLT r0, =0xff815f74\n" // was: "addlt r0, pc, #244" *"termDriverInit" 274 "BLLT sub_ff815f4c\n" 275 "LDR r0, =0xff815f84\n" // was: "add r0, pc, #252" *"/_term" 276 "BL sub_ff815b7c\n" 277 "CMP r0, #0\n" // 0x0 278 "LDRLT r0, =0xff815f8c\n" // was: "addlt r0, pc, #248" *"termDeviceCreate" 279 "BLLT sub_ff815f4c\n" 280 "LDR r0, =0xff815f84\n" // was: "add r0, pc, #232" *"/_term" 281 "BL sub_ff813bf0\n" 282 "CMP r0, #0\n" // 0x0 283 "LDRLT r0, =0xff815fa0\n" // was: "addlt r0, pc, #248" *"stdioSetup" 284 "BLLT sub_ff815f4c\n" 285 "BL sub_ff819c3c\n" 286 "CMP r0, #0\n" // 0x0 287 "LDRLT r0, =0xff815fac\n" // was: "addlt r0, pc, #244" *"stdlibSetup" 288 "BLLT sub_ff815f4c\n" 289 "BL sub_ff81167c\n" 290 "CMP r0, #0\n" // 0x0 291 "LDRLT r0, =0xff815fb8\n" // was: "addlt r0, pc, #240" *"armlib_setup" 292 "BLLT sub_ff815f4c\n" 293 "POP {r4, lr}\n" 294 "B taskcreate_Startup_my\n" // ff81faf0 297 295 ); 298 296 } … … 300 298 void __attribute__((naked,noinline)) taskcreate_Startup_my() { // 0xff81faf0 301 299 asm volatile ( 302 " push{r3, lr}\n"303 " blsub_ff834340\n"304 " blsub_ff83ba88\n"305 " cmpr0, #0\n" // 0x0306 " bneloc_ff81fb34\n"307 " blsub_ff835b2c\n"308 " cmpr0, #0\n" // 0x0309 " beqloc_ff81fb34\n"310 " blsub_ff83433c\n"311 " cmpr0, #0\n" // 0x0312 " bneloc_ff81fb34\n"313 " blsub_ff8339dc\n"314 " ldrr1, =0xc0220000\n" // was: "[pc, #76] ; ff81fb74"315 " ldrr0, =0x44\n" // was: "mov ..., #68"316 " strr0, [r1, #28]\n"317 " blsub_ff833bc8\n"300 "PUSH {r3, lr}\n" 301 "BL sub_ff834340\n" 302 "BL sub_ff83ba88\n" 303 "CMP r0, #0\n" // 0x0 304 "BNE loc_ff81fb34\n" 305 "BL sub_ff835b2c\n" 306 "CMP r0, #0\n" // 0x0 307 "BEQ loc_ff81fb34\n" 308 "BL sub_ff83433c\n" 309 "CMP r0, #0\n" // 0x0 310 "BNE loc_ff81fb34\n" 311 "BL sub_ff8339dc\n" 312 "LDR r1, =0xc0220000\n" // was: "[pc, #76] ; ff81fb74" 313 "LDR r0, =0x44\n" // was: "mov ..., #68" 314 "STR r0, [r1, #28]\n" 315 "BL sub_ff833bc8\n" 318 316 "loc_ff81fb30:\n" 319 " bloc_ff81fb30\n"317 "B loc_ff81fb30\n" 320 318 "loc_ff81fb34:\n" // 3 refs 321 //" blsub_ff834348\n" // disabled for correct Power Button detection322 //" blsub_ff834344\n" // nullsub323 " blsub_ff839cb0\n"324 " ldrr1, =0x0038e000\n" // was: "[pc, #48] ; ff81fb78"325 " ldrr0, =0x0\n" // was: "mov ..., #0"326 " blsub_ff83a0f8\n"327 " blsub_ff839ea4\n"328 " ldrr3, =0x0\n" // was: "mov ..., #0"329 " strr3, [sp]\n"330 " ldrr3, =task_Startup_my\n" // was: "sub r3, pc, #212\n" // ff81fa8c: (e92d4010)331 " ldrr2, =0x0\n" // was: "mov ..., #0"332 " ldrr1, =0x19\n" // was: "mov ..., #25"333 " addr0, pc, #16\n" // ff81fb7c: (72617453) *"Startup"334 " blsub_ff81e83c\n"335 " ldrr0, =0x0\n" // was: "mov ..., #0"336 " pop{ip, pc}\n"319 //"BL sub_ff834348\n" // disabled for correct Power Button detection 320 //"BL sub_ff834344\n" // nullsub 321 "BL sub_ff839cb0\n" 322 "LDR r1, =0x0038e000\n" // was: "[pc, #48] ; ff81fb78" 323 "LDR r0, =0x0\n" // was: "mov ..., #0" 324 "BL sub_ff83a0f8\n" 325 "BL sub_ff839ea4\n" 326 "LDR r3, =0x0\n" // was: "mov ..., #0" 327 "STR r3, [sp]\n" 328 "LDR r3, =task_Startup_my\n" // was: "sub r3, pc, #212\n" // ff81fa8c: (e92d4010) 329 "LDR r2, =0x0\n" // was: "mov ..., #0" 330 "LDR r1, =0x19\n" // was: "mov ..., #25" 331 "ADD r0, pc, #16\n" // ff81fb7c: (72617453) *"Startup" 332 "BL sub_ff81e83c\n" 333 "LDR r0, =0x0\n" // was: "mov ..., #0" 334 "POP {ip, pc}\n" 337 335 ); 338 336 } … … 340 338 void __attribute__((naked,noinline)) task_Startup_my() { // ff81fa8c 341 339 asm volatile ( 342 " push{r4, lr}\n"343 " blsub_ff81650c\n" // taskcreate_ClockSave344 " blsub_ff83543c\n"345 " blsub_ff833638\n"346 " blsub_ff83bac8\n" // j_nullsub347 " blsub_ff83bcb4\n"348 //" blsub_ff83bb5c\n" // original: StartSdInit() -> StartDiskboot()340 "PUSH {r4, lr}\n" 341 "BL sub_ff81650c\n" // taskcreate_ClockSave 342 "BL sub_ff83543c\n" 343 "BL sub_ff833638\n" 344 "BL sub_ff83bac8\n" // j_nullsub 345 "BL sub_ff83bcb4\n" 346 //"BL sub_ff83bb5c\n" // original: StartSdInit() -> StartDiskboot() 349 347 ); 350 348 … … 354 352 355 353 asm volatile ( 356 " blsub_ff83be58\n"357 " blsub_ff8322e4\n"358 " blsub_ff83bce4\n"359 " blsub_ff839454\n"360 " blsub_ff83be5c\n"361 " bltaskcreate_PhySw_my\n" // sub_ff834230362 //" blsub_ff834230\n"363 " bltask_ShootSeqTask_my\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff364 //" blsub_ff8377a8\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff365 " blsub_ff83be74\n"366 //" blsub_ff8316a8\n" // nullsub367 " blsub_ff833090\n" // Battery.c:0368 " blsub_ff83b860\n" // taskcreate_Bye369 " blsub_ff8335ec\n"370 " blsub_ff83302c\n" // taskcreate_BatteryTask / taskcreate_TempCheck371 " blsub_ff832318\n"372 " blsub_ff83c8f4\n" // taskcreate_FactoryModeController373 " blsub_ff833004\n" // taskcreate_Ui374 " pop{r4, lr}\n"375 " bsub_ff81662c\n" // MLHClock.c:992354 "BL sub_ff83be58\n" 355 "BL sub_ff8322e4\n" 356 "BL sub_ff83bce4\n" 357 "BL sub_ff839454\n" 358 "BL sub_ff83be5c\n" 359 "BL taskcreate_PhySw_my\n" // sub_ff834230 360 //"BL sub_ff834230\n" 361 "BL task_ShootSeqTask_my\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff 362 //"BL sub_ff8377a8\n" // sub_ff8377a8 taskcreate_SsTask -> for shoot seq stuff 363 "BL sub_ff83be74\n" 364 //"BL sub_ff8316a8\n" // nullsub 365 "BL sub_ff833090\n" // Battery.c:0 366 "BL sub_ff83b860\n" // taskcreate_Bye 367 "BL sub_ff8335ec\n" 368 "BL sub_ff83302c\n" // taskcreate_BatteryTask / taskcreate_TempCheck 369 "BL sub_ff832318\n" 370 "BL sub_ff83c8f4\n" // taskcreate_FactoryModeController 371 "BL sub_ff833004\n" // taskcreate_Ui 372 "POP {r4, lr}\n" 373 "B sub_ff81662c\n" // MLHClock.c:992 376 374 ); 377 375 } … … 379 377 void __attribute__((naked,noinline)) taskcreate_PhySw_my() { // 0xff834230 380 378 asm volatile ( 381 " push{r3, r4, r5, lr}\n"382 " ldrr4, =0x00001c20\n" // was: "[pc, #476] ; ff834418"383 " ldrr0, [r4, #16]\n"384 " cmpr0, #0\n" // 0x0385 " bneloc_ff834264\n"386 " ldrr3, =0x0\n" // was: "mov ..., #0"387 " strr3, [sp]\n"388 //" ldrr3, =0xff8341fc\n" //389 " ldrr3, =mykbd_task\n" // 0xff8341fc379 "PUSH {r3, r4, r5, lr}\n" 380 "LDR r4, =0x00001c20\n" // was: "[pc, #476] ; ff834418" 381 "LDR r0, [r4, #16]\n" 382 "CMP r0, #0\n" // 0x0 383 "BNE loc_ff834264\n" 384 "LDR r3, =0x0\n" // was: "mov ..., #0" 385 "STR r3, [sp]\n" 386 //"LDR r3, =0xff8341fc\n" // 387 "LDR r3, =mykbd_task\n" // 0xff8341fc 390 388 // Increate stack size from 0x800 to 0x2000 for new task_PhySw so we don't have to do stack switch 391 " ldrr2, =0x2000\n"392 //" ldrr2, =0x800\n" // was: "mov ..., #2048"393 " ldrr1, =0x17\n" // was: "mov ..., #23"394 " ldrr0, =0xff834438\n" // was: "add r0, pc, #472" *"PhySw"395 " blsub_ff839ef8\n" // KernelCreateTask396 " strr0, [r4, #16]\n"389 "LDR r2, =0x2000\n" 390 //"LDR r2, =0x800\n" // was: "mov ..., #2048" 391 "LDR r1, =0x17\n" // was: "mov ..., #23" 392 "LDR r0, =0xff834438\n" // was: "add r0, pc, #472" *"PhySw" 393 "BL sub_ff839ef8\n" // KernelCreateTask 394 "STR r0, [r4, #16]\n" 397 395 "loc_ff834264:\n" 398 " blsub_ff88a644\n"399 " blsub_ff835aa4\n" // IsFactoryMode400 " cmpr0, #0\n" // 0x0401 " ldreqr1, =0x0003280c\n" // was: "[pc, #428] ; ff834424"402 " popeq{r3, r4, r5, lr}\n"403 " beqsub_ff88a5cc\n" // eventproc_export_OpLog_Start404 " pop{r3, r4, r5, pc}\n"396 "BL sub_ff88a644\n" 397 "BL sub_ff835aa4\n" // IsFactoryMode 398 "CMP r0, #0\n" // 0x0 399 "LDREQ r1, =0x0003280c\n" // was: "[pc, #428] ; ff834424" 400 "POPEQ {r3, r4, r5, lr}\n" 401 "BEQ sub_ff88a5cc\n" // eventproc_export_OpLog_Start 402 "POP {r3, r4, r5, pc}\n" 405 403 ); 406 404 } … … 408 406 void __attribute__((naked,noinline)) task_ShootSeqTask_my() { 409 407 asm volatile ( 410 " push{r4, lr}\n"411 " ldrr1, =0x0\n" // was: "mov ..., #0"412 " ldrr0, =0x0\n" // was: "mov ..., #0"413 " blsub_ff839f50\n"414 " ldrr4, =0x00001c7c\n" // was: "[pc, #-492] ; ff8375d4"415 " strr0, [r4, #16]\n"416 " blsub_ff87f1ec\n"417 " blsub_ff880934\n" // taskcreate_SsTask418 " blsub_ff87e334\n"419 " blsub_ff878d6c_my\n"420 " blsub_ff87f4d0\n"421 " ldrr0, [r4, #16]\n"422 " pop{r4, lr}\n"423 " ldrr1, =0x1000\n" // was: "mov ..., #4096"424 " bsub_ff883f9c\n"408 "PUSH {r4, lr}\n" 409 "LDR r1, =0x0\n" // was: "mov ..., #0" 410 "LDR r0, =0x0\n" // was: "mov ..., #0" 411 "BL sub_ff839f50\n" 412 "LDR r4, =0x00001c7c\n" // was: "[pc, #-492] ; ff8375d4" 413 "STR r0, [r4, #16]\n" 414 "BL sub_ff87f1ec\n" 415 "BL sub_ff880934\n" // taskcreate_SsTask 416 "BL sub_ff87e334\n" 417 "BL sub_ff878d6c_my\n" 418 "BL sub_ff87f4d0\n" 419 "LDR r0, [r4, #16]\n" 420 "POP {r4, lr}\n" 421 "LDR r1, =0x1000\n" // was: "mov ..., #4096" 422 "B sub_ff883f9c\n" 425 423 ); 426 424 } … … 428 426 void __attribute__((naked,noinline)) sub_ff878d6c_my() { // was FF878D1C_my 429 427 asm volatile ( 430 " push{r4, lr}\n"431 " ldrr4, =0x00002b64\n" // was: "[pc, #-3512] ; ff877fc0"432 " ldrr0, [r4, #12]\n"433 " cmpr0, #0\n" // 0x0434 " bneloc_ff878dd8\n"435 " blsub_ff87c898\n" // nullsub436 " ldrr1, =0x1\n" // was: "mov ..., #1"437 " ldrr0, =0x0\n" // was: "mov ..., #0"438 " blsub_ff839f74\n" // KernelMisc.c:55439 " strr0, [r4, #4]\n"440 " ldrr0, =0x0\n" // was: "mov ..., #0"441 " ldrr1, =0x8\n" // was: "mov ..., #8"442 " blsub_ff839f50\n" // KernelMisc.c:43443 " strr0, [r4, #8]\n"444 " blsub_ff87914c\n"445 " blsub_ff8798d4\n"446 " ldrr0, =0x0\n" // was: "mov ..., #0"447 " strr0, [r4]\n"448 " addr0, r4, #16\n" // 0x10449 " ldrr1, =0x0\n" // was: "mov ..., #0"450 " strr1, [r0], #4\n"451 " strr1, [r0]\n"452 " blsub_ff879ae4\n"453 " blsub_ff87f6d0\n"454 " blsub_ff87ccc4\n"455 " blsub_ff87a628_my\n" // taskcreate_CaptSeqTask456 " blsub_ff87b6d8\n"428 "PUSH {r4, lr}\n" 429 "LDR r4, =0x00002b64\n" // was: "[pc, #-3512] ; ff877fc0" 430 "LDR r0, [r4, #12]\n" 431 "CMP r0, #0\n" // 0x0 432 "BNE loc_ff878dd8\n" 433 "BL sub_ff87c898\n" // nullsub 434 "LDR r1, =0x1\n" // was: "mov ..., #1" 435 "LDR r0, =0x0\n" // was: "mov ..., #0" 436 "BL sub_ff839f74\n" // KernelMisc.c:55 437 "STR r0, [r4, #4]\n" 438 "LDR r0, =0x0\n" // was: "mov ..., #0" 439 "LDR r1, =0x8\n" // was: "mov ..., #8" 440 "BL sub_ff839f50\n" // KernelMisc.c:43 441 "STR r0, [r4, #8]\n" 442 "BL sub_ff87914c\n" 443 "BL sub_ff8798d4\n" 444 "LDR r0, =0x0\n" // was: "mov ..., #0" 445 "STR r0, [r4]\n" 446 "ADD r0, r4, #16\n" // 0x10 447 "LDR r1, =0x0\n" // was: "mov ..., #0" 448 "STR r1, [r0], #4\n" 449 "STR r1, [r0]\n" 450 "BL sub_ff879ae4\n" 451 "BL sub_ff87f6d0\n" 452 "BL sub_ff87ccc4\n" 453 "BL sub_ff87a628_my\n" // taskcreate_CaptSeqTask 454 "BL sub_ff87b6d8\n" 457 455 "loc_ff878dd8:\n" 458 " ldrr0, =0x1\n" // was: "mov ..., #1"459 " strr0, [r4, #12]\n"460 " pop{r4, pc}\n"456 "LDR r0, =0x1\n" // was: "mov ..., #1" 457 "STR r0, [r4, #12]\n" 458 "POP {r4, pc}\n" 461 459 ); 462 460 } … … 464 462 void __attribute__((naked,noinline)) sub_ff87a628_my() { // was sub_FF87A5D8_my 465 463 asm volatile ( 466 " push{r3, r4, r5, lr}\n"467 " ldrr2, =0x00039578\n" // was: "[pc, #-1920] ; ff879eb4"468 " ldrr0, =0x0\n" // was: "mov ..., #0"469 " ldrr1, =0x0\n" // was: "mov ..., #0"464 "PUSH {r3, r4, r5, lr}\n" 465 "LDR r2, =0x00039578\n" // was: "[pc, #-1920] ; ff879eb4" 466 "LDR r0, =0x0\n" // was: "mov ..., #0" 467 "LDR r1, =0x0\n" // was: "mov ..., #0" 470 468 "loc_ff87a638:\n" 471 " addr3, r2, r0, lsl #4\n"472 " addr0, r0, #1\n" // 0x1473 " cmpr0, #5\n" // 0x5474 " strr1, [r3, #8]\n"475 " bccloc_ff87a638\n"476 " blsub_ff87b214\n"477 " blsub_ff95f458\n" // nullsub478 " blsub_ff960018\n"479 " ldrr1, =0x5\n" // was: "mov ..., #5"480 " ldrr0, =0x0\n" // was: "mov ..., #0"481 " blsub_ff839f2c\n" // KernelMisc.c:31482 " ldrr4, =0x00002b9c\n" // was: "[pc, #-2000] ; ff879e9c"483 " ldrr1, =0x00101dff\n" // was: "[pc, #-1968] ; ff879ec0"484 " strr0, [r4, #4]\n"485 " ldrr0, =0x0\n" // was: "mov ..., #0"486 " blsub_ff839f50\n" // KernelMisc.c:43487 " strr0, [r4]\n"488 " ldrr0, =0x0\n" // was: "mov ..., #0"489 " ldrr1, =0x1\n" // was: "mov ..., #1"490 " blsub_ff839f74\n" // KernelMisc.c:55491 " strr0, [r4, #8]\n"492 " ldrr3, =0x0\n" // was: "mov ..., #0"493 " strr3, [sp]\n"494 //" ldrr3, =capt_seq_task\n"495 " ldrr3, =0xff87a310\n" // capt_seq_task496 " ldrr0, =0xff87a898\n" // *"CaptSeqTask"497 " ldrr2, =0x1000\n" // was: "mov ..., #4096"498 " ldrr1, =0x17\n" // was: "mov ..., #23"499 " blsub_ff839ef8\n" // was FF839EF8 KernelCreateTask ; LOCATION: KernelMisc.c:19500 " pop{r3, r4, r5, pc}\n"469 "ADD r3, r2, r0, lsl #4\n" 470 "ADD r0, r0, #1\n" // 0x1 471 "CMP r0, #5\n" // 0x5 472 "STR r1, [r3, #8]\n" 473 "BCC loc_ff87a638\n" 474 "BL sub_ff87b214\n" 475 "BL sub_ff95f458\n" // nullsub 476 "BL sub_ff960018\n" 477 "LDR r1, =0x5\n" // was: "mov ..., #5" 478 "LDR r0, =0x0\n" // was: "mov ..., #0" 479 "BL sub_ff839f2c\n" // KernelMisc.c:31 480 "LDR r4, =0x00002b9c\n" // was: "[pc, #-2000] ; ff879e9c" 481 "LDR r1, =0x00101dff\n" // was: "[pc, #-1968] ; ff879ec0" 482 "STR r0, [r4, #4]\n" 483 "LDR r0, =0x0\n" // was: "mov ..., #0" 484 "BL sub_ff839f50\n" // KernelMisc.c:43 485 "STR r0, [r4]\n" 486 "LDR r0, =0x0\n" // was: "mov ..., #0" 487 "LDR r1, =0x1\n" // was: "mov ..., #1" 488 "BL sub_ff839f74\n" // KernelMisc.c:55 489 "STR r0, [r4, #8]\n" 490 "LDR r3, =0x0\n" // was: "mov ..., #0" 491 "STR r3, [sp]\n" 492 //"LDR r3, =capt_seq_task\n" 493 "LDR r3, =0xff87a310\n" // capt_seq_task 494 "LDR r0, =0xff87a898\n" // *"CaptSeqTask" 495 "LDR r2, =0x1000\n" // was: "mov ..., #4096" 496 "LDR r1, =0x17\n" // was: "mov ..., #23" 497 "BL sub_ff839ef8\n" // was FF839EF8 KernelCreateTask ; LOCATION: KernelMisc.c:19 498 "POP {r3, r4, r5, pc}\n" 501 499 ); 502 500 } … … 506 504 void __attribute__((naked,noinline)) sub_ff88cb3c_my() { // sub_FF88FF58_my 507 505 asm volatile ( 508 " push{r4, lr}\n"509 " ldrr0, =0x3\n" // was: "mov ..., #3"510 " blsub_ff86f084_my\n"511 " blsub_ff94002c\n"512 " ldrr4, =0x00002f54\n" // was: "[pc, #112] ; ff88cbc4"513 " ldrr0, [r4, #4]\n"514 " cmpr0, #0\n" // 0x0515 " bneloc_ff88cb74\n"516 " blsub_ff86e2cc\n"517 " blsub_ff9344f0\n"518 " blsub_ff86e2cc\n"519 " blsub_ff86a6f0\n"520 " blsub_ff86e1cc\n"521 " blsub_ff93458c\n"506 "PUSH {r4, lr}\n" 507 "LDR r0, =0x3\n" // was: "mov ..., #3" 508 "BL sub_ff86f084_my\n" 509 "BL sub_ff94002c\n" 510 "LDR r4, =0x00002f54\n" // was: "[pc, #112] ; ff88cbc4" 511 "LDR r0, [r4, #4]\n" 512 "CMP r0, #0\n" // 0x0 513 "BNE loc_ff88cb74\n" 514 "BL sub_ff86e2cc\n" 515 "BL sub_ff9344f0\n" 516 "BL sub_ff86e2cc\n" 517 "BL sub_ff86a6f0\n" 518 "BL sub_ff86e1cc\n" 519 "BL sub_ff93458c\n" 522 520 "loc_ff88cb74:\n" 523 " ldrr0, =0x1\n" // was: "mov ..., #1"524 " strr0, [r4]\n"525 " pop{r4, pc}\n"521 "LDR r0, =0x1\n" // was: "mov ..., #1" 522 "STR r0, [r4]\n" 523 "POP {r4, pc}\n" 526 524 ); 527 525 }; … … 529 527 void __attribute__((naked,noinline)) sub_ff86f084_my() { // sub_FF871A04_my 530 528 asm volatile ( 531 " push{r4, r5, r6, r7, r8, lr}\n"532 " movr8, r0\n"533 " blsub_ff86f004\n"534 " ldrr1, =0x00038448\n" // was: "[pc, #-2052] ; ff86e894"535 " movr6, r0\n"536 " addr4, r1, r0, lsl #7\n"537 " ldrr0, [r4, #108]\n"538 " cmpr0, #4\n" // 0x4539 " ldreqr1, =0x0000085a\n" // was: "[pc, #208] ; ff86f17c"540 " ldreqr0, =0xff86eb44\n" // was: "[pc, #200] ; ff86f178" **"Mounter.c"541 " bleqsub_ff81eb14\n"542 " movr1, r8\n"543 " movr0, r6\n"544 " blsub_ff86e8bc\n"545 " ldrr0, [r4, #56]\n"546 " blsub_ff86f724\n"547 " cmpr0, #0\n" // 0x0548 " streqr0, [r4, #108]\n"549 " movr0, r6\n"550 " blsub_ff86e94c\n"551 " movr0, r6\n"552 " blsub_ff86ecac\n"553 " movr5, r0\n"554 " movr0, r6\n"555 " blsub_ff86eedc_my\n"556 " ldrr6, [r4, #60]\n"557 " andr7, r5, r0\n"558 " cmpr6, #0\n" // 0x0559 " ldrr1, [r4, #56]\n"560 " ldreqr0, =0x80000001\n" // was: "mov ..., #-2147483647"561 " ldrr5, =0x0\n" // was: "mov ..., #0"562 " beqloc_ff86f134\n"563 " movr0, r1\n"564 " blsub_ff86e434\n"565 " cmpr0, #0\n" // 0x0566 " ldrner5, =0x4\n" // was: "mov ..., #4"567 " cmpr6, #5\n" // 0x5568 " orrner0, r5, #1\n" // 0x1569 " biceqr0, r5, #1\n" // 0x1570 " cmpr7, #0\n" // 0x0571 " biceqr0, r0, #2\n" // 0x2572 " orreqr0, r0, #0x80000000\n"573 " bicner0, r0, #0x80000000\n"574 " orrner0, r0, #2\n" // 0x2529 "PUSH {r4, r5, r6, r7, r8, lr}\n" 530 "MOV r8, r0\n" 531 "BL sub_ff86f004\n" 532 "LDR r1, =0x00038448\n" // was: "[pc, #-2052] ; ff86e894" 533 "MOV r6, r0\n" 534 "ADD r4, r1, r0, lsl #7\n" 535 "LDR r0, [r4, #108]\n" 536 "CMP r0, #4\n" // 0x4 537 "LDREQ r1, =0x0000085a\n" // was: "[pc, #208] ; ff86f17c" 538 "LDREQ r0, =0xff86eb44\n" // was: "[pc, #200] ; ff86f178" **"Mounter.c" 539 "BLEQ sub_ff81eb14\n" 540 "MOV r1, r8\n" 541 "MOV r0, r6\n" 542 "BL sub_ff86e8bc\n" 543 "LDR r0, [r4, #56]\n" 544 "BL sub_ff86f724\n" 545 "CMP r0, #0\n" // 0x0 546 "STREQ r0, [r4, #108]\n" 547 "MOV r0, r6\n" 548 "BL sub_ff86e94c\n" 549 "MOV r0, r6\n" 550 "BL sub_ff86ecac\n" 551 "MOV r5, r0\n" 552 "MOV r0, r6\n" 553 "BL sub_ff86eedc_my\n" 554 "LDR r6, [r4, #60]\n" 555 "AND r7, r5, r0\n" 556 "CMP r6, #0\n" // 0x0 557 "LDR r1, [r4, #56]\n" 558 "LDREQ r0, =0x80000001\n" // was: "mov ..., #-2147483647" 559 "LDR r5, =0x0\n" // was: "mov ..., #0" 560 "BEQ loc_ff86f134\n" 561 "MOV r0, r1\n" 562 "BL sub_ff86e434\n" 563 "CMP r0, #0\n" // 0x0 564 "LDRNE r5, =0x4\n" // was: "mov ..., #4" 565 "CMP r6, #5\n" // 0x5 566 "ORRNE r0, r5, #1\n" // 0x1 567 "BICEQ r0, r5, #1\n" // 0x1 568 "CMP r7, #0\n" // 0x0 569 "BICEQ r0, r0, #2\n" // 0x2 570 "ORREQ r0, r0, #0x80000000\n" 571 "BICNE r0, r0, #0x80000000\n" 572 "ORRNE r0, r0, #2\n" // 0x2 575 573 "loc_ff86f134:\n" 576 " cmpr8, #7\n" // 0x7577 " strr0, [r4, #64]\n"578 " popne{r4, r5, r6, r7, r8, pc}\n"579 " movr0, r8\n"580 " blsub_ff86f054\n"581 " cmpr0, #0\n" // 0x0582 " popeq{r4, r5, r6, r7, r8, lr}\n"583 " ldreqr0, =0xff86f180\n" // was: "addeq r0, pc, #40" *"EMEM MOUNT ERROR!!!"584 " beqsub_ff81177c\n"585 " pop{r4, r5, r6, r7, r8, pc}\n"574 "CMP r8, #7\n" // 0x7 575 "STR r0, [r4, #64]\n" 576 "POPNE {r4, r5, r6, r7, r8, pc}\n" 577 "MOV r0, r8\n" 578 "BL sub_ff86f054\n" 579 "CMP r0, #0\n" // 0x0 580 "POPEQ {r4, r5, r6, r7, r8, lr}\n" 581 "LDREQ r0, =0xff86f180\n" // was: "addeq r0, pc, #40" *"EMEM MOUNT ERROR!!!" 582 "BEQ sub_ff81177c\n" 583 "POP {r4, r5, r6, r7, r8, pc}\n" 586 584 ); 587 585 }; … … 589 587 void __attribute__((naked,noinline)) sub_ff86eedc_my() { // FF87185C 590 588 asm volatile ( 591 " push{r3, r4, r5, r6, r7, r8, r9, lr}\n"592 " movr5, r0\n"593 " ldrr0, =0xff86f16c\n" // was: "add r0, pc, #640"594 " ldrr0, [r0]\n"595 " ldrr9, =0x00038448\n" // was: "[pc, #-1632] ; ff86e894"596 " strr0, [sp]\n"597 " addr4, r9, r5, lsl #7\n"598 " ldrr0, [r4, #108]\n"599 " tstr0, #4\n" // 0x4600 " ldrner0, =0x1\n" // was: "mov ..., #1"601 " bneloc_ff86ef48\n"602 " ldrr0, [r4, #60]\n"603 " ldrr6, =0x00002968\n" // was: "[pc, #-1672] ; ff86e88c"604 " cmpr0, #6\n" // 0x6605 " ldrr8, =0x1\n" // was: "mov ..., #1"606 " ldrr7, =0x0\n" // was: "mov ..., #0"607 " addlspc, pc, r0, lsl #2\n"608 " bloc_ff86efa8\n"609 " bloc_ff86ef40\n"610 " bloc_ff86ef4c\n"611 " bloc_ff86ef4c\n"612 " bloc_ff86ef4c\n"613 " bloc_ff86ef4c\n"614 " bloc_ff86ef64\n"615 " bloc_ff86ef4c\n"589 "PUSH {r3, r4, r5, r6, r7, r8, r9, lr}\n" 590 "MOV r5, r0\n" 591 "LDR r0, =0xff86f16c\n" // was: "add r0, pc, #640" 592 "LDR r0, [r0]\n" 593 "LDR r9, =0x00038448\n" // was: "[pc, #-1632] ; ff86e894" 594 "STR r0, [sp]\n" 595 "ADD r4, r9, r5, lsl #7\n" 596 "LDR r0, [r4, #108]\n" 597 "TST r0, #4\n" // 0x4 598 "LDRNE r0, =0x1\n" // was: "mov ..., #1" 599 "BNE loc_ff86ef48\n" 600 "LDR r0, [r4, #60]\n" 601 "LDR r6, =0x00002968\n" // was: "[pc, #-1672] ; ff86e88c" 602 "CMP r0, #6\n" // 0x6 603 "LDR r8, =0x1\n" // was: "mov ..., #1" 604 "LDR r7, =0x0\n" // was: "mov ..., #0" 605 "ADDLS pc, pc, r0, lsl #2\n" 606 "B loc_ff86efa8\n" 607 "B loc_ff86ef40\n" 608 "B loc_ff86ef4c\n" 609 "B loc_ff86ef4c\n" 610 "B loc_ff86ef4c\n" 611 "B loc_ff86ef4c\n" 612 "B loc_ff86ef64\n" 613 "B loc_ff86ef4c\n" 616 614 "loc_ff86ef40:\n" // jumptable entry 0 617 " ldrr0, =0x0\n" // was: "mov ..., #0"618 " strr7, [r4, #108]\n"615 "LDR r0, =0x0\n" // was: "mov ..., #0" 616 "STR r7, [r4, #108]\n" 619 617 "loc_ff86ef48:\n" 620 " pop{r3, r4, r5, r6, r7, r8, r9, pc}\n"618 "POP {r3, r4, r5, r6, r7, r8, r9, pc}\n" 621 619 "loc_ff86ef4c:\n" // 5 refs, jumptable entries 1-4,6 622 " ldrr0, [r4, #56]\n"623 " blsub_ff86e434\n"624 " cmpr0, #0\n" // 0x0625 " streqr7, [r6, #16]\n"626 " strner8, [r6, #16]\n"627 " bloc_ff86efb4\n"620 "LDR r0, [r4, #56]\n" 621 "BL sub_ff86e434\n" 622 "CMP r0, #0\n" // 0x0 623 "STREQ r7, [r6, #16]\n" 624 "STRNE r8, [r6, #16]\n" 625 "B loc_ff86efb4\n" 628 626 "loc_ff86ef64:\n" // jumptable entry 5 629 " ldrr2, =0x0\n" // was: "mov ..., #0"630 " ldrr1, =0x8000\n" // was: "mov ..., #32768"631 " ldrr0, =0x0\n" // was: "mov ..., #0"632 " strr8, [r6, #16]\n"633 " blsub_ff886bc0\n"634 " movr6, r0\n"635 " movr2, r4\n"636 " ldrr1, =0x8000\n" // was: "mov ..., #32768"637 " blsub_ff941dd8\n"638 " ldrr0, [r9, r5, lsl #7]\n"639 " movr1, r6\n"640 " strr0, [r4, #80]\n"641 " ldrr0, [r4, #4]\n"642 " strr0, [r4, #84]\n"643 " movr0, r5\n"644 " blsub_ff86e578\n"645 " bloc_ff86efb4\n"627 "LDR r2, =0x0\n" // was: "mov ..., #0" 628 "LDR r1, =0x8000\n" // was: "mov ..., #32768" 629 "LDR r0, =0x0\n" // was: "mov ..., #0" 630 "STR r8, [r6, #16]\n" 631 "BL sub_ff886bc0\n" 632 "MOV r6, r0\n" 633 "MOV r2, r4\n" 634 "LDR r1, =0x8000\n" // was: "mov ..., #32768" 635 "BL sub_ff941dd8\n" 636 "LDR r0, [r9, r5, lsl #7]\n" 637 "MOV r1, r6\n" 638 "STR r0, [r4, #80]\n" 639 "LDR r0, [r4, #4]\n" 640 "STR r0, [r4, #84]\n" 641 "MOV r0, r5\n" 642 "BL sub_ff86e578\n" 643 "B loc_ff86efb4\n" 646 644 "loc_ff86efa8:\n" // jumptable default entry 647 " ldrr1, =0x000006c1\n" // was: "[pc, #448] ; ff86f170"648 " ldrr0, =0xff86eb44\n" // was: "sub r0, pc, #1136" *"Mounter.c"649 " blsub_ff81eb14\n"645 "LDR r1, =0x000006c1\n" // was: "[pc, #448] ; ff86f170" 646 "LDR r0, =0xff86eb44\n" // was: "sub r0, pc, #1136" *"Mounter.c" 647 "BL sub_ff81eb14\n" 650 648 "loc_ff86efb4:\n" // 2 refs 651 " movr0, r5\n"652 " blsub_ff86e1d4\n"653 " strbr0, [sp]\n"654 " movr0, r5\n"655 " movr1, sp\n"656 " blsub_ff86edac\n"657 " cmnr0, #1\n" // 0x1658 " bneloc_ff86eff4\n"659 " ldrr1, =0x000384c8\n" // was: "[pc, #-1860] ; ff86e898"660 " addr0, r5, r5, lsl #4\n"661 " strr7, [r1, r0, lsl #2]\n"662 " ldrr1, [r4, #108]\n"663 " ldrr0, =0x0\n" // was: "mov ..., #0"664 " bicr1, r1, #6\n" // 0x6649 "MOV r0, r5\n" 650 "BL sub_ff86e1d4\n" 651 "STRB r0, [sp]\n" 652 "MOV r0, r5\n" 653 "MOV r1, sp\n" 654 "BL sub_ff86edac\n" 655 "CMN r0, #1\n" // 0x1 656 "BNE loc_ff86eff4\n" 657 "LDR r1, =0x000384c8\n" // was: "[pc, #-1860] ; ff86e898" 658 "ADD r0, r5, r5, lsl #4\n" 659 "STR r7, [r1, r0, lsl #2]\n" 660 "LDR r1, [r4, #108]\n" 661 "LDR r0, =0x0\n" // was: "mov ..., #0" 662 "BIC r1, r1, #6\n" // 0x6 665 663 "loc_ff86efec:\n" 666 " strr1, [r4, #108]\n"667 " pop{r3, r4, r5, r6, r7, r8, r9, pc}\n"664 "STR r1, [r4, #108]\n" 665 "POP {r3, r4, r5, r6, r7, r8, r9, pc}\n" 668 666 "loc_ff86eff4:\n" 669 " ldrr1, [r4, #108]\n"670 " ldrr0, =0x1\n" // was: "mov ..., #1"671 " orrr1, r1, #4\n" // 0x4672 " bloc_ff86efec\n"667 "LDR r1, [r4, #108]\n" 668 "LDR r0, =0x1\n" // was: "mov ..., #1" 669 "ORR r1, r1, #4\n" // 0x4 670 "B loc_ff86efec\n" 673 671 ); 674 672 }; -
trunk/platform/ixus130_sd1400/sub/100c/capt_seq.c
r1985 r1993 10 10 void __attribute__((naked,noinline)) capt_seq_task() { 11 11 asm volatile ( 12 " push{r3, r4, r5, r6, r7, r8, r9, lr}\n"13 " ldrr6, =0x00002b9c\n" // was: "[pc, #-1152] ; ff879e9c"14 " ldrr4, =0x00039644\n" // was: "[pc, #-1104] ; ff879ed0"15 " ldrr9, =0x1\n" // was: "mov ..., #1"16 " ldrr7, =0x0\n" // was: "mov ..., #0"12 "PUSH {r3, r4, r5, r6, r7, r8, r9, lr}\n" 13 "LDR r6, =0x00002b9c\n" // was: "[pc, #-1152] ; ff879e9c" 14 "LDR r4, =0x00039644\n" // was: "[pc, #-1104] ; ff879ed0" 15 "LDR r9, =0x1\n" // was: "mov ..., #1" 16 "LDR r7, =0x0\n" // was: "mov ..., #0" 17 17 "loc_ff87a324:\n" 18 " ldrr0, [r6, #4]\n"19 " ldrr2, =0x0\n" // was: "mov ..., #0"20 " movr1, sp\n"21 " blsub_ff8396e4\n"22 " tstr0, #1\n" // 0x123 " beqloc_ff87a350\n"24 " ldrr1, =0x000005b4\n" // was: "[pc, #1352] ; ff87a88c"25 " ldrr0, =0xff879ea0\n" // was: "[pc, #1336] ; ff87a880" **"SsShootTask.c"26 " blsub_ff81eb14\n"27 " blsub_ff81eacc\n"28 " pop{r3, r4, r5, r6, r7, r8, r9, pc}\n"18 "LDR r0, [r6, #4]\n" 19 "LDR r2, =0x0\n" // was: "mov ..., #0" 20 "MOV r1, sp\n" 21 "BL sub_ff8396e4\n" 22 "TST r0, #1\n" // 0x1 23 "BEQ loc_ff87a350\n" 24 "LDR r1, =0x000005b4\n" // was: "[pc, #1352] ; ff87a88c" 25 "LDR r0, =0xff879ea0\n" // was: "[pc, #1336] ; ff87a880" **"SsShootTask.c" 26 "BL sub_ff81eb14\n" 27 "BL sub_ff81eacc\n" 28 "POP {r3, r4, r5, r6, r7, r8, r9, pc}\n" 29 29 "loc_ff87a350:\n" 30 " ldrr0, [sp]\n"31 " ldrr1, [r0]\n"32 " cmpr1, #29\n" // 0x1d33 " addlspc, pc, r1, lsl #2\n"34 " bloc_ff87a5ec\n"35 " bloc_ff87a3dc\n" // 0 jumptable start36 " bloc_ff87a440\n" // 137 " bloc_ff87a47c\n" // 238 " bloc_ff87a490\n" // 339 " bloc_ff87a488\n" // 440 " bloc_ff87a498\n" // 541 " bloc_ff87a4a0\n" // 642 " bloc_ff87a4a8\n" // 743 " bloc_ff87a500\n" // 844 " bloc_ff87a528\n" // 945 " bloc_ff87a50c\n" // 1046 " bloc_ff87a518\n" // 1147 " bloc_ff87a520\n" // 1248 " bloc_ff87a530\n" // 1349 " bloc_ff87a538\n" // 1450 " bloc_ff87a540\n" // 1551 " bloc_ff87a548\n" // 1652 " bloc_ff87a550\n" // 1753 " bloc_ff87a55c\n" // 1854 " bloc_ff87a564\n" // 1955 " bloc_ff87a56c\n" // 2056 " bloc_ff87a574\n" // 2157 " bloc_ff87a57c\n" // 2258 " bloc_ff87a588\n" // 2359 " bloc_ff87a590\n" // 2460 " bloc_ff87a598\n" // 2561 " bloc_ff87a5a0\n" // 2662 " bloc_ff87a5a8\n" // 2763 " bloc_ff87a5b4\n" // 2864 " bloc_ff87a5f8\n" // 2930 "LDR r0, [sp]\n" 31 "LDR r1, [r0]\n" 32 "CMP r1, #29\n" // 0x1d 33 "ADDLS pc, pc, r1, lsl #2\n" 34 "B loc_ff87a5ec\n" 35 "B loc_ff87a3dc\n" // 0 jumptable start 36 "B loc_ff87a440\n" // 1 37 "B loc_ff87a47c\n" // 2 38 "B loc_ff87a490\n" // 3 39 "B loc_ff87a488\n" // 4 40 "B loc_ff87a498\n" // 5 41 "B loc_ff87a4a0\n" // 6 42 "B loc_ff87a4a8\n" // 7 43 "B loc_ff87a500\n" // 8 44 "B loc_ff87a528\n" // 9 45 "B loc_ff87a50c\n" // 10 46 "B loc_ff87a518\n" // 11 47 "B loc_ff87a520\n" // 12 48 "B loc_ff87a530\n" // 13 49 "B loc_ff87a538\n" // 14 50 "B loc_ff87a540\n" // 15 51 "B loc_ff87a548\n" // 16 52 "B loc_ff87a550\n" // 17 53 "B loc_ff87a55c\n" // 18 54 "B loc_ff87a564\n" // 19 55 "B loc_ff87a56c\n" // 20 56 "B loc_ff87a574\n" // 21 57 "B loc_ff87a57c\n" // 22 58 "B loc_ff87a588\n" // 23 59 "B loc_ff87a590\n" // 24 60 "B loc_ff87a598\n" // 25 61 "B loc_ff87a5a0\n" // 26 62 "B loc_ff87a5a8\n" // 27 63 "B loc_ff87a5b4\n" // 28 64 "B loc_ff87a5f8\n" // 29 65 65 "loc_ff87a3dc:\n" // jumptable entry 0 66 " blsub_ff87aca0\n"67 " blshooting_expo_param_override\n" // added68 " blsub_ff8780ac\n"66 "BL sub_ff87aca0\n" 67 "BL shooting_expo_param_override\n" // added 68 "BL sub_ff8780ac\n" 69 69 70 70 // this code added to avoid some incorrect behavior if overrides are used. 71 71 // but it can cause some unexpected side effects. In this case, remove this code! 72 " movr0, #0\n"73 " strr0, [r4, #36]\n" // 0x24 fixes overrides behavior at short shutter press74 " bloc_ff87a5f8\n"72 "MOV r0, #0\n" 73 "STR r0, [r4, #36]\n" // 0x24 fixes overrides behavior at short shutter press 74 "B loc_ff87a5f8\n" 75 75 76 76 // The following compare and conditional branch will always be taken with the above added code 77 77 // So just change it to an unconditional branch, and remove the rest of jumptable entry 0 78 78 /* 79 " ldrr0, [r4, #36]\n"80 " cmpr0, #0\n" // 0x081 " beqloc_ff87a5f8\n"82 " blsub_ff879b80\n"83 " movr5, r0\n"84 " ldrr0, [r4, #36]\n"85 " cmpr0, #0\n" // 0x086 " beqloc_ff87a424\n"87 " ldrr0, =0xc\n" // was: "mov ..., #12"88 " blsub_ff87f174\n"89 " tstr0, #1\n" // 0x190 " strner9, [r6, #16]\n"91 " ldrner0, [r5, #8]\n"92 " orrner0, r0, #1073741824\n" // 0x4000000093 " strner0, [r5, #8]\n"94 " bneloc_ff87a5f8\n"79 "LDR r0, [r4, #36]\n" 80 "CMP r0, #0\n" // 0x0 81 "BEQ loc_ff87a5f8\n" 82 "BL sub_ff879b80\n" 83 "MOV r5, r0\n" 84 "LDR r0, [r4, #36]\n" 85 "CMP r0, #0\n" // 0x0 86 "BEQ loc_ff87a424\n" 87 "LDR r0, =0xc\n" // was: "mov ..., #12" 88 "BL sub_ff87f174\n" 89 "TST r0, #1\n" // 0x1 90 "STRNE r9, [r6, #16]\n" 91 "LDRNE r0, [r5, #8]\n" 92 "ORRNE r0, r0, #1073741824\n" // 0x40000000 93 "STRNE r0, [r5, #8]\n" 94 "BNE loc_ff87a5f8\n" 95 95 "loc_ff87a424:\n" 96 " movr0, r5\n"97 " blsub_ff879e24\n"98 " movr0, r5\n"99 100 " blsub_ff95f120_my\n" // taskcreate_ShutterSoundTask()101 " blcapt_seq_hook_raw_here\n" // added102 103 " tstr0, #1\n" // 0x1104 " strner9, [r6, #16]\n"105 " bloc_ff87a5f8\n"96 "MOV r0, r5\n" 97 "BL sub_ff879e24\n" 98 "MOV r0, r5\n" 99 100 "BL sub_ff95f120_my\n" // taskcreate_ShutterSoundTask() 101 "BL capt_seq_hook_raw_here\n" // added 102 103 "TST r0, #1\n" // 0x1 104 "STRNE r9, [r6, #16]\n" 105 "B loc_ff87a5f8\n" 106 106 */ 107 107 "loc_ff87a440:\n" // jumptable entry 1 108 " ldrr0, [r4, #36]\n"109 " cmpr0, #0\n" // 0x0110 " bneloc_ff87a46c\n"111 " ldrr0, =0xc\n" // was: "mov ..., #12"112 " blsub_ff87f174\n"113 " tstr0, #1\n" // 0x1114 " ldrner0, [sp]\n"115 " ldrner1, =0x1\n" // was: "mov ..., #1"116 " ldrner2, [r0, #12]\n"117 " ldrner0, =0x1\n" // was: "mov ..., #1"118 " bneloc_ff87a4f8\n"108 "LDR r0, [r4, #36]\n" 109 "CMP r0, #0\n" // 0x0 110 "BNE loc_ff87a46c\n" 111 "LDR r0, =0xc\n" // was: "mov ..., #12" 112 "BL sub_ff87f174\n" 113 "TST r0, #1\n" // 0x1 114 "LDRNE r0, [sp]\n" 115 "LDRNE r1, =0x1\n" // was: "mov ..., #1" 116 "LDRNE r2, [r0, #12]\n" 117 "LDRNE r0, =0x1\n" // was: "mov ..., #1" 118 "BNE loc_ff87a4f8\n" 119 119 "loc_ff87a46c:\n" 120 " ldrr0, [sp]\n"121 //" blsub_ff87a714\n"122 " blsub_ff87a714_my\n"120 "LDR r0, [sp]\n" 121 //"BL sub_ff87a714\n" 122 "BL sub_ff87a714_my\n" 123 123 "loc_ff87a474:\n" // 2 refs 124 " strr7, [r4, #36]\n"125 " bloc_ff87a5f8\n"124 "STR r7, [r4, #36]\n" 125 "B loc_ff87a5f8\n" 126 126 "loc_ff87a47c:\n" // jumptable entry 2 127 " ldrr0, =0x1\n" // was: "mov ..., #1"128 " blsub_ff87af44\n"129 " bloc_ff87a5f8\n"127 "LDR r0, =0x1\n" // was: "mov ..., #1" 128 "BL sub_ff87af44\n" 129 "B loc_ff87a5f8\n" 130 130 "loc_ff87a488:\n" // jumptable entry 4 131 " blsub_ff87a8bc\n"132 " bloc_ff87a474\n"131 "BL sub_ff87a8bc\n" 132 "B loc_ff87a474\n" 133 133 "loc_ff87a490:\n" // jumptable entry 3 134 " blsub_ff87ac80\n"135 " bloc_ff87a474\n"134 "BL sub_ff87ac80\n" 135 "B loc_ff87a474\n" 136 136 "loc_ff87a498:\n" // jumptable entry 5 137 " blsub_ff87ac88\n"138 " bloc_ff87a5f8\n"137 "BL sub_ff87ac88\n" 138 "B loc_ff87a5f8\n" 139 139 "loc_ff87a4a0:\n" // jumptable entry 6 140 " blsub_ff87ae54\n"141 " bloc_ff87a504\n"140 "BL sub_ff87ae54\n" 141 "B loc_ff87a504\n" 142 142 "loc_ff87a4a8:\n" // jumptable entry 7 143 " ldrr5, [r0, #12]\n"144 " blsub_ff87ac90\n"145 " movr0, r5\n"146 " blsub_ff95e0f4\n"147 " tstr0, #1\n" // 0x1148 " movr8, r0\n"149 " bneloc_ff87a4e8\n"150 " blsub_ff88c3d4\n"151 " strr0, [r5, #24]\n"152 " movr0, r5\n"153 " blsub_ff95f038\n"154 " movr0, r5\n"155 " blsub_ff95f3d4\n"156 " movr8, r0\n"157 " ldrr0, [r5, #24]\n"158 " blsub_ff88c60c\n"143 "LDR r5, [r0, #12]\n" 144 "BL sub_ff87ac90\n" 145 "MOV r0, r5\n" 146 "BL sub_ff95e0f4\n" 147 "TST r0, #1\n" // 0x1 148 "MOV r8, r0\n" 149 "BNE loc_ff87a4e8\n" 150 "BL sub_ff88c3d4\n" 151 "STR r0, [r5, #24]\n" 152 "MOV r0, r5\n" 153 "BL sub_ff95f038\n" 154 "MOV r0, r5\n" 155 "BL sub_ff95f3d4\n" 156 "MOV r8, r0\n" 157 "LDR r0, [r5, #24]\n" 158 "BL sub_ff88c60c\n" 159 159 "loc_ff87a4e8:\n" 160 " blsub_ff87ac80\n"161 " movr2, r5\n"162 " ldrr1, =0x9\n" // was: "mov ..., #9"163 " movr0, r8\n"160 "BL sub_ff87ac80\n" 161 "MOV r2, r5\n" 162 "LDR r1, =0x9\n" // was: "mov ..., #9" 163 "MOV r0, r8\n" 164 164 "loc_ff87a4f8:\n" 165 " blsub_ff87856c\n"166 " bloc_ff87a5f8\n"165 "BL sub_ff87856c\n" 166 "B loc_ff87a5f8\n" 167 167 "loc_ff87a500:\n" // jumptable entry 8 168 " blsub_ff87aebc\n"168 "BL sub_ff87aebc\n" 169 169 "loc_ff87a504:\n" 170 " blsub_ff8780ac\n"171 " bloc_ff87a5f8\n"170 "BL sub_ff8780ac\n" 171 "B loc_ff87a5f8\n" 172 172 "loc_ff87a50c:\n" // jumptable entry 10 173 " ldrr0, [r4, #84]\n"174 " blsub_ff87b2e8\n"175 " bloc_ff87a5f8\n"173 "LDR r0, [r4, #84]\n" 174 "BL sub_ff87b2e8\n" 175 "B loc_ff87a5f8\n" 176 176 "loc_ff87a518:\n" // jumptable entry 11 177 " blsub_ff87b59c\n"178 " bloc_ff87a5f8\n"177 "BL sub_ff87b59c\n" 178 "B loc_ff87a5f8\n" 179 179 "loc_ff87a520:\n" // jumptable entry 12 180 " blsub_ff87b630\n"181 " bloc_ff87a5f8\n"180 "BL sub_ff87b630\n" 181 "B loc_ff87a5f8\n" 182 182 "loc_ff87a528:\n" // jumptable entry 9 183 " blsub_ff87ac80\n"184 " bloc_ff87a5f8\n"183 "BL sub_ff87ac80\n" 184 "B loc_ff87a5f8\n" 185 185 "loc_ff87a530:\n" // jumptable entry 13 186 " blsub_ff95e30c\n"187 " bloc_ff87a5f8\n"186 "BL sub_ff95e30c\n" 187 "B loc_ff87a5f8\n" 188 188 "loc_ff87a538:\n" // jumptable entry 14 189 " blsub_ff95e520\n"190 " bloc_ff87a5f8\n"189 "BL sub_ff95e520\n" 190 "B loc_ff87a5f8\n" 191 191 "loc_ff87a540:\n" // jumptable entry 15 192 " blsub_ff95e5b8\n"193 " bloc_ff87a5f8\n"192 "BL sub_ff95e5b8\n" 193 "B loc_ff87a5f8\n" 194 194 "loc_ff87a548:\n" // jumptable entry 16 195 " blsub_ff95e688\n"196 " bloc_ff87a5f8\n"195 "BL sub_ff95e688\n" 196 "B loc_ff87a5f8\n" 197 197 "loc_ff87a550:\n" // jumptable entry 17 198 " ldrr0, =0x0\n" // was: "mov ..., #0"199 " blsub_ff95e8f0\n"200 " bloc_ff87a5f8\n"198 "LDR r0, =0x0\n" // was: "mov ..., #0" 199 "BL sub_ff95e8f0\n" 200 "B loc_ff87a5f8\n" 201 201 "loc_ff87a55c:\n" // jumptable entry 18 202 " blsub_ff95ea40\n"203 " bloc_ff87a5f8\n"202 "BL sub_ff95ea40\n" 203 "B loc_ff87a5f8\n" 204 204 "loc_ff87a564:\n" // jumptable entry 19 205 " blsub_ff95ead0\n"206 " bloc_ff87a5f8\n"205 "BL sub_ff95ead0\n" 206 "B loc_ff87a5f8\n" 207 207 "loc_ff87a56c:\n" // jumptable entry 20 208 " blsub_ff95eb90\n"209 " bloc_ff87a5f8\n"208 "BL sub_ff95eb90\n" 209 "B loc_ff87a5f8\n" 210 210 "loc_ff87a574:\n" // jumptable entry 21 211 " blsub_ff87b0bc\n"212 " bloc_ff87a5f8\n"211 "BL sub_ff87b0bc\n" 212 "B loc_ff87a5f8\n" 213 213 "loc_ff87a57c:\n" // jumptable entry 22 214 " blsub_ff87b164\n"215 " blsub_ff8376fc\n"216 " bloc_ff87a5f8\n"214 "BL sub_ff87b164\n" 215 "BL sub_ff8376fc\n" 216 "B loc_ff87a5f8\n" 217 217 "loc_ff87a588:\n" // jumptable entry 23 218 " blsub_ff95e754\n"219 " bloc_ff87a5f8\n"218 "BL sub_ff95e754\n" 219 "B loc_ff87a5f8\n" 220 220 "loc_ff87a590:\n" // jumptable entry 24 221 " blsub_ff95e7c0\n"221 "BL sub_ff95e7c0\n" 222 222 "loc_ff87a594:\n" 223 " bloc_ff87a5f8\n"223 "B loc_ff87a5f8\n" 224 224 "loc_ff87a598:\n" // jumptable entry 25 225 " blsub_ff87d77c\n"226 " bloc_ff87a5f8\n"225 "BL sub_ff87d77c\n" 226 "B loc_ff87a5f8\n" 227 227 "loc_ff87a5a0:\n" // jumptable entry 26 228 " blsub_ff87d804\n"229 " bloc_ff87a5f8\n"228 "BL sub_ff87d804\n" 229 "B loc_ff87a5f8\n" 230 230 "loc_ff87a5a8:\n" // jumptable entry 27 231 " blsub_ff87d860\n"232 " blsub_ff87d820\n"233 " bloc_ff87a5f8\n"231 "BL sub_ff87d860\n" 232 "BL sub_ff87d820\n" 233 "B loc_ff87a5f8\n" 234 234 "loc_ff87a5b4:\n" // jumptable entry 28 235 " ldrr0, =0x1\n" // was: "mov ..., #1"236 " blsub_ff95fd98\n"237 " ldrr0, =0x1\n" // was: "mov ..., #1"238 " blsub_ff95fecc\n"239 " ldrhr0, [r4, #148]\n"240 " cmpr0, #4\n" // 0x4241 " ldrnehr0, [r4]\n" // compiler doesn't like ldrhne, -> ldrneh242 " subneip, r0, #33280\n" // 0x8200243 " subnesip, ip, #42\n" // 0x2a compiler doesn't like subsne, -> subnes244 " bneloc_ff87a5f8\n"245 " blsub_ff87d804\n"246 " blsub_ff87dd74\n"247 " blsub_ff87dc84\n"248 " bloc_ff87a5f8\n"235 "LDR r0, =0x1\n" // was: "mov ..., #1" 236 "BL sub_ff95fd98\n" 237 "LDR r0, =0x1\n" // was: "mov ..., #1" 238 "BL sub_ff95fecc\n" 239 "LDRH r0, [r4, #148]\n" 240 "CMP r0, #4\n" // 0x4 241 "LDRNEH r0, [r4]\n" // compiler doesn't like ldrhne, -> ldrneh 242 "SUBNE ip, r0, #33280\n" // 0x8200 243 "SUBNES ip, ip, #42\n" // 0x2a compiler doesn't like subsne, -> subnes 244 "BNE loc_ff87a5f8\n" 245 "BL sub_ff87d804\n" 246 "BL sub_ff87dd74\n" 247 "BL sub_ff87dc84\n" 248 "B loc_ff87a5f8\n" 249 249 "loc_ff87a5ec:\n" // jumptable default 250 " ldrr1, =0x0000070b\n" // was: "[pc, #668] ; ff87a890"251 " ldrr0, =0xff879ea0\n" // was: "[pc, #648] ; ff87a880" **"SsShootTask.c"252 " blsub_ff81eb14\n"250 "LDR r1, =0x0000070b\n" // was: "[pc, #668] ; ff87a890" 251 "LDR r0, =0xff879ea0\n" // was: "[pc, #648] ; ff87a880" **"SsShootTask.c" 252 "BL sub_ff81eb14\n" 253 253 "loc_ff87a5f8:\n" // 30 refs jumptable entry 29 254 " ldrr0, [sp]\n"255 " ldrr1, [r0, #4]\n"256 " ldrr0, [r6]\n"257 " blsub_ff883f9c\n"258 " ldrr5, [sp]\n"259 " ldrr0, [r5, #8]\n"260 " cmpr0, #0\n" // 0x0261 " ldreqr1, =0x00000132\n" // was: "[pc, #632] ; ff87a894"262 " ld