Function at 0x14001a5f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1c0]
sub rsp, 0x2c0
mov rax, qword [0x14028d920]
xor rax, rsp
mov qword [rbp + 0x1b0], rax
mov rdi, rdx
mov r14, rcx
mov qword [rsp + 0x28], rdx
mov rax, qword [rdx + 0x18]
mov qword [rsp + 0x20], rax
mov r9, qword [rdx + 0x10]
mov r8d, dword [rdx + 8]
mov rdx, qword [rdx]
call fcn.140019e40
test eax, eax
jne 0x14001a6b6
mov eax, dword [rdi + 8]
lea rsi, [0x140000000]
cmp eax, 0x200
ja 0x14001a96d
je case.0x14001a98d.513
add eax, 0xfffffff9
cmp eax, 0xfe
ja case.0x14001a9e4.518
lea rsi, [0x140000000]
movzx eax, byte [rsi + rax + 0x1aca8]
mov edx, dword [rsi + rax*4 + 0x1ac8c]
add rdx, rsi
jmp rdx
mov rcx, qword [rdi + 0x10]
call fcn.140020c20
mov r8d, eax
and r8d, 0xe000
and eax, 0xffff1fff
mov edx, eax
mov rcx, r14
call fcn.140019a60
test eax, eax
je case.0x14001a9e4.518
mov eax, 1
mov rcx, qword [rbp + 0x1b0]
xor rcx, rsp
call fcn.1401c54f0
mov rbx, qword [rsp + 0x310]
add rsp, 0x2c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov rcx, qword [rdi + 0x10]
call fcn.140020c20
mov r8d, eax
and r8d, 0xe000
and eax, 0xffff1fff
mov edx, eax
mov rcx, r14
call fcn.140019bb0
jmp 0x14001a6ae
lea rcx, [r14 + 0x1d8]
call fcn.140001000
mov r15, qword [r14 + 0x1e0]
mov r12d, dword [r14 + 0x1f0]
mov rdi, qword [r14 + 0x1e8]
test rdi, rdi
je 0x14001a734
lock inc qword [rdi + 8]
mov qword [r14 + 0x1d8], 1
test rdi, rdi
je case.0x14001a9e4.518
lea rbx, [rdi + 0x18]
mov qword [rsp + 0x30], rbx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rdi + 0x10]
test rax, rax
jne 0x14001a77a
lea rcx, [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_TryEnterCriticalSection]
test eax, eax
je 0x14001a809
mov rax, qword [rdi + 0x10]
inc rax
mov qword [rdi + 0x10], rax
cmp qword [rdi + 0x68], 0
je 0x14001a7de
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r8d, r12d
mov rdx, r14
mov rcx, qword [rdi + 0x68]
call r15
mov esi, eax
lea rbx, [rdi + 0x18]
mov qword [rsp + 0x38], rbx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
sub qword [rdi + 0x10], 1
jne 0x14001a7c5
lea rcx, [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x40]
test esi, esi
jmp 0x14001a6b0
mov qword [rsp + 0x38], rbx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
sub qword [rdi + 0x10], 1
jne 0x14001a7ff
lea rcx, [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x14001a6bb
lea rcx, [r14 + 0x1f8]
call fcn.140001000
mov r15, qword [r14 + 0x200]
mov r12d, dword [r14 + 0x210]
mov rdi, qword [r14 + 0x208]
test rdi, rdi
je 0x14001a844
lock inc qword [rdi + 8]
mov qword [r14 + 0x1f8], 1
test rdi, rdi
je case.0x14001a9e4.518
lea rbx, [rdi + 0x18]
mov qword [rsp + 0x38], rbx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rax, qword [rdi + 0x10]
test rax, rax
jne 0x14001a88a
lea rcx, [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_TryEnterCriticalSection]
test eax, eax
je 0x14001a919
mov rax, qword [rdi + 0x10]
inc rax
mov qword [rdi + 0x10], rax
cmp qword [rdi + 0x68], 0
je 0x14001a8ee
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov r8d, r12d
mov rdx, r14
mov rcx, qword [rdi + 0x68]
call r15
mov esi, eax
lea rbx, [rdi + 0x18]
mov qword [rsp + 0x30], rbx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
sub qword [rdi + 0x10], 1
jne 0x14001a8d5
lea rcx, [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x40]
test esi, esi
jmp 0x14001a6b0
mov qword [rsp + 0x30], rbx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
sub qword [rdi + 0x10], 1
jne 0x14001a90f
lea rcx, [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x14001a6bb
movzx edx, word [rdi + 0x10]
mov rcx, r14
call fcn.140019d00
movsxd rcx, eax
test eax, eax
js 0x14001a6b6
jle case.0x14001a9e4.518
mov qword [rdi + 0x10], rcx
xor eax, eax
jmp 0x14001a6bb
mov rax, qword [r14 + 0x18]
mov rcx, qword [rax + 0x70]
test rcx, rcx
je case.0x14001a9e4.518
call qword [sym.imp.USER32.dll_SetCursor]
jmp 0x14001a6b6
add eax, 0xfffffdff
cmp eax, 0x32
ja case.0x14001a9e4.518
movzx eax, byte [rsi + rax + 0x1adb8]
mov ecx, dword [rsi + rax*4 + 0x1ada8]
add rcx, rsi
jmp rcx
movsx r15d, word [rdi + 0x18]
movsx r12d, word [rdi + 0x1a]
mov rax, qword [rdi + 0x10]
mov rcx, rax
shl rcx, 0xa
and ecx, 0x2000
mov ebx, ecx
bts ebx, 0xf
and al, 4
cmove ebx, ecx
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x14001a9c9
bts ebx, 0xe
mov eax, dword [rdi + 8]
add eax, 0xfffffe00
cmp eax, 8
ja case.0x14001a9e4.518
mov ecx, dword [rsi + rax*4 + 0x1adec]
add rcx, rsi
jmp rcx
mov r9d, ebx
mov r8d, r12d
mov edx, r15d
mov rcx, r14
call fcn.140018e10
jmp 0x14001a6ae
mov r9d, ebx
mov r8d, r12d
mov edx, r15d
mov rcx, r14
call fcn.140018f70
jmp 0x14001a6ae
mov r9d, ebx
mov r8d, r12d
mov edx, r15d
mov rcx, r14
call fcn.1400190d0
jmp 0x14001a6ae
mov r9d, ebx
mov r8d, r12d
mov edx, r15d
mov rcx, r14
call fcn.140019230
jmp 0x14001a6ae
mov r9d, ebx
mov r8d, r12d
mov edx, r15d
mov rcx, r14
call fcn.140019390
jmp 0x14001a6ae
mov r9d, ebx
mov r8d, r12d
mov edx, r15d
mov rcx, r14
call fcn.1400194f0
jmp 0x14001a6ae
mov r9d, ebx
mov r8d, r12d
mov edx, r15d
mov rcx, r14
call fcn.140019650
jmp 0x14001a6ae
mov r9d, ebx
mov r8d, r12d
mov edx, r15d
mov rcx, r14
call fcn.1400197b0
jmp 0x14001a6ae
mov rax, qword [rdi + 0x10]
mov rcx, rax
shl rcx, 0xa
and ecx, 0x2000
mov ebx, ecx
bts ebx, 0xf
and al, 4
cmove ebx, ecx
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x14001aac6
bts ebx, 0xe
movsx ecx, word [rdi + 0x12]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov r8d, ebx
mov rcx, r14
call fcn.140019910
jmp 0x14001a6ae
mov r15, qword [rdi + 0x10]
xor r9d, r9d
xor r8d, r8d
mov edx, 0xffffffff
mov rcx, r15
call qword [sym.imp.SHELL32.dll_DragQueryFileW]
mov r12d, eax
lea rdx, vtable.CVolCommonBaseWithMemManager.0
mov qword [rsp + 0x40], rdx
lea rcx, vtable.CVolObject.0
mov qword [rsp + 0x40], rcx
xor r13d, r13d
mov qword [rsp + 0x48], r13
mov qword [rsp + 0x50], r13
lea rax, vtable.rg_n38::rg_n2428.0
mov qword [rsp + 0x40], rax
lea rax, vtable.rg_n38::rg_n1996.0
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x58], rdx
lea rax, vtable.CMStringArray.0
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x70], r13
lea rax, vtable.CVolMem.0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x78], r13
mov qword [rbp - 0x78], r13
mov qword [rbp - 0x80], r13
mov qword [rbp - 0x70], 0x40
mov qword [rbp - 0x70], 0x100
mov esi, r13d
test r12d, r12d
je 0x14001ac5c
nop dword [rax]
nop word [rax + rax]
mov r9d, 0x104
lea r8, [rbp - 0x60]
mov edx, esi
mov rcx, r15
call qword [sym.imp.SHELL32.dll_DragQueryFileW]
lea rax, [rbp - 0x60]
mov rbx, 0xffffffffffffffff
inc rbx
cmp word [rax + rbx*2], 0
jne 0x14001abe0
test rbx, rbx
jle 0x14001ac1b
add rbx, rbx
lea rdx, [rbx + 2]
lea rcx, [rsp + 0x58]
mov rax, qword [rsp + 0x58]
call qword [rax]
mov rdi, rax
mov r8, rbx
lea rdx, [rbp - 0x60]
mov rcx, rax
call fcn.1401c7880
mov word [rdi + rbx], r13w
jmp 0x14001ac1e
mov rdi, r13
mov rax, qword [rbp - 0x80]
mov rbx, qword [rbp - 0x78]
sub rax, rbx
cmp rax, 8
jl 0x14001ac3f
mov rax, qword [rsp + 0x78]
mov qword [rax + rbx], rdi
add qword [rbp - 0x78], 8
jmp 0x14001ac51
lea rdx, [rbx + 8]
lea rcx, [rsp + 0x60]
call fcn.1400213b0
mov qword [rax + rbx], rdi
inc esi
cmp esi, r12d
jb 0x14001abc0
mov rcx, r15
call qword [sym.imp.SHELL32.dll_DragFinish]
cmp qword [rbp - 0x78], 0
je 0x14001ac7a
lea rdx, [rsp + 0x40]
mov rcx, r14
call fcn.14001a120
nop
lea rcx, [rsp + 0x40]
call fcn.140018d00
xor eax, eax
jmp 0x14001a6bb