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