Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;W595 SW-R3EF001
- ;Quick access to phone functions via the numeric keys 2-9 in standby mode
- ;Options hung over "'pressing on GE' - Options .-- Change"
- ;Ver. 3
- ;(!) Shorcut add fix
- ;(!) HeapShift
- ;(c) Sic, Joker XT
- ;(p) jamesbond22
- include "x.inc"
- include "lib\w902_r3eg004.asm"
- ;evtlst_PB_UI_ExtFunc_CheckAccess
- org 0x11B8BB40;11b65d50
- ;pg_PB_UI_ExtFunc_CheckAccess__0xF+1
- dw newcode+1
- dw 0
- org 0x10D994C2;10d91146
- blx R2
- org 0x10D99578;10d911fc
- dw _sett1+1
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;patchbody;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- org 0x127AADC0;12795b20
- newcode:
- PUSH {R0-R7,LR}
- BL sub_12795B3E
- ADDS R4, R0, 0
- LDR R0, dword_12795F28
- LDR R0, [R0]
- MOVS R1, 0xF2
- SUBS R4, R4, R1
- LSLS R4, R4, 2
- LDR R0, [R0,R4]
- CMP R0, 0
- BEQ locret_12795B3C
- LDR R7, off_12795B5C
- BLX R7 ; void Shortcut_Run( wchar_t* shortcut_name );
- locret_12795B3C:
- POP {R0-R7,PC}
- sub_12795B3E:
- PUSH {R1-R7,LR}
- LDR R7, off_12795B50
- BLX R7 ; BOOK* Find_StandbyBook( void );
- LDR R7, off_12795B54
- BLX R7 ; GUI* SBY_GetMainInput( BOOK* StandBy );
- LDR R7, off_12795B58
- BLX R7 ; char* MainInput_getPNUM( GUI* );
- LDRB R0, [R0]
- POP {R1-R7,PC}
- ; ---------------------------------------------------------------------------
- off_12795B50 dw Find_StandbyBook+1
- off_12795B54 dw SBY_GetMainInput+1
- off_12795B58 dw MainInput_getPNUM+1
- off_12795B5C dw Shortcut_Run+1
- sub_12795B60:
- PUSH {R1-R7,LR}
- MOVS R0, 0x21
- BL sub_12795D64
- ADDS R6, R0, 0
- MOVS R1, 0
- MOVS R2, 0x21
- LDR R7, off_12795F50
- BLX R7
- LDR R0, dword_12795F28
- STR R6, [R0]
- ADDS R0, R6, 0
- POP {R1-R7,PC}
- sub_12795B7A:
- PUSH {R1-R7,LR}
- LDR R0, dword_12795F28
- LDR R0, [R0]
- CMP R0, 0
- BNE locret_12795B88
- BL sub_12795B60
- locret_12795B88:
- POP {R1-R7,PC}
- _sett1:
- LDR R2, off_12795F4C
- MOVS R3, 6
- PUSH {R0-R7,LR}
- BL sub_12795B7A
- ADR R7, loc_12795BBC
- BLX R7
- ADDS R2, R5, 0
- MOVS R1, 0
- MOVS R0, 4
- PUSH {R0-R2}
- MOVLS R0, 0x2200
- ADDS R0, 0xDB
- ADDS R3, R1, 0
- ADR R2, loc_12795D94
- ADDS R2, 1
- ADDS R1, R5, 0
- LDR R7, off_12795F30
- BLX R7
- LDR R7, off_12795F34
- BLX R7
- ADD SP, SP, 0xC
- POP {R0-R7,PC}
- align 4
- ;--------------------------------
- code32
- loc_12795BBC:
- STMFD SP!, {R4-R10,LR}
- LDR R4, off_12795F7C
- SUB SP, SP, 0x1C
- MOV R5, R0
- MOV R2, SP
- ADR R1, aQais_dat ; "qais.dat"
- MOV R0, R4
- MOV LR, PC
- LDR PC, off_12795F6C ; int fstat( const wchar_t* path, const wchar_t* fname, FSTAT* fstat_stuct );
- CMP R0, 0
- MOV R0, 0
- STMFD SP!, {R0}
- MOV R3, 0x180
- BMI loc_12795CB8
- MOV R2, 4
- ADR R1, aQais_dat ; "qais.dat"
- MOV R0, R4
- MOV LR, PC
- LDR PC, off_12795F5C ; int _fopen( const wchar_t* filpath, const wchar_t* filname, unsigned int mode, unsigned int rights, FILELISTITEM* destfname);
- MOV R8, R0
- LDR R0, [SP,0xC]
- ADR R12, sub_12795D64
- ADD R12, R12, 1
- BLX R12
- LDR R2, [SP,0xC]
- MOV R6, R0
- MOV R7, R6
- MOV R1, R6
- MOV R0, R8
- MOV LR, PC
- LDR PC, off_12795F68 ; int fread( int file, void* ptr, int size );
- MOV R0, R8
- MOV LR, PC
- LDR PC, off_12795F60 ; int fclose( int file );
- MOV R8, 0
- ADD SP, SP, 4
- loc_12795C4C:
- MOV R0, R6
- MOV LR, PC
- LDR PC, off_12795F70 ; int wstrlen( const wchar_t* wstr );
- MOV R9, R0
- ADR R1, aNone ; "none"
- MOV R0, R6
- MOV LR, PC
- LDR PC, off_12795F74 ; int wstrcmp( const wchar_t* wstr1, const wchar_t* wstr2 );
- CMP R0, 0
- STREQ R0, [R5,R8,LSL 2]
- BEQ loc_12795CA0
- ADD R0, R9, 1
- MOV R0, R0,LSL 1
- ADR R12, sub_12795D64
- ADD R12, R12, 1
- BLX R12
- MOV R10, R0
- MOV R1, R6
- MOV LR, PC
- LDR PC, off_12795F78 ; wchar_t* wstrcpy( wchar_t* dest, const wchar_t* source );
- STR R10, [R5,R8,LSL 2]
- loc_12795CA0:
- ADD R0, R6, R9,LSL 1
- ADD R6, R0, 2
- ADD R8, R8, 1
- CMP R8, 8
- BNE loc_12795C4C
- B loc_12795D40
- loc_12795CB8:
- ADD R2, R3, 0x82
- ADR R1, aQais_dat ; "qais.dat"
- MOV R0, R4
- MOV LR, PC
- LDR PC, off_12795F5C ; int _fopen( const wchar_t* filpath, const wchar_t* filname, unsigned int mode, unsigned int rights, FILELISTITEM* destfname);
- MOV R5, R0
- MOV R0, 0x50
- ADR R12, sub_12795D64
- ADD R12, R12, 1
- BLX R12
- MOV R6, R0
- MOV R2, 0x50
- MOV R1, 0
- MOV LR, PC
- LDR PC, off_12795F50
- MOV R7, R6
- MOV R8, 0
- ADD SP, SP, 4
- loc_12795D00:
- ADR R1, aNone ; "none"
- MOV R0, R6
- MOV LR, PC
- LDR PC, off_12795F78 ; wchar_t* wstrcpy( wchar_t* dest, const wchar_t* source );
- ADD R6, R6, 0xA
- ADD R8, R8, 1
- CMP R8, 8
- BNE loc_12795D00
- MOV R2, 0x50
- MOV R1, R7
- MOV R0, R5
- MOV LR, PC
- LDR PC, off_12795F64 ; int fwrite( int file, const void* ptr, int size );
- MOV R0, R5
- MOV LR, PC
- LDR PC, off_12795F60 ; int fclose( int file );
- loc_12795D40:
- MOV R0, R7
- ADR R12, sub_12795D80
- ADD R12, R12, 1
- BLX R12
- ADD SP, SP, 0x1C
- LDMFD SP!, {R4-R10,PC}
- aNone du "none",0
- align 4
- ;-----------------------------------------
- code16
- sub_12795D64:
- PUSH {R1-R7,LR}
- ADDS R1, R0, 0
- MOVS R2, 0
- MOVS R0, 0
- PUSH {R0,R2}
- MOVS R3, 5
- MOVS R2, 1
- MOVS R0, 0
- MVNS R0, R0
- LDR R7, dword_12795F54
- BLX R7
- ADD SP, SP, 8
- POP {R1-R7,PC}
- align 4
- sub_12795D80:
- PUSH {R1-R7,LR}
- CMP R0, 0
- BEQ locret_12795D92
- MOVS R3, 0
- MOVS R2, 0
- ADDS R1, R0, 0
- MOVS R0, 0
- LDR R7, dword_12795F58
- BLX R7
- locret_12795D92:
- POP {R1-R7,PC}
- loc_12795D94:
- PUSH {R0-R7,LR}
- BL sub_12795B3E
- ADDS R1, R0, 0
- CMP R1, 0xF1
- BLE locret_12795DD2
- CMP R1, 0xFA
- BGE locret_12795DD2
- LDR R0, dword_12795F28
- LDR R0, [R0]
- MOVS R2, 0xF2
- SUBS R1, R1, R2
- LSLS R1, R1, 2
- MOVS R2, 0x20
- STRB R1, [R0,R2]
- MOVS R1, 0
- MVNS R1, R1
- MOVS R0, 1
- LDR R7, off_12795F38
- BLX R7 ; BOOK* MenuBook_Desktop( int mode, int BookID );
- ADDS R6, R0, 0
- ADR R2, loc_12795DD4
- ADDS R2, 1
- MOVS R1, 0
- LDR R7, off_12795F3C
- BLX R7 ; void BookObj_SoftKeys_SetAction( BOOK* book, int actionID, SKACTIONPROC proc );
- LDR R2, dword_12795F48
- MOVS R1, 0
- ADDS R0, R6, 0
- LDR R7, off_12795F40
- BLX R7 ; void BookObj_SoftKeys_SetText( BOOK* book, int actionID, TEXTID );
- locret_12795DD2:
- POP {R0-R7,PC}
- loc_12795DD4:
- PUSH {R0-R7,LR}
- ADDS R4, R0, 0
- LDR R7, off_12795F44
- BLX R7 ; wchar_t* MenuBook_Desktop_GetSelectedItemID( BOOK* MenuBook_Desktop );
- ADDS R6, R0, 0
- LDR R0, dword_12795F28
- LDR R5, [R0]
- MOVS R2, 0x20
- LDRB R1, [R5,R2]
- LDR R0, [R5,R1]
- CMP R0, 0
- BEQ loc_12795DF0
- BL sub_12795D80
- loc_12795DF0:
- STR R6, [R5,R1]
- ADDS R0, R5, 0
- ADR R7, loc_12795E00
- BLX R7
- ADDS R0, R4, 0
- LDR R7, off_12795F2C
- BLX R7 ; void FreeBook( BOOK* book );
- POP {R0-R7,PC}
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;code32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- loc_12795E00:
- code32
- STMFD SP!, {R4-R11,LR}
- LDR R5, off_12795F7C
- MOV R4, R0
- MOV R0, 0
- STMFD SP!, {R0}
- MOV R3, 0x180
- ADD R2, R3, 0x82
- ADR R1, aQais_dat ; "qais.dat"
- MOV R0, R5
- MOV LR, PC
- LDR PC, off_12795F5C ; int _fopen( const wchar_t* filpath, const wchar_t* filname, unsigned int mode, unsigned int rights, FILELISTITEM* destfname);
- MOV R6, R0
- MOV R7, 0
- MOV R8, 0
- ADD SP, SP, 4
- loc_12795E3C:
- ADD R0, R4, R8,LSL 2
- LDR R1, [R0]
- CMP R1, 0
- ADDEQ R7, R7, 0xA
- BEQ loc_12795E64
- MOV R0, R1
- MOV LR, PC
- LDR PC, off_12795F70 ; int wstrlen( const wchar_t* wstr );
- ADD R0, R0, 1
- ADD R7, R7, R0,LSL 1
- loc_12795E64:
- ADD R8, R8, 1
- CMP R8, 8
- BNE loc_12795E3C
- MOV R0, R7
- ADR R12, sub_12795D64
- ADD R12, R12, 1
- BLX R12
- MOV R8, R0
- MOV R2, R7
- MOV R1, 0
- MOV LR, PC
- LDR PC, off_12795F50
- MOV R9, R8
- MOV R10, 0
- loc_12795E9C:
- ADD R11, R4, R10,LSL 2
- LDR R0, [R11]
- CMP R0, 0
- BNE loc_12795EC4
- ADR R1, aNone ; "none"
- MOV R0, R8
- MOV LR, PC
- LDR PC, off_12795F78 ; wchar_t* wstrcpy( wchar_t* dest, const wchar_t* source );
- ADD R8, R8, 0xA
- B loc_12795EE8
- loc_12795EC4:
- MOV R1, R0
- MOV R0, R8
- MOV LR, PC
- LDR PC, off_12795F78 ; wchar_t* wstrcpy( wchar_t* dest, const wchar_t* source );
- LDR R0, [R11]
- MOV LR, PC
- LDR PC, off_12795F70 ; int wstrlen( const wchar_t* wstr );
- ADD R0, R8, R0,LSL 1
- ADD R8, R0, 2
- loc_12795EE8:
- ADD R10, R10, 1
- CMP R10, 8
- BNE loc_12795E9C
- MOV R2, R7
- MOV R1, R9
- MOV R0, R6
- MOV LR, PC
- LDR PC, off_12795F64 ; int fwrite( int file, const void* ptr, int size );
- MOV R0, R6
- MOV LR, PC
- LDR PC, off_12795F60 ; int fclose( int file );
- MOV R0, R9
- ADR R12, sub_12795D80
- ADD R12, R12, 1
- BLX R12
- LDMFD SP!, {R4-R11,PC}
- ; ---------------------------------------------------------------------------
- dword_12795F28 dw 0x4BBFF2A3;4BBF3000
- off_12795F2C dw FreeBook+1
- off_12795F30 dw 0x10D98374+1;10D8FFF8+1
- off_12795F34 dw 0x10D98354+1;10D8FFD8+1
- off_12795F38 dw MenuBook_Desktop+1
- off_12795F3C dw BookObj_SoftKeys_SetAction+1
- off_12795F40 dw BookObj_SoftKeys_SetText+1
- off_12795F44 dw MenuBook_Desktop_GetSelectedItemID+1
- dword_12795F48 dw 0x22DB
- off_12795F4C dw 0x10D98BB4+1;10D90838+1
- off_12795F50 dw 0x126FB494;sub_12631BB8 ;memset na db3210
- dword_12795F54 dw memalloc;0x4BB00584
- dword_12795F58 dw memfree;0x4BB005AC
- off_12795F5C dw _fopen+1
- off_12795F60 dw fclose+1
- off_12795F64 dw fwrite+1
- off_12795F68 dw fread+1
- off_12795F6C dw fstat+1
- off_12795F70 dw wstrlen+1
- off_12795F74 dw wstrcmp+1
- off_12795F78 dw wstrcpy+1
- off_12795F7C dw 0x11E6CDF8;11DA5474;aTpaSystem ; "/tpa/system"
- aQais_dat du "qais.dat",0
Advertisement
Add Comment
Please, Sign In to add comment