Código:
include "x.inc"
include "w760.lib.asm"
;w760 R3EF001
;Automatic control of brightness v2
;Much improved version of BrightnessController patch/elf
;Ability to set brightness level in four time intervals
;Ability to decrease brightness level if battery is low
;Special menu with option to enable / disable automatic mode
;Showing icon in Tray, if automatic mode is enabled
;Configuration menu for intervals / brightness levels
;Showing work mode under "Brightness" in menu (example: Automatic : 70%)
;After phone restart, automatic mode is disabled! You need to enable it again in menu
;
;What edited:
;+change some code for proper work on db3150v1
;+Ability to run item with numeric keys
;
;(!) You must add new item "Brightness_AdvancedSettings" in menu.ml
;(!) Dont remove "Settings_Brightness_Id" in menu.ml
;(!) Heapshift(4BBF32F0-4BBF32F2)
;(c) mc_kibel
;(e) farid
;(P) josthyn05
org 0x11C285E0 ; 11A6EA14
DCD aBrightness_adv ; "Brightness_AdvancedSettings"
DCD body+1
org 0x12840470
body:
PUSH {R4,LR}
ADD R4, R0, 0
BL sub_121868AE
CMP R0, 0
BEQ loc_12186892
CMP R0, 1
BEQ loc_1218689E
POP {R4,PC}
loc_12186892:
ADD R0, R4, 0
CMP R0, 0
BEQ loc_1218689C
BL sub_12187138
loc_1218689C:
POP {R4,PC}
loc_1218689E:
MOV R0, 0
BL sub_121870F8
ADD R1, R0, 0
ADD R0, R4, 0
BL sub_121868B2
POP {R4,PC}
sub_121868AE:
LDR R3, off_121868B8
BX R3
sub_121868B2:
LDR R3, off_121868BC
BX R3
db 0
db 0
off_121868B8 dw 0x10E75B70+1 ; 0x116C4FCC+1
off_121868BC dw 0x10E75B30+1 ; 0x116C4F90+1
sub_121868C0:
PUSH {R4,LR}
MOV R1, 0
MOV R3, 5
LSL R4, R0, 0
LDR R0, off_121868DC
MOV R2, 1
PUSH {R0,R1}
LSL R1, R4, 0
MOV R0, 0
MVN R0, R0
BL sub_1218715C
POP {R2-R4,PC}
NOP
off_121868DC dw aSwilib
sub_121868E0:
PUSH {LR}
SUB SP, SP, 0x34
MOV R1, SP
MOV R0, 1
BL sub_1218716C
MOV R0, SP
ADD R0, 0x20
LDRB R0, [R0]
ADD SP, SP, 0x34
POP {PC}
db 0
db 0
sub_121868F8:
PUSH {R0,R1,LR}
MOV R1, SP
MOV R0, 0
BL sub_12187174
MOV R0, SP
LDRB R0, [R0,4]
POP {R2,R3,PC}
sub_12186908:
var_50 = -0x50
var_4C = -0x4C
var_48 = -0x48
var_40 = -0x40
var_3C = -0x3C
var_34 = -0x34
var_30 = -0x30
var_24 = -0x24
var_20 = -0x20
var_1C = -0x1C
var_18 = -0x18
arg_0 = 0
arg_4 = 4
PUSH {R0,R4-R7,LR}
SUB SP, SP, 0x38
LSL R4, R1, 0
LSL R5, R2, 0
LSL R6, R3, 0
MOV R2, 0x38
MOV R1, 0
MOV R0, SP
BL sub_1218717C
LDR R0, off_1218698C
MOV R1, 0
PUSH {R1}
MOVL R3, 0x180
MOV R2, 1
MOVL R1, 0x1B8
ADD R1, R0, R1
MOVL R7, 0x18C
ADD R0, R0, R7
BL sub_12187184
LSL R7, R0, 0
MOV R2, 0x38
ADD R1, SP, 0x54+var_50
BL sub_12187194
LSL R0, R7, 0
BL sub_1218719C
LDR R1, [SP,0x54+var_18]
MOV R0, 0
STR R0, [R1]
LDR R1, [SP,0x54+var_18]
LDR R2, [SP,0x54+var_4C]
STR R2, [R1,4]
LDR R1, [SP,0x54+var_18]
LDR R2, [SP,0x54+var_48]
STR R2, [R1,8]
LDR R1, [SP,0x54+var_4C]
STR R1, [R4]
LDR R1, [SP,0x54+var_40]
STR R1, [R4,4]
LDR R1, [SP,0x54+var_3C]
STR R1, [R4,8]
LDR R1, [SP,0x54+var_40]
STR R1, [R5]
LDR R1, [SP,0x54+var_34]
STR R1, [R5,4]
LDR R1, [SP,0x54+var_30]
STR R1, [R5,8]
LDR R1, [SP,0x54+var_34]
STR R1, [R6]
STR R0, [R6,4]
LDR R0, [SP,0x54+var_24]
STR R0, [R6,8]
LDR R0, [SP,0x54+arg_0]
LDR R1, [SP,0x54+var_1C]
STR R1, [R0]
LDR R0, [SP,0x54+arg_4]
LDR R1, [SP,0x54+var_20]
STR R1, [R0]
ADD SP, SP, 0x40
POP {R4-R7,PC}
off_1218698C dw aBr_intervals_s
loc_12186990:
PUSH {R4,R5,LR}
SUB SP, SP, 0x38
MOV R4, 0
BL sub_121868F8
LSL R5, R0, 0
ADD R1, SP, 4
MOV R0, SP
PUSH {R0,R1}
ADD R3, SP, 0x28
ADD R2, SP, 0x1C
ADD R0, SP, 0x34
ADD R1, SP, 0x10
BL sub_12186908
BL sub_121868E0
LDR R1, [SP,8]
ADD SP, SP, 8
CMP R1, R0
BLT loc_121869C4
LDR R0, [SP,4]
CMP R0, 1
BNE loc_121869C4
LSL R4, R1, 0
B loc_121869FC
loc_121869C4:
LDR R0, [SP,0x30]
CMP R5, R0
BGE loc_121869CE
LDR R4, [SP,0x34]
B loc_121869FC
loc_121869CE:
LDR R0, [SP,8]
CMP R5, R0
BLT loc_121869DE
LDR R0, [SP,0xC]
CMP R5, R0
BGE loc_121869DE
LDR R4, [SP,0x10]
B loc_121869FC
loc_121869DE:
LDR R0, [SP,0x14]
CMP R5, R0
BLT loc_121869EE
LDR R0, [SP,0x18]
CMP R5, R0
BGE loc_121869EE
LDR R4, [SP,0x1C]
B loc_121869FC
loc_121869EE:
LDR R0, [SP,0x20]
CMP R5, R0
BLT loc_121869FC
LDR R0, [SP,0x24]
CMP R0, R5
BGE loc_121869FC
LDR R4, [SP,0x28]
loc_121869FC:
MOV R1, 0
LSL R0, R4, 0
BL sub_121871A4
LDR R2, off_12186A18
LDR R1, dword_12186A14
LDR R0, dword_12186A44
MOV R3, 0
BL sub_121871AC
ADD SP, SP, 0x38
POP {R4,R5,PC}
dword_12186A14 dw 0x2710
off_12186A18 dw loc_12186990+1
sub_12186A1C:
LDR R0, dword_12186A40
PUSH {LR}
MOV R1, 0
BL sub_121871BC
LDR R0, dword_12186A44
LDRH R1, [R0]
CMP R1, 0
BEQ loc_12186A32
BL sub_121871C4
loc_12186A32:
LDR R0, off_12186A3C
BL sub_121871CC
POP {PC}
NOP
off_12186A3C dw aSettings_brigh
dword_12186A40 dw 0xE572
dword_12186A44 dw 0x4BBF32F0 ; 0x2A2B2306 ; heap
dword_12186A48 dw 0x4770
sub_12186A4C:
var_20 = -0x20
var_1C = -0x1C
var_18 = -0x18
arg_0 = 0
PUSH {R0-R2,R4-R7,LR}
LDR R5, [SP,0x20+arg_0]
LSL R4, R3, 0
MOV R0, 0x20
BL sub_121868C0
LSL R6, R0, 0
MOV R2, 0x20
MOV R1, 0
BL sub_1218717C
MOV R1, 0
LDR R3, off_12186AF0
MOV R0, 0
MVN R0, R0
PUSH {R0,R1}
LDR R1, off_12186BAC
MOV R2, 0
LSL R0, R6, 0
BL sub_121871D4
MOV R1, 0
LSL R0, R6, 0
BL sub_121871E4
LDR R2, dword_12186D98
LSL R7, R0, 0
STR R7, [R6,0x18]
LDR R0, [SP,0x28+var_1C]
MOV R1, 0
BL sub_121871EC
LSL R1, R0, 0
LSL R0, R7, 0
BL sub_121871F4
LDR R1, [SP,0x28+var_20]
LSL R0, R7, 0
BL sub_121871FC
LDR R1, [SP,0x28+var_18]
LSL R0, R7, 0
BL sub_12187204
MOV R1, 1
LSL R0, R7, 0
BL sub_1218720C
MOV R1, 0
LSL R0, R7, 0
BL sub_12187214
MOV R1, 0
LSL R0, R7, 0
BL sub_1218721C
MOV R1, 1
LSL R0, R7, 0
BL sub_12187224
LSL R2, R4, 0
MOVL R1, 0xFC0
LSL R0, R7, 0
BL sub_1218722C
LDR R1, dword_12186AF4
LSL R2, R4, 0
LSL R0, R7, 0
BL sub_1218722C
LDR R1, dword_12186AF8
LSL R2, R5, 0
LSL R0, R7, 0
BL sub_1218722C
LSL R0, R7, 0
BL sub_12187234
ADD SP, SP, 0x14
POP {R4-R7,PC}
NOP
off_12186AF0 dw aBrightnesssett
dword_12186AF4 dw 0xFAF
dword_12186AF8 dw 0xFC2
sub_12186AFC:
var_44 = -0x44
var_40 = -0x40
var_3C = -0x3C
var_38 = -0x38
var_34 = -0x34
var_30 = -0x30
var_2C = -0x2C
var_28 = -0x28
var_24 = -0x24
var_20 = -0x20
var_1C = -0x1C
var_18 = -0x18
arg_0 = 0
arg_4 = 4
arg_8 = 8
arg_C = 0xC
arg_10 = 0x10
PUSH {R0,R1,R4-R7,LR}
SUB SP, SP, 0x28
LDR R6, [SP,0x44+arg_10]
LSL R4, R2, 0
LSL R5, R3, 0
MOV R0, 0x51
STR R0, [SP,0x44+var_44]
MOV R0, 0x44
STR R0, [SP,0x44+var_40]
MOV R0, 0xAC
STR R0, [SP,0x44+var_3C]
MOV R0, 0x66
STR R0, [SP,0x44+var_38]
MOV R0, 0x8C
STR R0, [SP,0x44+var_34]
MOV R0, 0x93
STR R0, [SP,0x44+var_30]
MOV R0, 0x7F
STR R0, [SP,0x44+var_2C]
MOV R0, 0xBE
STR R0, [SP,0x44+var_28]
MOV R0, 0x95
STR R0, [SP,0x44+var_24]
MOV R0, 0x8F
STR R0, [SP,0x44+var_20]
MOV R0, 0x20
BL sub_121868C0
LSL R7, R0, 0
MOV R2, 0x20
MOV R1, 0
BL sub_1218717C
MOV R1, 0
MOV R0, 0
MVN R0, R0
PUSH {R0,R1}
LDR R3, [SP,0x4C+var_18]
LDR R1, off_12186BAC
MOV R2, 0
LSL R0, R7, 0
BL sub_121871D4
ADD R0, SP, 0x4C+var_1C
LDRB R0, [R0]
STRB R0, [R7,0x1C]
LSL R0, R5, 0
BL sub_1218723C
LDR R2, dword_12186D98
LSL R5, R0, 0
MOV R1, 0
LSL R0, R4, 0
BL sub_121871EC
LSL R4, R0, 0
LDR R0, [SP,0x4C+arg_C]
MOV R3, 0
LSL R2, R6, 0
ADD R1, SP, 0x4C+var_20
PUSH {R0-R3}
LDR R2, [SP,0x5C+arg_8]
ADD R1, SP, 0x5C+var_34
MOV R0, 1
ADD R3, SP, 0x5C+var_24
PUSH {R0-R3}
LDR R0, [SP,0x6C+arg_0]
ADD R1, SP, 0x6C+var_2C
MOV R2, 2
ADD R3, SP, 0x6C+var_30
PUSH {R0-R3}
LDR R1, [SP,0x7C+arg_4]
ADD R0, SP, 0x7C+var_40
ADD R2, SP, 0x7C+var_3C
PUSH {R0-R2}
LSL R2, R5, 0
LSL R0, R4, 0
ADD R1, SP, 0x88+var_38
PUSH {R0-R2}
ADD R3, SP, 0x94+var_28
MOV R0, 0
ADD R1, SP, 0x94+var_44
LSL R2, R7, 0
BL sub_12187244
ADD SP, SP, 0x50
ADD SP, SP, 0x30
POP {R4-R7,PC}
off_12186BAC dw dword_12186A48+1
loc_12186BB0:
PUSH {R4-R7,LR}
SUB SP, SP, 0x40
LSL R4, R0, 0
MOV R5, 0
MOV R6, 0
CMP R2, 1
BNE loc_12186BC4
LDRH R6, [R1]
SUB R6, 0x30
B loc_12186BF0
loc_12186BC4:
CMP R2, 2
BNE loc_12186BD6
LDRH R0, [R1]
LDRH R1, [R1,2]
MOV R2, 0xA
MUL R0, R2
ADD R0, R0, R1
LDR R1, dword_12186CA8
B loc_12186BEE
loc_12186BD6:
CMP R2, 3
BNE loc_12186BF0
LDRH R0, [R1]
MOV R2, 0x64
MOV R3, 0xA
MUL R0, R2
LDRH R2, [R1,2]
LDRH R1, [R1,4]
MUL R2, R3
ADD R0, R0, R2
ADD R0, R0, R1
LDR R1, dword_12186CAC
loc_12186BEE:
ADD R6, R0, R1
loc_12186BF0:
MOV R2, 0x38
MOV R1, 0
ADD R0, SP, 8
BL sub_1218717C
LDR R0, off_12186EDC
MOVL R1, 0x18C
ADD R1, R0, R1
STR R1, [SP]
MOVL R1, 0x1B8
ADD R0, R0, R1
STR R0, [SP,4]
LSL R0, R5, 0
PUSH {R0}
LDR R1, [SP,8]
LDR R0, [SP,4]
MOVL R3, 0x180
MOV R2, 1
BL sub_12187184
LSL R7, R0, 0
MOV R2, 0x38
ADD R1, SP, 0xC
BL sub_12187194
LSL R0, R7, 0
BL sub_1218719C
STR R5, [SP,0xC]
STR R5, [SP,0x34]
LDRB R0, [R4,0x1C]
ADD SP, SP, 4
CMP R0, 3
BNE loc_12186C40
STR R6, [SP,0xC]
STR R6, [SP,0x14]
B loc_12186C7A
loc_12186C40:
CMP R0, 4
BNE loc_12186C4A
STR R6, [SP,0x18]
STR R6, [SP,0x20]
B loc_12186C7A
loc_12186C4A:
CMP R0, 5
BNE loc_12186C54
STR R6, [SP,0x24]
STR R6, [SP,0x2C]
B loc_12186C7A
loc_12186C54:
CMP R0, 6
BNE loc_12186C5C
STR R6, [SP,0x10]
B loc_12186C7A
loc_12186C5C:
CMP R0, 7
BNE loc_12186C64
STR R6, [SP,0x1C]
B loc_12186C7A
loc_12186C64:
CMP R0, 8
BNE loc_12186C6C
STR R6, [SP,0x28]
B loc_12186C7A
loc_12186C6C:
CMP R0, 9
BNE loc_12186C74
STR R6, [SP,0x34]
B loc_12186C7A
loc_12186C74:
CMP R0, 0xA
BNE loc_12186C7A
STR R6, [SP,0x3C]
loc_12186C7A:
MOV R0, 0
PUSH {R0}
LDR R1, [SP,8]
LDR R0, [SP,4]
MOVL R3, 0x180
MOV R2, 2
BL sub_12187184
LSL R5, R0, 0
MOV R2, 0x38
ADD R1, SP, 0xC
BL sub_12187254
LSL R0, R5, 0
BL sub_1218719C
LSL R0, R4, 0
BL sub_1218725C
ADD SP, SP, 0x44
POP {R4-R7,PC}
NOP
dword_12186CA8 dw 0xFFFFFDF0
dword_12186CAC dw 0xFFFFEB30
loc_12186CB0:
PUSH {LR}
B loc_12186FEC
loc_12186CB4:
PUSH {R4-R6,LR}
LDR R5, off_12186EDC
SUB SP, SP, 0x38
LDR R0, [R0,0x18]
BL sub_12187264
LSL R4, R0, 0
MOV R2, 0x38
MOV R1, 0
MOV R0, SP
BL sub_1218717C
MOV R0, 0
PUSH {R0}
MOVL R3, 0x180
MOV R2, 1
MOVL R0, 0x1B8
ADD R1, R5, R0
SUB R0, 0x2C
ADD R0, R5, R0
BL sub_12187184
LSL R6, R0, 0
MOV R2, 0x38
ADD R1, SP, 4
BL sub_12187194
LSL R0, R6, 0
LDR R6, off_12186F98
BL sub_1218719C
LDR R0, off_12186E74
ADD SP, SP, 4
CMP R4, 0
BNE loc_12186D14
MOV R3, 0x17
MOV R2, 0
MOV R1, 2
PUSH {R0-R3}
PUSH {R6}
LSL R2, R5, 0
LDR R3, [SP,0x18]
ADD R2, 0x18
LSL R1, R5, 0
MOV R0, 3
B loc_12186D46
loc_12186D14:
CMP R4, 1
BNE loc_12186D2E
MOV R3, 0x17
MOV R2, 0
MOV R1, 2
PUSH {R0-R3}
PUSH {R6}
LSL R2, R5, 0
LDR R3, [SP,0x24]
ADD R2, 0x3C
LSL R1, R5, 0
MOV R0, 4
B loc_12186D46
loc_12186D2E:
CMP R4, 2
BNE loc_12186D4C
MOV R3, 0x17
MOV R2, 0
MOV R1, 2
PUSH {R0-R3}
PUSH {R6}
LSL R2, R5, 0
LDR R3, [SP,0x30]
ADD R2, 0x60
LSL R1, R5, 0
MOV R0, 5
loc_12186D46:
BL sub_12186AFC
ADD SP, SP, 0x14
loc_12186D4C:
ADD SP, SP, 0x38
POP {R4-R6,PC}
loc_12186D50:
PUSH {R4,LR}
LSL R4, R0, 0
BL sub_1218726C
LSL R0, R4, 0
BL sub_12187274
CMP R0, 1
BNE loc_12186D94
LSL R0, R4, 0
BL sub_1218727C
LDR R2, dword_12186D98
LSL R1, R0, 0
LDR R0, off_12186EDC
CMP R1, 0
BNE loc_12186D76
ADD R0, 0x18
B loc_12186D88
loc_12186D76:
CMP R1, 1
BNE loc_12186D80
MOV R1, 0
ADD R0, 0x3C
B loc_12186D88
loc_12186D80:
CMP R1, 2
BNE loc_12186D94
MOV R1, 0
ADD R0, 0x60
loc_12186D88:
BL sub_121871EC
LSL R1, R0, 0
LSL R0, R4, 0
BL sub_12187284
loc_12186D94:
MOV R0, 1
POP {R4,PC}
dword_12186D98 dw 0xFFFF
loc_12186D9C:
PUSH {R4-R7,LR}
LDR R5, off_12186EDC
LDR R7, off_12186F98
SUB SP, SP, 0x38
LDR R0, [R0,0x18]
BL sub_12187264
LSL R4, R0, 0
MOV R2, 0x38
MOV R1, 0
MOV R0, SP
BL sub_1218717C
MOV R0, 0
PUSH {R0}
MOVL R3, 0x180
MOV R2, 1
MOVL R0, 0x1B8
ADD R1, R5, R0
SUB R0, 0x2C
ADD R0, R5, R0
BL sub_12187184
LSL R6, R0, 0
MOV R2, 0x38
ADD R1, SP, 4
BL sub_12187194
LSL R0, R6, 0
BL sub_1218719C
LDR R0, off_12186E74
LSL R6, R5, 0
ADD R6, 0x84
ADD SP, SP, 4
CMP R4, 0
BNE loc_12186E00
MOV R3, 0x64
MOV R2, 0xA
MOV R1, 3
PUSH {R0-R3}
PUSH {R7}
ADD R5, 0x98
LDR R3, [SP,0x1C]
LSL R2, R5, 0
LSL R1, R6, 0
MOV R0, 6
B loc_12186E6A
loc_12186E00:
CMP R4, 1
BNE loc_12186E1A
MOV R3, 0x64
MOV R2, 0xA
MOV R1, 3
PUSH {R0-R3}
PUSH {R7}
ADD R5, 0xC4
LDR R3, [SP,0x28]
LSL R2, R5, 0
LSL R1, R6, 0
MOV R0, 7
B loc_12186E6A
loc_12186E1A:
CMP R4, 2
BNE loc_12186E34
MOV R3, 0x64
MOV R2, 0xA
MOV R1, 3
PUSH {R0-R3}
PUSH {R7}
ADD R5, 0xF0
LDR R3, [SP,0x34]
LSL R2, R5, 0
LSL R1, R6, 0
MOV R0, 8
B loc_12186E6A
loc_12186E34:
CMP R4, 3
BNE loc_12186E50
MOV R3, 0x64
MOV R2, 0xA
MOV R1, 3
PUSH {R0-R3}
PUSH {R7}
MOV R0, 0x8E
LDR R3, [SP,0x40]
LSL R0, R0, 1
ADD R2, R5, R0
LSL R1, R6, 0
MOV R0, 9
B loc_12186E6A
loc_12186E50:
CMP R4, 4
BNE loc_12186E70
MOV R3, 0x64
MOV R2, 0xA
MOV R1, 3
PUSH {R0-R3}
PUSH {R7}
MOV R0, 0xA4
LDR R3, [SP,0x48]
LSL R0, R0, 1
ADD R2, R5, R0
LSL R1, R6, 0
MOV R0, 0xA
loc_12186E6A:
BL sub_12186AFC
ADD SP, SP, 0x14
loc_12186E70:
ADD SP, SP, 0x38
POP {R4-R7,PC}
off_12186E74 dw loc_12186BB0+1
loc_12186E78:
PUSH {R4,LR}
LSL R4, R0, 0
BL sub_1218726C
LSL R0, R4, 0
BL sub_12187274
CMP R0, 1
BNE loc_12186ED8
LSL R0, R4, 0
BL sub_1218727C
LDR R2, dword_121870F4
LSL R1, R0, 0
LDR R0, off_12186EDC
CMP R1, 0
BNE loc_12186E9E
ADD R0, 0x98
B loc_12186ECC
loc_12186E9E:
CMP R1, 1
BNE loc_12186EA8
MOV R1, 0
ADD R0, 0xC4
B loc_12186ECC
loc_12186EA8:
CMP R1, 2
BNE loc_12186EB2
MOV R1, 0
ADD R0, 0xF0
B loc_12186ECC
loc_12186EB2:
CMP R1, 3
BNE loc_12186EC0
MOV R1, 0
MOVL R3, 0x11C
ADD R0, R0, R3
B loc_12186ECC
loc_12186EC0:
CMP R1, 4
BNE loc_12186ED8
MOV R1, 0
MOVL R3, 0x148
ADD R0, R0, R3
loc_12186ECC:
BL sub_121871EC
LSL R1, R0, 0
LSL R0, R4, 0
BL sub_12187284
loc_12186ED8:
MOV R0, 1
POP {R4,PC}
off_12186EDC dw aBr_intervals_s
sub_12186EE0:
LDR R0, dword_12186F40
PUSH {R4-R7,LR}
LDR R4, dword_12186F34
LDR R5, dword_12186F38
LDR R6, off_12186F3C
LDR R7, dword_121870F4
MOV R1, 1
BL sub_121871BC
LDR R0, dword_12187134
LDRH R0, [R0]
CMP R0, 0
BNE loc_12186F0E
LDR R1, off_12186F44
MOV R2, 0
MOV R0, 0x64
BL sub_1218728C
LDR R1, dword_12187134
LSL R2, R7, 0
STRH R0, [R1]
MOV R1, 0
B loc_12186F14
loc_12186F0E:
LSL R2, R7, 0
MOV R1, 0
ADD R6, 0x30
loc_12186F14:
LSL R0, R6, 0
BL sub_121871EC
LSL R6, R0, 0
MOV R1, 0
LSL R0, R5, 0
PUSH {R0,R1}
MOV R3, 1
MOV R2, 0
LSL R0, R4, 0
LSL R1, R6, 0
BL sub_12187294
ADD SP, SP, 8
POP {R4-R7,PC}
NOP
dword_12186F34 dw 0x6FFFFFFF
dword_12186F38 dw 0x5DC
off_12186F3C dw aAutomaticModeE
dword_12186F40 dw 0xE572
off_12186F44 dw loc_12186990+1
loc_12186F48:
PUSH {LR}
LDR R0, [R0,0x18]
BL sub_12187264
CMP R0, 0
BNE loc_12186F5A
BL sub_12186EE0
POP {PC}
loc_12186F5A:
LDR R1, off_12186FE4
LDR R3, off_12186F98
CMP R0, 1
BNE loc_12186F72
LDR R0, off_12186F88
LDR R2, off_12186F8C
PUSH {R0}
MOV R0, 3
BL sub_12186A4C
ADD SP, SP, 4
POP {PC}
loc_12186F72:
CMP R0, 2
BNE loc_12186F86
LDR R0, off_12186F90
LDR R2, off_12186F94
PUSH {R0}
ADD R1, 0x14
MOV R0, 5
BL sub_12186A4C
ADD SP, SP, 4
loc_12186F86:
POP {PC}
off_12186F88 dw loc_12186CB4+1
off_12186F8C dw loc_12186D50+1
off_12186F90 dw loc_12186D9C+1
off_12186F94 dw loc_12186E78+1
off_12186F98 dw loc_12186CB0+1
loc_12186F9C:
PUSH {R4,LR}
LSL R4, R0, 0
BL sub_1218726C
LSL R0, R4, 0
BL sub_12187274
CMP R0, 1
BNE loc_12186FDE
LSL R0, R4, 0
BL sub_1218727C
LDR R2, dword_121870F4
LSL R1, R0, 0
LDR R0, off_12186FE4
CMP R1, 0
BNE loc_12186FC2
ADD R0, 0x38
B loc_12186FD2
loc_12186FC2:
CMP R1, 1
BNE loc_12186FCA
MOV R1, 0
B loc_12186FD2
loc_12186FCA:
CMP R1, 2
BNE loc_12186FDE
MOV R1, 0
ADD R0, 0x14
loc_12186FD2:
BL sub_121871EC
LSL R1, R0, 0
LSL R0, R4, 0
BL sub_12187284
loc_12186FDE:
MOV R0, 1
POP {R4,PC}
db 0
db 0
off_12186FE4 dw aIntervals
loc_12186FE8:
PUSH {LR}
NOP
loc_12186FEC:
BL sub_1218725C
POP {PC}
db 0
db 0
sub_12186FF4:
var_64 = -0x64
var_60 = -0x60
var_5C = -0x5C
var_58 = -0x58
var_54 = -0x54
var_50 = -0x50
var_4C = -0x4C
var_48 = -0x48
var_44 = -0x44
var_40 = -0x40
var_3C = -0x3C
var_38 = -0x38
var_34 = -0x34
var_30 = -0x30
var_2C = -0x2C
PUSH {R4-R6,LR}
LDR R4, off_12187094
SUB SP, SP, 0x54
MOVL R0, 0x18C
ADD R5, R4, R0
ADD R0, 0x2C
ADD R6, R4, R0
ADD R2, SP, 0x64+var_2C
LSL R1, R6, 0
LSL R0, R5, 0
BL sub_121872A4
CMP R0, 0
BEQ loc_12187074
MOV R2, 0x38
MOV R1, 0
MOV R0, SP
BL sub_1218717C
MOV R0, 0
PUSH {R0}
MOVL R3, 0x180
MOV R2, 2
LSL R1, R6, 0
LSL R0, R5, 0
BL sub_12187184
LSL R5, R0, 0
MOV R0, 0
STR R0, [SP,0x68+var_64]
MOV R1, 8
STR R1, [SP,0x68+var_60]
MOV R1, 0x1E
STR R1, [SP,0x68+var_5C]
LDR R2, [SP,0x68+var_60]
STR R2, [SP,0x68+var_58]
MOV R2, 0xE
STR R2, [SP,0x68+var_54]
MOV R2, 0x46
STR R2, [SP,0x68+var_50]
LDR R2, [SP,0x68+var_54]
STR R2, [SP,0x68+var_4C]
MOV R2, 0x15
STR R2, [SP,0x68+var_48]
MOV R2, 0x64
STR R2, [SP,0x68+var_44]
LDR R2, [SP,0x68+var_48]
STR R2, [SP,0x68+var_40]
STR R0, [SP,0x68+var_3C]
STR R1, [SP,0x68+var_38]
STR R1, [SP,0x68+var_30]
MOV R0, 1
STR R0, [SP,0x68+var_34]
MOV R2, 0x38
ADD R1, SP, 0x68+var_64
LSL R0, R5, 0
BL sub_12187254
LSL R0, R5, 0
BL sub_1218719C
ADD SP, SP, 4
loc_12187074:
LDR R0, off_1218708C
LDR R3, off_12187158
LDR R2, off_12187090
PUSH {R0}
MOVL R0, 0x16C
ADD R1, R4, R0
MOV R0, 3
BL sub_12186A4C
ADD SP, SP, 0x58
POP {R4-R6,PC}
off_1218708C dw loc_12186F48+1
off_12187090 dw loc_12186F9C+1
off_12187094 dw aBr_intervals_s
loc_12187098:
PUSH {LR}
LDR R0, [R0,0x18]
BL sub_12187264
CMP R0, 0
BNE loc_121870AA
BL sub_12186A1C
POP {PC}
loc_121870AA:
CMP R0, 1
BNE loc_121870B2
BL sub_12186FF4
loc_121870B2:
POP {PC}
loc_121870B4:
PUSH {R4,LR}
LSL R4, R0, 0
BL sub_1218726C
LSL R0, R4, 0
BL sub_12187274
CMP R0, 1
BNE loc_121870EA
LSL R0, R4, 0
BL sub_1218727C
LDR R2, dword_121870F4
LSL R1, R0, 0
LDR R0, off_121870F0
CMP R1, 0
BEQ loc_121870DE
CMP R1, 1
BNE loc_121870EA
MOV R1, 0
ADD R0, 0x10
loc_121870DE:
BL sub_121871EC
LSL R1, R0, 0
LSL R0, R4, 0
BL sub_12187284
loc_121870EA:
MOV R0, 1
POP {R4,PC}
NOP
off_121870F0 dw aManual
dword_121870F4 dw 0xFFFF
sub_121870F8:
LDR R0, dword_12187134
PUSH {R4,LR}
LDR R4, off_12187130
SUB SP, SP, 0x80
LDRH R0, [R0]
CMP R0, 0
BEQ loc_12187110
MOV R0, 0
BL sub_121872AC
LSL R3, R0, 0
B loc_12187118
loc_12187110:
BL sub_121872AC
LSL R3, R0, 0
ADD R4, 0x24
loc_12187118:
LSL R2, R4, 0
MOV R1, 0x3F
MOV R0, SP
BL sub_121872B4
MOV R2, 0x3F
MOV R1, 0
MOV R0, SP
BL sub_121871EC
ADD SP, SP, 0x80
POP {R4,PC}
off_12187130 dw aAutomaticD
dword_12187134 dw 0x4BBF32F0 ; 0x2A2B2306 ; heap
sub_12187138:
LDR R0, off_1218714C
LDR R3, off_12187158
LDR R2, off_12187150
LDR R1, off_12187154
PUSH {LR}
PUSH {R0}
MOV R0, 2
BL sub_12186A4C
POP {R3,PC}
off_1218714C dw loc_12187098+1
off_12187150 dw loc_121870B4+1
off_12187154 dw aBrightnessSett
off_12187158 dw loc_12186FE8+1
sub_1218715C:
PUSH {R3}
LDR R3, off_12187168
MOV R12, R3
POP {R3}
BX R12
NOP
off_12187168 dw 0x10B4F360+1 ; 0x11080DF0+1
sub_1218716C:
LDR R3, off_12187170
BX R3
off_12187170 dw GetBatteryState+1
sub_12187174:
LDR R3, off_12187178
BX R3
off_12187178 dw REQUEST_DATEANDTIME_GET+1
sub_1218717C:
LDR R3, dword_12187180
BX R3
dword_12187180 dw 0x4BB010AC ; 0x2A1C07A0 ; ram
sub_12187184:
PUSH {R3}
LDR R3, off_12187190
MOV R12, R3
POP {R3}
BX R12
NOP
off_12187190 dw _fopen+1
sub_12187194:
LDR R3, off_12187198
BX R3
off_12187198 dw fread+1
sub_1218719C:
var_C = -0xC
LDR R3, off_121871A0
BX R3
off_121871A0 dw fclose+1
sub_121871A4:
LDR R3, off_121871A8
BX R3
off_121871A8 dw Display_SetBrightness+1 ; 0x11625590+1
sub_121871AC:
PUSH {R3}
LDR R3, off_121871B8
MOV R12, R3
POP {R3}
BX R12
NOP
off_121871B8 dw Timer_ReSet+1
sub_121871BC:
LDR R3, off_121871C0
BX R3
off_121871C0 dw SetTrayIcon+1
sub_121871C4:
LDR R3, off_121871C8
BX R3
off_121871C8 dw Timer_Kill+1
sub_121871CC:
LDR R3, off_121871D0
BX R3
off_121871D0 dw Shortcut_Run+1
sub_121871D4:
PUSH {R3}
LDR R3, off_121871E0
MOV R12, R3
POP {R3}
BX R12
NOP
off_121871E0 dw CreateBook+1
sub_121871E4:
LDR R3, off_121871E8
BX R3
off_121871E8 dw CreateListMenu+1
sub_121871EC:
LDR R3, off_121871F0
BX R3
off_121871F0 dw Str2ID+1 ; 0x1168442C+1
sub_121871F4:
LDR R3, off_121871F8
BX R3
off_121871F8 dw GUIObject_SetTitleText+1
sub_121871FC:
LDR R3, off_12187200
BX R3
off_12187200 dw ListMenu_SetItemCount+1
sub_12187204:
LDR R3, off_12187208
BX R3
off_12187208 dw ListMenu_SetOnMessage+1
sub_1218720C:
LDR R3, off_12187210
BX R3
off_12187210 dw ListMenu_SetHotkeyMode+1
sub_12187214:
LDR R3, off_12187218
BX R3
off_12187218 dw ListMenu_SetCursorToItem+1
sub_1218721C:
LDR R3, off_12187220
BX R3
off_12187220 dw ListMenu_SetItemStyle+1
sub_12187224:
LDR R3, off_12187228
BX R3
off_12187228 dw ListMenu_SetItemTextScroll+1
sub_1218722C:
LDR R3, off_12187230
BX R3
off_12187230 dw GUIObject_SoftKeys_SetAction+1
sub_12187234:
LDR R3, off_12187238
BX R3
off_12187238 dw GUIObject_Show+1
sub_1218723C:
LDR R3, off_12187240
BX R3
off_12187240 dw int2strID+1 ; 0x1168426C+1
sub_12187244:
PUSH {R3}
LDR R3, off_12187250
MOV R12, R3
POP {R3}
BX R12
NOP
off_12187250 dw CreateStringInputVA+1
sub_12187254:
LDR R3, off_12187258
BX R3
off_12187258 dw fwrite+1
sub_1218725C:
LDR R3, off_12187260
BX R3
off_12187260 dw FreeBook+1
sub_12187264:
LDR R3, off_12187268
BX R3
off_12187268 dw ListMenu_GetSelectedItem+1
sub_1218726C:
LDR R3, off_12187270
BX R3
off_12187270 dw GUIonMessage_GetBook+1
sub_12187274:
LDR R3, off_12187278
BX R3
off_12187278 dw GUIonMessage_GetMsg+1
sub_1218727C:
LDR R3, off_12187280
BX R3
off_12187280 dw GUIonMessage_GetCreatedItemIndex+1
sub_12187284:
LDR R3, off_12187288
BX R3
off_12187288 dw GUIonMessage_SetMenuItemText+1
sub_1218728C:
LDR R3, off_12187290
BX R3
off_12187290 dw Timer_Set+1
sub_12187294:
PUSH {R3}
LDR R3, off_121872A0
MOV R12, R3
POP {R3}
BX R12
NOP
off_121872A0 dw MessageBox+1
sub_121872A4:
LDR R3, off_121872A8
BX R3
off_121872A8 dw fstat+1
sub_121872AC:
LDR R3, off_121872B0
BX R3
off_121872B0 dw Display_GetBrightness+1
sub_121872B4:
PUSH {R3}
LDR R3, off_121872C0
MOV R12, R3
POP {R3}
BX R12
NOP
off_121872C0 dw snwprintf+1
aSwilib db "SwiLib",0
db 0
aSettings_brigh du "Settings_Brightness_Id",0
db 0
db 0
aBrightnesssett db "BrightnessSettings_Book",0
aBr_intervals_s db "BR_Intervals_Settings",0
db 0
db 0
a1stIntervalEnd du "1st interval end",0
db 0
db 0
a2ndIntervalEnd du "2nd interval end",0
db 0
db 0
a3rdIntervalEnd du "3rd interval end",0
db 0
db 0
aBr_levels_sett db "BR_Levels_Settings",0
db 0
aLevelIn1stInte du "Level in 1st interval",0
aLevelIn2ndInte du "Level in 2nd interval",0
aLevelIn3rdInte du "Level in 3rd interval",0
aLevelIn4thInte du "Level in 4th interval",0
aLowBatteryLeve du "Low battery level",0
aAutomaticMode du "Automatic mode",0
db 0
db 0
aTpaSystemSet_0 du "/tpa/system/settings/",0
aAutobrightness du "AutoBrightness.bin",0
db 0
db 0
aIntervals du "Intervals",0
aBrightnessLeve du "Brightness levels",0
aEnable du "Enable",0
db 0
db 0
aBrightnessSett du "Brightness settings",0
aAutomaticModeE du "Automatic mode enabled",0
db 0
db 0
aAutomaticModeI du "Automatic mode is already enabled",0
aAutomaticD du "Automatic : %d%%",0
db 0
db 0
aManualD du "Manual : %d%%",0
aManual du "Manual",0
db 0
db 0
aAutomatic_0 du "Automatic",0
aBrightness_adv du "Brightness_AdvancedSettings",0
dw 2
dw 0x4BBF32F0 ; 0x2A2B2306 ; heap
dw 0x4BBF32F0 ; 0x2A2B2306 ; heap
Marcadores