root/platform/a410/sub/100f/focushack.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. _MoveFocusLensToDistance
  2. sub_FFE2E338_my
  3. sub_FFE2E368_my
  4. sub_FFE210DC_my

   1 #include "lolevel.h"
   2 #include "platform.h"
   3 #include "core.h"
   4 
   5 /*
   6 #include "asmsafe.h"
   7 */
   8 
   9 void __attribute__((naked,noinline)) _MoveFocusLensToDistance(short* a) //sub_FFD2A438
  10 {
  11  (void)a;
  12  asm volatile (
  13 "                STMFD   SP!, {R4,R5,LR}\n"
  14 "                LDR     R5, =0xC0D8\n"
  15 "                LDR     R4, [R0]\n"
  16 "                MOV     R1, #1\n"
  17 "                LDR     R0, [R5]\n"
  18 "                BL      sub_FFC10974\n"
  19 "                MOV     R0, R4\n"
  20 "                LDR     R1, =0xFFE2DFD0\n"
  21 "                MOV     R2, #0\n"
  22 "                BL      sub_FFE2E338_my\n"
  23 "                LDR     R0, [R5]\n"
  24 "                MOV     R1, #1\n"
  25 "                MOV     R2, #0\n"
  26 "                LDMFD   SP!, {R4,R5,LR}\n"
  27 "                B       sub_FFC107B8\n"
  28  );
  29 }
  30 
  31 void __attribute__((naked,noinline)) sub_FFE2E338_my()
  32 {
  33  asm volatile (
  34 "                STMFD   SP!, {R4-R6,LR}\n"
  35 "                MOV     R5, R1\n"
  36 "                MOV     R6, R2\n"
  37 "                MOV     R4, R0\n"
  38 "                BL      sub_FFE21424\n"
  39 "                MOV     R1, R0,LSL#16\n"
  40 "                MOV     R1, R1,LSR#16\n"
  41 "                MOV     R0, R4\n"
  42 "                MOV     R2, R5\n"
  43 "                MOV     R3, R6\n"
  44 "                LDMFD   SP!, {R4-R6,LR}\n"
  45 "                B       sub_FFE2E368_my\n"
  46  );
  47 }
  48 
  49 
  50 
  51 void __attribute__((naked,noinline)) sub_FFE2E368_my()
  52 {
  53  asm volatile (
  54 "                STMFD   SP!, {R4,R5,LR}\n"
  55 "                SUB     SP, SP, #0xC\n"
  56 "                LDRH    R12, [SP,#0x18-0x12]\n"
  57 "                ORR     R12, R12, R1,LSL#16\n"
  58 "                SUBS    LR, R2, #0\n"
  59 "                MOV     R0, R0,LSL#16\n"
  60 "                MOV     R12, R12,ROR#16\n"
  61 "                MOV     R2, #0\n"
  62 "                STR     R12, [SP,#4]\n"
  63 "                STR     R2, [SP,#0x18-0x10]\n"
  64 "                MOV     R1, R3\n"
  65 "                MOV     R4, R0,ASR#16\n"
  66 "                ADD     R5, SP, #0x18-0x14\n"
  67 "                LDRNE   R3, =0xC0DC\n"
  68 "                STRNE   LR, [R3]\n"
  69 "                LDREQ   R2, =0xFFE2DF98\n"
  70 "                LDREQ   R3, =0xC0DC\n"
  71 "                STREQ   R2, [R3]\n"
  72 "                MOVS    R3, R4,LSL#16\n"
  73 "                LDR     R3, =0xC0E0\n"
  74 "                STR     R1, [R3]\n"
  75 "                MOVEQ   R4, #0xFFFFFFFF\n"
  76 "                BL      sub_FFE20E50\n"
  77 "                LDR     R12, =0xC0E4\n"
  78 "                MOV     R1, R4,LSL#16\n"
  79 "                STR     R0, [R12]\n"
  80 "                MOV     R1, R1,LSR#16\n"
  81 "                LDR     R2, =0xFFE2DF9C\n"
  82 /*
  83 "LDR R3, =0x1850\n" //debug
  84 "STR R5, [R3]\n" //debug
  85 */
  86 "                MOV     R3, #0\n"
  87 "                STR     R5, [SP,#0x18-0x18]\n"
  88 "                BL      sub_FFE210DC_my\n"
  89 "                ADD     SP, SP, #0xC\n"
  90 "                LDMFD   SP!, {R4,R5,PC}\n"
  91  );
  92 }
  93 
  94 void __attribute__((naked,noinline)) sub_FFE210DC_my()
  95 {
  96  asm volatile (
  97 "                STMFD   SP!, {R4-R8,LR}\n"
  98 "                LDR     R12, =0x80598\n"
  99 "                SUB     SP, SP, #4\n"
 100 "                LDR     LR, [R12]\n"
 101 "                MOV     R1, R1,LSL#16\n"
 102 "                CMP     LR, #1\n"
 103 "                MOV     R4, R0\n"
 104 "                MOV     R5, R2\n"
 105 "                MOV     R8, R3\n"
 106 "                MOV     R6, R1,ASR#16\n"
 107 "                LDR     R7, [SP,#0x1C]\n"
 108 "                BNE     loc_FFE21124\n"
 109 "                CMP     R5, #0\n"
 110 "                BEQ     loc_FFE21280\n"
 111 "                MOV     R0, R8\n"
 112 "                MOV     LR, PC\n"
 113 "                MOV     PC, R5\n"
 114 "                B       loc_FFE21280\n"
 115 "loc_FFE21124:\n"
 116 "                LDR     R3, =0xBACC\n"
 117 "                LDR     R2, [R3]\n"
 118 "                CMP     R2, #0\n"
 119 "                BNE     loc_FFE21140\n"
 120 "                LDR     R0, =0xffe20ed8\n"
 121 "                MOV     R1, #0xC8\n"
 122 "                BL      sub_FFC03B58\n"
 123 "loc_FFE21140:\n"
 124 "                MOV     R0, R4\n"
 125 "                BL      sub_FFE224CC\n"
 126 "                CMP     R0, #0\n"
 127 "                BNE     loc_FFE2115C\n"
 128 "                LDR     R0, =0xffe20ed8\n"
 129 "                MOV     R1, #0xC9\n"
 130 "                BL      sub_FFC03B58\n"
 131 "loc_FFE2115C:\n"
 132 "                CMP     R7, #0\n"
 133 "                BNE     loc_FFE21170\n"
 134 "                LDR     R0, =0xffe20ed8\n"
 135 "                MOV     R1, #0xCA\n"
 136 "                BL      sub_FFC03B58\n"
 137 "loc_FFE21170:\n"
 138 "                LDR     R3, =0xBAD0\n"
 139 "                LDR     R2, [R3]\n"
 140 "                CMP     R2, #0\n"
 141 "                BEQ     loc_FFE211A0\n"
 142 "                BL      sub_FFE1BA1C\n"
 143 "                LDRH    R3, [R7]\n" //we get 0xd16 here on the first call (after switchover from af mode) when no zoom was used
 144 "                MOV     R0, R0,LSL#16\n"
 145 "                CMP     R3, R0,LSR#16\n" //while it should be <=0x9c4
 146 /*
 147 "LDR R1, =0x1850\n" //debug
 148 "STR R3, [R1, #4]\n" //debug
 149 "STR R0, [R1, #8]\n" //debug
 150 "STR R7, [R1, #0xc]\n" //debug
 151 */
 152 "                B       loc_FFE211A0\n" //originally BLS
 153 "                LDR     R0, =0xffe20ed8\n"
 154 "                MOV     R1, #0xCC\n"
 155 "                BL      sub_FFC03B58\n"
 156 "loc_FFE211A0:\n"
 157 "                LDR     R3, =0x805B0\n"
 158 "                MOV     R1, #0\n"
 159 "                LDR     R0, [R3]\n"
 160 "                BL      sub_FFC11B80\n"
 161 "                BL      sub_FFE1DF60\n"
 162 "                CMP     R0, #0\n"
 163 "                BNE     loc_FFE211C8\n"
 164 "                LDR     R0, =0xffe20ed8\n"
 165 "                MOV     R1, #0xCF\n"
 166 "                BL      sub_FFC03B58\n"
 167 "loc_FFE211C8:\n"
 168 "                MOV     R1, SP\n"
 169 "                ADD     R0, SP, #0x1C-0x1A\n"
 170 "                MOV     R2, #0\n"
 171 "                BL      sub_FFE11984\n"
 172 "                MOV     R0, R0,LSL#16\n"
 173 "                MOV     R4, R0,LSR#16\n"
 174 "                MOV     R1, R4\n"
 175 "                LDRSH   R0, [SP,#0x1C-0x1A]\n"
 176 "                LDRH    R2, [SP,#0x1C-0x1C]\n"
 177 "                BL      sub_FFE23B2C\n"
 178 "                MOV     R3, R6,LSL#16\n"
 179 "                MOV     R0, R0,LSL#16\n"
 180 "                MOV     R1, R3,LSR#16\n"
 181 "                MOV     R0, R0,LSR#16\n"
 182 "                CMP     R1, R0\n"
 183 "                MOVCS   R0, R1\n"
 184 "                MOV     R2, R4\n"
 185 "                LDRSH   R1, [SP,#0x1C-0x1A]\n"
 186 "                LDRH    R3, [SP,#0x1C-0x1C]\n"
 187 "                BL      sub_FFE23818\n"
 188 "                MOV     R0, R0,LSL#16\n"
 189 "                MOV     R6, R0,ASR#16\n"
 190 "                LDR     R12, =0x8059C\n"
 191 "                LDR     R4, [R12]\n"
 192 "                LDR     LR, =0x80594\n"
 193 "                LDR     R2, =0x80590\n"
 194 "                MOV     R3, #1\n"
 195 "                ADD     R4, R4, #1\n"
 196 "                MOV     R1, R8\n"
 197 "                STR     R3, [R2]\n"
 198 "                MOV     R0, R5\n"
 199 "                STR     R3, [LR]\n"
 200 "                STR     R4, [R12]\n"
 201 "                BL      sub_FFE224E8\n"
 202 "                LDR     R5, =0x805A0\n"
 203 "                LDR     R2, =0x805B0\n"
 204 "                LDR     R3, =0xFFE22594\n"
 205 "                LDR     R0, [R2]\n"
 206 "                STR     R3, [R5]\n"
 207 "                BL      sub_FFC11D68\n"
 208 "                BL      sub_FFC8C260\n"
 209 "                MOV     R0, R6\n"
 210 "                LDR     R1, [R5]\n"
 211 "                MOV     R2, R4\n"
 212 "                MOV     R3, R7\n"
 213 "                BL      sub_FFE1DC38\n"
 214 "loc_FFE21280:\n"
 215 "                ADD     SP, SP, #4\n"
 216 "                LDMFD   SP!, {R4-R8,PC}\n"
 217  );
 218 }

/* [<][>][^][v][top][bottom][index][help] */