

.equ mmigfs3_33LCDDump				0x210DCC40
.equ JWare_getInternalKey			0x200C04F4
.equ hfd2_30ReadBlockNameInRamImage	0x2144BF90
.equ ScreenMem						0x3047D9DC
.equ ScreenMemJava					0x3047D9DC+240*320*2*5
.equ EEP_Cell_LCD_Dump_State		0x00000F74
.equ KeysTable						0x200C0504

.equ MyPatchLocate					0x212A25B4



.start JWare_getInternalKey
	ldr  r1,=Check_FotoKey+1
	bx   r1
.data
JWare_getInternalKey_Cont:



.start MyPatchLocate

Check_FotoKey:
	cmp  r0,20
	bne  Compensation_Cutting
	
Check_LCD_Dump_State:
	push {r0,lr}
	
	ldr  r0,=EEP_Cell_LCD_Dump_State
	blx  j_hfd2_30ReadBlockNameInRamImage
	ldr  r0,[r0]
	cmp  r0,1
	bne  Registers_Pop
	
	mov  r2,1					;хз че, надо 1, чтоб работало
	mov  r1,0x4B				;Количество байт, которые необходимо сохранить:
	lsl  r1,11					;	240*320*2
	ldr  r0,=ScreenMemJava		;Опера, которую нужно сохранить
	blx  j_mmigfs3_33LCDDump
	
Registers_Pop:
	pop  {r0,r1}
	mov  lr,r1
	
Compensation_Cutting:
	sub  r0,2
	cmp  r0,12
	bcc  Return_JWare_getInternalKey
	
	mov  r2,1
	
Return_JWare_getInternalKey:
	ldr  r3,=KeysTable
	
	sub  r1,r3,7
	bx   r1

.arm
j_hfd2_30ReadBlockNameInRamImage:
	ldr  r12,=hfd2_30ReadBlockNameInRamImage+1
	bx   r12

j_mmigfs3_33LCDDump:
	ldr  r12,=mmigfs3_33LCDDump+1
	bx   r12
.thumb
.data