Código:
;C510 SW-R1HA035
; Ability to require a password to read any message
; Add the line "ViewMessageMode_Id" your menu.ml
; Can choose the following options in the window:
; Always - Request password anywhere
; In trays - Prompts for the password only if you are in trays posts
; Activity Menu - Prompts for the password just to be on the menu of activities
; Never - never prompt for password, messages are usually read
; (!) To enter the window is proved necessary to write the password of the mobile
; For safety
; If you try to access the window without knowing the key
; The book is blocked and have to restart the mobile to enter the ventata
;Yea, so all functions mobility will continue to operate normally
; © K790alex
;(p) enoc
;V.3.0
;
;Add tol Menu.ml
;
;<element id="ViewMessageMode_Id">
;<label type="name"><text>Protec. mensajes</text>
;</label><link type="internal" />
;</element>
;
;port from w705 r1ga031
include "x.inc"
include "c510_r1ha035.lib.asm"
;---------------HOOK 1---------------------
org 0x15955E20 ;0x159DF098
dw dword_15D8D3A0
;---------------HOOK 2---------------------
org 0x15B2AF0C ;0x15B08AD0
dw aViewmessagemod
dw loc_15D8D468+1
;---------------NEWCODE---------------------
org 0x15D2D760 ;0x15D8D3A0
dword_15D8D3A0 dw 0xF
dw loc_15D8D3B8+1
dw 2
dw loc_15D8D40A+1
dw 0
dw 0
loc_15D8D3B8:
PUSH {R4,LR}
ADD R4, R1, 0
BL sub_15D8D6E8
CMP R1, 0
BEQ loc_15D8D3D2
CMP R1, 1
BEQ loc_15D8D3EE
CMP R1, 2
BEQ loc_15D8D3DA
CMP R1, 3
BEQ loc_15D8D3E6
POP {R4,PC}
loc_15D8D3D2:
ADD R0, R4, 0
BL sub_15D8D3F8
POP {R4,PC}
loc_15D8D3DA:
LDR R1, off_15D8D418
BLX R1
LDR R1, off_15D8D41C
BLX R1
CMP R0, 1
loc_15D8D3E4:
BEQ loc_15D8D3D2
loc_15D8D3E6:
ADD R0, R4, 0
BL sub_15D8D40C
POP {R4,PC}
loc_15D8D3EE:
LDR R1, off_15D8D418
BLX R1
CMP R0, 0
B loc_15D8D3E4
loc_15D8D3F6:
ADD R0, R1, 0
sub_15D8D3F8:
PUSH {R4,LR}
LDR R1, off_15D8D420
BLX R1
MOV R3, 0
MOV R2, 2
MOV R1, 0
LDR R4, off_15D8D424
BLX R4
POP {R4,PC}
loc_15D8D40A:
ADD R0, R1, 0
sub_15D8D40C:
PUSH {LR}
adr R1, off_15D8D428
LDR R2, off_15D8D460
BLX R2
POP {PC}
NOP
off_15D8D418 dw 0x142CDF98+1 ;0x142D24F4+1 ;loc_
off_15D8D41C dw 0x142188F0+1 ;0x1421C3B8+1 ;loc_
off_15D8D420 dw BookObj_GetBookID
off_15D8D424 dw 0x14EB9698+1 ;0x14EEC470+1 ;sub_
off_15D8D428 dw 0x15955C1C ;0x159DEE94 aMsg_ui_viewmes "MSG_UI_ViewMessage_Page"
dw 0
dw 0x15955DD8 ;0x159DF050 ;loc
sub_15D8D434:
PUSH {LR}
BL sub_15D8D47C
CMP R0, 0
BNE loc_15D8D44A
BL sub_15D8D4A0
adr R1, off_15D8D454
LDR R2, off_15D8D460
BLX R2
POP {PC}
loc_15D8D44A:
MOV R1, 0
LDR R2, off_15D8D464
BLX R2
POP {PC}
NOP
off_15D8D454 dw aViewmessagem_0
dw 0
dw dword_15D8D668
off_15D8D460 dw BookObj_GotoPage
off_15D8D464 dw BookObj_SetFocus
loc_15D8D468:
PUSH {LR}
LDR R1, off_15D8D478
BLX R1
CMP R0, 0
BNE locret_15D8D476
BL sub_15D8D434
locret_15D8D476:
POP {PC}
off_15D8D478 dw 0x1431E418+1 ;0x143230C0+1 ;loc
sub_15D8D47C:
PUSH {LR}
adr R0, loc_15D8D48C
ADD R0, 1
LDR R1, off_15D8D488
BLX R1
POP {PC}
off_15D8D488 dw FindBook
loc_15D8D48C:
adr R1, loc_15D8D504
ADD R1, 1
LDR R0, [R0,4]
CMP R0, R1
BNE loc_15D8D49A
MOV R0, 1
BX LR
loc_15D8D49A:
MOV R0, 0
BX LR
NOP
sub_15D8D4A0:
PUSH {R4-R6,LR}
adr R5, aMsguipass_c
ADD R0, R5, 0
MOV R1, 0
PUSH {R0,R1}
MOV R3, 5
MOV R2, 1
MOV R1, 0x1C
MOV R0, 0
MVNS R0, R0
PUSH {R3}
LDR R3, dword_15D8D538
MOV R12, R3
POP {R3}
BLX R12
ADD R4, R0, 0
ADD SP, SP, 8
BEQ locret_15D8D500
MOV R1, 0
MVNS R0, R1
PUSH {R0,R1}
ADD R3, R5, 0
ADD R3, 0xC
MOV R2, 0
adr R1, loc_15D8D504
ADD R1, 1
ADD R0, R4, 0
PUSH {R3}
LDR R3, off_15D8D53C
MOV R12, R3
POP {R3}
BLX R12
ADD SP, SP, 8
CMP R0, 0
BNE loc_15D8D4FA
ADD R1, R4, 0
MOV R3, 0
ADD R2, R5, 0
MOV R0, 0
PUSH {R3}
LDR R3, dword_15D8D540
MOV R12, R3
POP {R3}
BLX R12
POP {R4-R6,PC}
loc_15D8D4FA:
MOV R0, 0
STR R0, [R4,0x18]
ADD R0, R4, 0
locret_15D8D500:
POP {R4-R6,PC}
NOP
loc_15D8D504:
PUSH {R4,LR}
ADD R4, R0, 0
LDR R0, [R0,0x18]
CMP R0, 0
BEQ locret_15D8D516
LDR R1, off_15D8D640
BLX R1
MOV R0, 0
STR R0, [R4,0x18]
locret_15D8D516:
POP {R4,PC}
aMsguipass_c db "MsgUiPass.c",0
aViewmessagem_1 db "ViewMessageModeBook",0
dword_15D8D538 dw 0x4BA32698 ;0x4BA3279C memalloc "funciones del elfpack"
off_15D8D53C dw CreateBook
dword_15D8D540 dw 0x4BA326C0 ;0x4BA327C4 memfree "funciones del elfpack"
loc_15D8D544:
PUSH {R4-R6,LR}
SUB SP, SP, 0x10
ADD R4, R1, 0
ADD R0, R4, 0
LDR R1, off_15D8D644
BLX R1
CMP R0, 0
BEQ loc_15D8D5C6
STR R0, [R4,0x18]
MOV R1, 4
LDR R2, off_15D8D64C
BLX R2
BL sub_15D8D6E8
LDR R0, [R4,0x18]
LDR R2, off_15D8D648
BLX R2
adr R0, aRequestPassword
BL sub_15D8D6CC
ADD R1, R0, 0
LDR R0, [R4,0x18]
LDR R2, off_15D8D650
BLX R2
adr R6, aAlways
ADD R0, R6, 0
BL sub_15D8D6CC
STR R0, [SP]
ADD R0, R6, 0
ADD R0, 8
BL sub_15D8D6CC
STR R0, [SP,4]
ADD R0, R6, 0
ADD R0, 0x14
BL sub_15D8D6CC
STR R0, [SP,8]
ADD R0, R6, 0
ADD R0, 0x28
BL sub_15D8D6CC
STR R0, [SP,0xC]
LDR R0, [R4,0x18]
MOV R1, SP
MOV R2, 4
LDR R3, off_15D8D654
BLX R3
MOVL R5, 0xFC0
LDR R0, [R4,0x18]
ADD R1, R5, 0
LDR R2, off_15D8D664
LDR R3, off_15D8D658
BLX R3
LDR R0, [R4,0x18]
ADD R1, R5, 2
adr R2, loc_15D8D5FC
ADD R2, 1
LDR R3, off_15D8D658
BLX R3
LDR R0, [R4,0x18]
LDR R1, off_15D8D65C
BLX R1
loc_15D8D5C6:
ADD SP, SP, 0x10
POP {R4-R6,PC}
NOP
aAlways db "Always",0
db 0
aIntrays db "In trays",0
db 0
db 0
db 0
aActvmenu db "Actv menu",0
db 0
; db 0
; db 0
; db 0
aNever db "never",0
db 0
db 0
; db 0
; db 0
align 4
loc_15D8D5FC:
PUSH {R4,R5,LR}
ADD R4, R0, 0
ADD R0, R1, 0
LDR R2, off_15D8D660
BLX R2
SUB SP, SP, 4
STR R0, [SP]
MOV R0, 0
PUSH {R0}
adr R1, aMsgpass_dat
LDR R0, off_15D8D740
MOV R2, 2
MOVL R3, 0x180
PUSH {R3}
LDR R3, off_15D8D718
MOV R12, R3
POP {R3}
BLX R12
ADD R5, R0, 0
ADD SP, SP, 4
MOV R2, 1
MOV R1, SP
LDR R3, off_15D8D71C
BLX R3
ADD SP, SP, 4
ADD R0, R5, 0
LDR R1, off_15D8D724
BLX R1
ADD R0, R4, 0
LDR R1, off_15D8D664
BLX R1
POP {R4,R5,PC}
NOP
align 4
off_15D8D640 dw GUIObject_Destroy
off_15D8D644 dw CreateOneOfMany
off_15D8D648 dw OneOfMany_SetChecked
off_15D8D64C dw OneOfMany_SetItemCount
off_15D8D650 dw GUIObject_SetTitleText
off_15D8D654 dw OneOfMany_SetTexts
off_15D8D658 dw GUIObject_SoftKeys_SetAction
off_15D8D65C dw GUIObject_Show
off_15D8D660 dw OneOfMany_GetSelected
off_15D8D664 dw FreeBook
dword_15D8D668 dw 0xF
dw loc_15D8D3F6+1
dw 2
dw loc_15D8D544+1
dw 0
dw 0
aViewmessagemod du "ViewMessageMode_Id",0
db 0
db 0
aViewmessagem_0 db "ViewMessageModeMainPage",0
aRequestPassword db "Request Password",0
align 4
sub_15D8D6CC:
PUSH {R1-R5,LR}
ADD R4, R0, 0
MOV R0, 0
PUSH {R0}
ADD R3, R0, 0
MOV R1, 6
MOV R2, 0x63
ADD R0, R4, 0
LDR R5, off_15D8D6E4
BLX R5
ADD SP, SP, 4
POP {R1-R5,PC}
off_15D8D6E4 dw 0x141818E4+1 ;0x14184D2C+1 ;sub
align 4
sub_15D8D6E8:
var_24 = -0x24
PUSH {R0,R2-R7,LR}
MOV R0, 0
PUSH {R0}
adr R1, aMsgpass_dat
LDR R0, off_15D8D740
MOV R2, 1
MOVL R3, 0x180
PUSH {R3}
LDR R3, off_15D8D718
MOV R12, R3
POP {R3}
BLX R12
ADD R4, R0, 0
MOV R2, 1
MOV R1, SP
LDR R3, off_15D8D720
BLX R3
ADD R0, R4, 0
LDR R1, off_15D8D724
BLX R1
LDR R1, [SP,0x24+var_24]
ADD SP, SP, 4
POP {R0,R2-R7,PC}
off_15D8D718 dw _fopen
off_15D8D71C dw fwrite
off_15D8D720 dw fread
off_15D8D724 dw fclose
aMsgpass_dat du "MsgPass.dat",0
off_15D8D740 dw 0x15A85F54 ;0x15A61534 aTpaSystemMes_0 "/tpa/system/messaging"
Marcadores