Function at 0x140056ec0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rbp
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
movzx r15d, dl
mov rdi, rcx
test dl, dl
jne 0x140056eef
cmp qword [rcx + 0x58], 0
je 0x140057145
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.14004fca0
lea rax, [rbp - 0x20]
mov qword [rbp - 0x40], rax
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x140056f31
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 0x140056f51
cmp dword [rbp - 0x10], 1
jne 0x140056f51
mov rax, qword [rcx]
lea rdx, [rbp - 0x20]
call qword [rax + 0x608]
mov rcx, qword [rbp - 0x18]
cmp dword [rbp - 0x10], 2
jne 0x140056f6b
test rcx, rcx
je 0x140056f6b
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x2e8]
nop
mov qword [rbp + 0x40], rsi
mov qword [rbp - 0x20], r12
mov qword [rbp - 0x18], rsi
mov dword [rbp - 0x10], esi
lea rdx, [rbp - 0x20]
lea rcx, [rbp + 0x40]
call fcn.140067540
mov rax, qword [rbp + 0x40]
mov qword [rbp + 0x48], rax
mov rax, qword [rdi]
lea rdx, [rbp + 0x48]
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 0x14005708f
mov rcx, qword [rbp + 0x48]
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 0x14005707f
mov bl, 1
test r14, r14
je 0x14005707f
mov rax, qword [rbp + 0x40]
mov qword [rbp - 0x40], rax
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x20]
call fcn.140054910
nop
mov rcx, qword [rbp - 0x18]
test rcx, rcx
je 0x140057027
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 0x140057061
cmp dword [rbp - 0x10], 1
jne 0x140057061
mov rax, qword [rcx]
lea rdx, [rbp - 0x20]
call qword [rax + 0x608]
mov rcx, qword [rbp - 0x18]
cmp dword [rbp - 0x10], 2
jne 0x14005707b
test rcx, rcx
je 0x14005707b
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x2e8]
nop
movzx ebx, sil
cmp qword [rdi + 0x58], 0
je 0x14005708f
test r14, r14
je 0x140057123
test r15b, r15b
jne 0x1400570b1
call fcn.1400260d0
test bl, bl
je 0x140057160
sub rax, qword [rdi + 0x68]
cmp rax, 0x2ee
jle 0x140057145
test r14, r14
je 0x140057123
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 0x14005716a
cmp byte [rbp - 0x28], 0
jne 0x14005716a
mov rax, qword [rcx]
call qword [rax + 0x308]
test al, al
je 0x140057166
mov qword [rbp - 0x38], rbx
cmp byte [rbp - 0x28], 0
jne 0x140057123
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x140057123
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
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret
mov qword [rdi + 0x68], rax
jmp 0x140057145
mov rcx, qword [rbp - 0x30]
mov qword [rbp - 0x38], rbx
cmp byte [rbp - 0x28], 0
jne 0x140057187
test rcx, rcx
je 0x140057187
mov rax, qword [rcx]
lea rdx, [rbp - 0x38]
call qword [rax + 0x608]
nop
xor al, al
jmp 0x140057147