Function at 0x1400645d0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
movzx r15d, dl
mov rdi, rcx
test dl, dl
jne 0x1400645f8
cmp qword [rcx + 0x58], 0
je 0x14006484e
lea r12, vtable.JRWndPtr.0
mov qword [rbp - 0x20], r12
xor esi, esi
mov qword [rbp - 0x18], rsi
mov dword [rbp - 0x10], esi
mov rdx, rdi
lea rcx, [rbp - 0x20]
call fcn.140062d90
lea rax, [rbp - 0x20]
mov qword [rbp - 0x40], rax
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x14006463a
mov rax, qword [rcx]
lea rdx, [rbp - 0x38]
call qword [rax + 0x488]
mov rcx, qword [rbp - 0x18]
mov qword [rbp - 0x20], r12
test rcx, rcx
je 0x14006465a
cmp dword [rbp - 0x10], 1
jne 0x14006465a
mov rax, qword [rcx]
lea rdx, [rbp - 0x20]
call qword [rax + 0x608]
mov rcx, qword [rbp - 0x18]
cmp dword [rbp - 0x10], 2
jne 0x140064674
test rcx, rcx
je 0x140064674
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x2e8]
nop
mov qword [rbp + 0x50], rsi
mov qword [rbp - 0x20], r12
mov qword [rbp - 0x18], rsi
mov dword [rbp - 0x10], esi
lea rdx, [rbp - 0x20]
lea rcx, [rbp + 0x50]
call fcn.1400867b0
mov rax, qword [rbp + 0x50]
mov qword [rbp + 0x58], rax
mov rax, qword [rdi]
lea rdx, [rbp + 0x58]
mov rcx, rdi
call qword [rax + 0x4d0]
xor edx, edx
lea rcx, str.JRiver_Menu_Class
call qword [sym.imp.USER32.dll_FindWindowW]
mov r14, rax
xor bl, bl
cmp qword [rdi + 0x58], 0
je 0x140064798
mov rcx, qword [rbp + 0x58]
mov qword [rbp - 0x40], rcx
mov r8, qword [rdi]
lea rdx, [rbp - 0x40]
mov rcx, rdi
call qword [r8 + 0x650]
cmp qword [rdi + 0x58], rax
je 0x140064788
mov bl, 1
test r14, r14
je 0x140064788
mov rax, qword [rbp + 0x50]
mov qword [rbp - 0x40], rax
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x20]
call fcn.1400854b0
nop
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x140064730
mov rax, qword [rcx]
movzx r8d, bl
lea rdx, str.JRMenuWnd
call qword [rax + 0x390]
movzx ebx, bl
test al, al
cmovne ebx, esi
movzx ebx, bl
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
test al, 1
cmove esi, ebx
mov qword [rbp - 0x20], r12
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x14006476a
cmp dword [rbp - 0x10], 1
jne 0x14006476a
mov rax, qword [rcx]
lea rdx, [rbp - 0x20]
call qword [rax + 0x608]
mov rcx, qword [rbp - 0x18]
cmp dword [rbp - 0x10], 2
jne 0x140064784
test rcx, rcx
je 0x140064784
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x2e8]
nop
movzx ebx, sil
cmp qword [rdi + 0x58], 0
je 0x140064798
test r14, r14
je 0x14006482c
test r15b, r15b
jne 0x1400647ba
call fcn.140052990
test bl, bl
je 0x14006485f
sub rax, qword [rdi + 0x68]
cmp rax, 0x2ee
jle 0x14006484e
test r14, r14
je 0x14006482c
lea rbx, vtable.JRWndDeleteProbe.0
mov qword [rbp - 0x38], rbx
mov qword [rbp - 0x30], rdi
mov byte [rbp - 0x28], 0
mov rax, qword [rdi]
lea rdx, [rbp - 0x38]
mov rcx, rdi
call qword [rax + 0x600]
nop
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x570]
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x140064869
cmp byte [rbp - 0x28], 0
jne 0x140064869
mov rax, qword [rcx]
call qword [rax + 0x308]
test al, al
je 0x140064865
mov qword [rbp - 0x38], rbx
cmp byte [rbp - 0x28], 0
jne 0x14006482c
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x14006482c
mov rax, qword [rcx]
lea rdx, [rbp - 0x38]
call qword [rax + 0x608]
nop
mov rax, qword [rdi]
mov edx, 0x138c
mov rcx, rdi
call qword [rax + 0x5a0]
mov rax, qword [rdi]
mov edx, 0x138b
mov rcx, rdi
call qword [rax + 0x5a0]
mov al, 1
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rdi + 0x68], rax
jmp 0x14006484e
mov rcx, qword [rbp - 0x30]
mov qword [rbp - 0x38], rbx
cmp byte [rbp - 0x28], 0
jne 0x140064886
test rcx, rcx
je 0x140064886
mov rax, qword [rcx]
lea rdx, [rbp - 0x38]
call qword [rax + 0x608]
nop
xor al, al
add rsp, 0x60
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret