Function at 0x1400dd480
Capabilities:
Log keystrokes via application hook

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0xa0
mov r14, r9
mov rdi, r8
mov rbp, rdx
mov rbx, rcx
call fcn.140083610
nop
lea rax, vtable.CMiddleScrollHelper.0
mov qword [rbx], rax
lea rax, vtable.CMiddleScrollHelper.1.0
mov qword [rbx + 0x188], rax
xor r15d, r15d
lea rsi, [rbx + 0x250]
lea r12, vtable.JRWndPtr.0
mov qword [rsi], r12
mov qword [rsi + 8], r15
mov dword [rsi + 0x10], r15d
mov qword [rbx + 0x230], r15
mov qword [rbx + 0x2b8], r15
mov byte [rbx + 0x238], r15b
mov qword [rbx + 0x23c], r15
mov qword [rbx + 0x268], r15
mov qword [rbx + 0x270], r15
mov qword [rbx + 0x278], r15
mov qword [rbx + 0x2b0], r15
mov qword [rbx + 0x220], r15
mov qword [rbx + 0x228], r15
mov qword [rbx + 0x190], r15
mov qword [rbx + 0x280], r15
mov qword [rbx + 0x288], r15
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.140014e70
nop
mov rdx, rax
mov rcx, rsi
call fcn.140062fa0
nop
mov qword [rsp + 0x60], r12
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1400dd57e
cmp dword [rsp + 0x70], 1
jne 0x1400dd57e
mov rax, qword [rcx]
lea rdx, [rsp + 0x60]
call qword [rax + 0x608]
mov rcx, qword [rsp + 0x68]
cmp dword [rsp + 0x70], 2
jne 0x1400dd599
test rcx, rcx
je 0x1400dd599
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x2e8]
nop
mov qword [rbx + 0x290], r15
mov qword [rbx + 0x2c0], r15
mov qword [rbx + 0x298], r15
mov qword [rbx + 0x2a0], r15
mov qword [rbx + 0x2a8], r15
mov qword [rbx + 0x230], rbp
mov rdx, rdi
mov rcx, rsi
call fcn.140062fa0
mov eax, dword [rsp + 0x110]
mov dword [rbx + 0x2b8], eax
mov qword [rbx + 0x248], r15
test eax, eax
jne 0x1400dd5fc
mov rax, qword [rbx]
mov edx, 1
mov rcx, rbx
call qword [rax + 0x2e8]
jmp 0x1400dd789
mov rax, qword [r14]
mov qword [rbx + 0x23c], rax
mov rbp, rax
shr rbp, 0x20
sub ebp, 0x11
lea r14d, [rax - 0x11]
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x88], r15
mov dword [rsp + 0x90], r15d
lea rax, [rsp + 0x80]
cmp rsi, rax
je 0x1400dd696
mov eax, dword [rsi + 0x10]
cmp eax, 2
jne 0x1400dd680
mov rcx, qword [rsi + 8]
test rcx, rcx
je 0x1400dd668
mov rax, qword [rcx]
call qword [rax + 0x300]
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x80]
call fcn.140062e80
jmp 0x1400dd696
mov rax, r15
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x80]
call fcn.140062e80
jmp 0x1400dd696
cmp eax, 1
jne 0x1400dd696
mov rdx, qword [rsi + 8]
lea rcx, [rsp + 0x80]
call fcn.140062d90
mov dword [rsp + 0x60], r14d
mov dword [rsp + 0x64], ebp
lea eax, [r14 + 0x24]
mov dword [rsp + 0x68], eax
lea eax, [rbp + 0x24]
mov dword [rsp + 0x6c], eax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x90000000
xor r9d, r9d
lea r8, str.JRiver_Middle_Scroll_Window_Class
xor edx, edx
mov rcx, rbx
call fcn.1400837d0
test al, al
je 0x1400dd789
mov rcx, qword [rbx + 0x258]
mov rax, qword [rcx]
call qword [rax + 0x570]
mov rcx, qword [rbx + 0x190]
call qword [sym.imp.USER32.dll_SetCapture]
mov qword [0x140229e20], rbx
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r9d, eax
xor r8d, r8d
lea rdx, [0x1400dd400]
lea ecx, [r8 + 2]
call qword [sym.imp.USER32.dll_SetWindowsHookExW]
mov qword [rbx + 0x220], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r9d, eax
xor r8d, r8d
lea rdx, [0x1400dd440]
lea ecx, [r8 + 7]
call qword [sym.imp.USER32.dll_SetWindowsHookExW]
mov qword [rbx + 0x228], rax
mov rcx, rbx
call fcn.1400ddf00
mov dword [rbx + 0x2c0], 5
mov rcx, rbx
call fcn.1400ddcd0
xor r9d, r9d
mov edx, 0x1feb
lea r8d, [r9 + 0x1e]
mov rcx, qword [rbx + 0x190]
call qword [sym.imp.USER32.dll_SetTimer]
nop
mov qword [rdi], r12
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400dd7a7
cmp dword [rdi + 0x10], 1
jne 0x1400dd7a7
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 0x608]
cmp dword [rdi + 0x10], 2
jne 0x1400dd7c4
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x1400dd7c4
mov rax, qword [rcx]
mov edx, 1
call qword [rax + 0x2e8]
mov dword [rdi + 0x10], r15d
mov qword [rdi + 8], r15
mov rax, rbx
add rsp, 0xa0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret