📄 p2kman.asm
字号:
mov eax, 0
jmp @@exit
@@type_a:
mov eax, 1
jmp @@exit
@@exit:
xor al, LV_Sort_dir
pop edx
pop ecx
leave
retn 0Ch
LV_Sort_Proc endp
; write str to log window
; arg_0 - hwnd
; arg_4 - str
LogStat proc near
arg_0 = dword ptr 8
push ebp
mov ebp, esp
pusha
cmp stay_quiet,1
jz @@quiet
push [ebp+arg_0]
push 0 ; reserved
push 0C2h
push 1000
push Dlg_hwnd
call SendDlgItemMessageA
@@quiet:
popa
leave
retn 4
Logstat endp
LoadStrings proc near
mov edi, offset msg_inv_data_len
mov ebx, 1
add ebx, esi
@@loop:
push 100h
push edi ; buf
push ebx ;ID
push Our_Handle
call LoadStringA
inc ebx
add edi, 100h
mov eax, 77
add eax, esi
cmp ebx, eax
jb @@Loop
retn
LoadStrings endp
HexStr2Int proc near
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push esi
push ecx
push edx
mov ecx,8
mov edx,0
mov esi, [ebp+arg_0]
@@loop:
lodsb
cmp al, 0
jz @@exit
cmp al, 30h
jb @@exit
sub al,30h
cmp al, 9
jbe @@num
sub al, 7
@@num:
cmp al, 10h
jb @@ok
sub al, 20h
@@ok:
cmp al, 0fh
ja @@exit
shl edx, 4
or dl, al
loop @@loop
@@exit:
mov eax, edx
pop edx
pop ecx
pop esi
leave
retn 4
HexStr2Int endp
;####################################################
;
; P2K IO Procedures
;
;####################################################
; Make Filelist of P2K phone
ListP2K Proc near
arg_0 = dword ptr 8
push ebp
mov ebp, esp
pusha
push 0h
push 0h
push 1009h ; Clear ListBox
push 3F0h
push [ebp+arg_0]
call SendDlgItemMessageA
push offset str_Search_req
call LogStat
; query filelist from phone
push [ebp+arg_0]
call FSAC_search_file
cmp eax, 0
jnz @@fail
push offset str_ok
call LogStat
; Convert flags & size toBig-Endian
; and add items to ListBox
mov edi, Files_found
xor edx, edx
mov esi, SearchBuf_Ptr
mov ebx, FileList_RecSize
@@loop_1:
movzx eax, word ptr [esi]
xchg ah,al
mov ecx, eax
add esi, 4
@@loop_2:
mov eax, [esi+ebx-4]
xchg ah, al
rol eax,10h
xchg ah,al
mov [esi+ebx-4], eax
mov ax, [esi+ebx-6h]
xchg ah, al
mov [esi+ebx-6], ax
mov ax, [esi+ebx-8]
xchg ah, al
mov [esi+ebx-8], ax
push esi
call GetFile_ext
push 0
push eax
push esi
mov eax, [esi+ebx-8]
push eax
mov eax, [esi+ebx-4]
push eax
push [ebp+arg_0]
call AddRow
add esi, ebx
inc edx
dec edi
loop @@loop_2
cmp edi, 0
jnz @@loop_1
; log result
push offset str_Files_Added
call LogStat
push edx
push offset str_dec
push offset str_buf
call wsprintfA
add esp, 0Ch
push offset str_buf
call LogStat
push offset crlf
call LogStat
push [ebp+arg_0]
call GetVolInfo
@@exit:
popa
leave
retn 4
@@fail:
push offset str_fail
call LogStat
jmp @@exit
ListP2K endp
GetFile_ext proc near
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push ebx
push edx
push esi
mov eax, 0
mov edx, 0
mov ebx, FileList_RecSize
sub ebx, 8
mov esi, [ebp+arg_0]
@@char_loop:
cmp byte ptr [esi+eax], 0
jz @@extdone
cmp byte ptr [esi+eax], '.'
jnz @@next_char
mov edx, esi
add edx, eax
inc edx
@@next_char:
inc eax
cmp eax, ebx
jna @@char_loop
@@extdone:
cmp edx, 0
jnz @@ok
mov edx, offset str_null
@@ok:
mov eax, edx
pop esi
pop edx
pop ebx
leave
retn 4
GetFile_ext endp
Get_List_FileSize proc near
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push edi
push esi
push ebx
push edx
push ecx
mov ebx, [ebp+arg_0]
mov edi, Files_found
xor edx, edx
mov esi, SearchBuf_Ptr
@@loop_1:
movzx eax, word ptr [esi]
xchg ah,al
mov ecx, eax
add esi, 4
@@loop_2:
push esi
push ecx
mov ebx, [ebp+arg_0]
mov ecx, 0
@@loop_cmp:
mov al, [esi]
cmp al, [ebx+ecx]
jnz @@next
cmp al, 0
jz @@ok
inc ecx
inc esi
mov eax, FileList_RecSize
sub eax, 8
cmp ecx, eax
jz @@ok
jmp @@loop_cmp
@@ok:
pop ecx
pop esi
mov eax, FileList_RecSize
mov eax, [esi+eax-4]
jmp @@exit
@@next:
pop ecx
pop esi
add esi, FileList_RecSize
inc edx
dec edi
loop @@loop_2
cmp edi, 0
jnz @@loop_1
mov eax,-1
@@exit:
pop ecx
pop edx
pop ebx
pop esi
pop edi
leave
retn 4
Get_List_FileSize endp
Get_List_FileAttr proc near
arg_0 = dword ptr 8
push ebp
mov ebp, esp
push edi
push esi
push ebx
push edx
push ecx
mov ebx, [ebp+arg_0]
mov edi, Files_found
xor edx, edx
mov esi, SearchBuf_Ptr
@@loop_1:
movzx eax, word ptr [esi]
xchg ah,al
mov ecx, eax
add esi, 4
@@loop_2:
push esi
push ecx
mov ebx, [ebp+arg_0]
mov ecx, 0
@@loop_cmp:
mov al, [esi]
cmp al, [ebx+ecx]
jnz @@next
cmp al, 0
jz @@ok
inc ecx
inc esi
mov eax, FileList_RecSize
sub eax, 8
cmp ecx, eax
jz @@ok
jmp @@loop_cmp
@@ok:
pop ecx
pop esi
mov eax, FileList_RecSize
mov eax, [esi+eax-8]
jmp @@exit
@@next:
pop ecx
pop esi
add esi, FileList_RecSize
inc edx
dec edi
loop @@loop_2
cmp edi, 0
jnz @@loop_1
mov eax,-1
@@exit:
pop ecx
pop edx
pop ebx
pop esi
pop edi
leave
retn 4
Get_List_FileAttr endp
RingTonesUpdate proc near
push ecx
push esi
push edi
push offset seem_buf
push 0
push 0
push 1
push 4Ch
call Cmd_RDELEM
push offset str_profiles_readed
call logstat
push 1F4h
call Sleep
dec seem_read_bytes
mov esi, offset seem_buf
inc esi
mov edi, offset seem_data
mov ecx, seem_read_bytes
rep movsb
mov edi, offset seem_data
mov byte ptr [edi+01h], 2
mov byte ptr [edi+02h], 2
mov byte ptr [edi+0Ch], 2
mov byte ptr [edi+0Dh], 2
mov byte ptr [edi+17h], 2
mov byte ptr [edi+18h], 2
mov byte ptr [edi+22h], 2
mov byte ptr [edi+23h], 2
mov byte ptr [edi+2Dh], 2
mov byte ptr [edi+2Eh], 2
push seem_read_bytes
push 0
push 1
push 4Ch
call Cmd_STELEM
push 1F4h
call Sleep
push offset str_profiles_updated
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -