Function at 0x1400603b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov byte [rsp + 0x18], r8b
push rbx
push rbp
push r12
sub rsp, 0x40
mov rax, qword [rcx]
movzx r12d, r8b
movsxd rbp, edx
mov rbx, rcx
call qword [rax + 0x70]
test al, al
jne 0x1400603e9
mov rax, qword [rbx]
movzx r8d, r12b
mov edx, ebp
mov rcx, rbx
add rsp, 0x40
pop r12
pop rbp
pop rbx
jmp qword [rax + 0x18]
test ebp, ebp
jns 0x140060404
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
mov al, 1
add rsp, 0x40
pop r12
pop rbp
pop rbx
ret
cmp dword [rbx + 0x10], 0xffffffff
mov qword [rsp + 0x78], r13
mov qword [rsp + 0x30], r15
jne 0x140060421
cmp dword [rbx + 0xc], 0xffffffff
mov eax, ebp
cmovne eax, dword [rbx + 0xc]
mov dword [rbx + 0x10], eax
mov rax, qword [rbx - 0x188]
lea rcx, [rbx - 0x188]
mov qword [rsp + 0x60], rsi
mov edx, ebp
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x38], r14
call qword [rax]
mov r15, rax
test rax, rax
je 0x1400606b7
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x218]
test al, al
je 0x1400606b7
mov r8, qword [r15]
lea rdx, str.ListItem
mov rcx, r15
call qword [r8 + 0x20]
mov r14, rax
test rax, rax
je 0x1400606b7
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x140060563
movsxd rax, dword [rbx + 0x20]
xor edi, edi
test eax, eax
jle 0x1400604bb
mov rdx, rax
xor ecx, ecx
mov rax, qword [rbx + 0x18]
cmp qword [rax], rbp
je 0x1400604f8
inc edi
inc rcx
add rax, 8
cmp rcx, rdx
jl 0x1400604a8
mov rax, qword [r14]
add rax, 0x30
mov dl, 1
mov rcx, r14
call qword [rax]
test al, al
je 0x1400606b7
mov rdx, rbp
mov dword [rbx + 0xc], ebp
lea rcx, [rbx + 0x18]
call fcn.14000c670
mov edx, ebp
lea rcx, [rbx - 0x730]
call fcn.140060d60
cmp byte [rsp + 0x70], 0
jmp 0x140060675
mov rax, qword [r14]
add rax, 0x30
cmp edi, 0xffffffff
je 0x1400604c2
xor edx, edx
mov rcx, r14
call qword [rax]
test al, al
je 0x1400606b7
cmp dword [rbx + 0xc], ebp
jne 0x14006051f
mov dword [rbx + 0xc], 0xffffffff
test edi, edi
js 0x1400606b3
mov edx, dword [rbx + 0x20]
cmp edi, edx
jge 0x1400606b3
dec edx
mov dword [rbx + 0x20], edx
cmp edi, edx
jge 0x1400606b3
mov rax, qword [rbx + 0x18]
sub edx, edi
movsxd r8, edx
movsxd rcx, edi
shl r8, 3
lea rcx, [rax + rcx*8]
lea rdx, [rcx + 8]
call fcn.1400a4a90
mov al, 1
jmp 0x1400606b9
mov ecx, InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
bt ax, 0xf
jae 0x140060646
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x80]
mov eax, dword [rbx + 0x10]
mov r12d, ebp
mov edi, eax
cmp eax, ebp
jle 0x140060596
mov edi, ebp
mov r12d, eax
cmp edi, r12d
jg 0x140060606
movsxd r14, edi
nop
mov rax, qword [rbx - 0x188]
lea rcx, [rbx - 0x188]
mov edx, edi
call qword [rax]
mov rsi, rax
test rax, rax
je 0x1400605fc
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x218]
test al, al
je 0x1400605fc
mov r8, qword [rsi]
lea rdx, str.ListItem
mov rcx, rsi
call qword [r8 + 0x20]
test rax, rax
je 0x1400605fc
mov r8, qword [rax]
mov dl, 1
mov rcx, rax
call qword [r8 + 0x30]
test al, al
je 0x1400605fc
lea rcx, [rbx + 0x18]
mov rdx, r14
call fcn.14000c670
inc edi
inc r14
cmp edi, r12d
jle 0x1400605a0
mov edx, ebp
mov dword [rbx + 0xc], ebp
lea rcx, [rbx - 0x730]
call fcn.140060d60
cmp byte [rsp + 0x70], 0
je 0x14006062a
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x250]
mov rcx, qword [rbx - 0x6d8]
test rcx, rcx
je 0x1400606b3
movsxd rax, dword [rbx + 0x10]
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
jmp 0x14006069d
mov rax, qword [r14]
mov dl, 1
mov rcx, r14
call qword [rax + 0x30]
test al, al
je 0x1400606b7
lea rcx, [rbx + 0x18]
mov dword [rbx + 0xc], ebp
mov rdx, rbp
call fcn.14000c670
mov edx, ebp
lea rcx, [rbx - 0x730]
call fcn.140060d60
test r12b, r12b
je 0x140060683
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x250]
mov rcx, qword [rbx - 0x6d8]
test rcx, rcx
je 0x1400606b3
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9, rbp
lea r8, str.itemselect
lea rdx, [rbx - 0x730]
call fcn.140014220
mov al, 1
jmp 0x1400606b9
xor al, al
mov r14, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
mov r13, qword [rsp + 0x78]
mov r15, qword [rsp + 0x30]
add rsp, 0x40
pop r12
pop rbp
pop rbx
ret