Function at 0x140045e00
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
movsxd rsi, edx
mov rdi, rcx
test edx, edx
js 0x1400460b0
mov ecx, InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
movzx ebp, ax
mov ecx, reloc.COMCTL32.dll_InitCommonControls
and ebp, 0x8000
call qword [sym.imp.USER32.dll_GetKeyState]
movzx r15d, ax
and r15d, 0x8000
jne 0x140045e70
test ebp, ebp
jne 0x140045e70
mov rax, qword [rdi]
mov r9b, 1
xor r8d, r8d
mov edx, esi
mov rcx, rdi
call qword [rax + ILCombine]
jmp 0x1400460b2
lea r14, [rdi - 0x720]
mov qword [rsp + 0x70], rsi
mov rax, qword [r14]
lea rcx, vtable.ui::ListBox.0
xor r13d, r13d
mov r12, rsi
mov r8, qword [rax + 0x2a0]
cmp rax, rcx
jne 0x1400460dd
mov rbx, qword [r14 + 0x450]
mov rax, qword [r14 + 0x458]
sub rax, rbx
sar rax, 3
cmp rsi, rax
jae 0x140045ebc
mov rbx, qword [rbx + rsi*8]
jmp 0x140045ebf
mov rbx, r13
test rbx, rbx
je 0x1400460b0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
test al, al
je 0x1400460b0
mov rax, qword [rbx]
mov rdx, qword [rax + 0x138]
lea rax, [method.ui::LabelTemplate_class_ui::Control_.virtual_312]
cmp rdx, rax
jne 0x1400460ee
movzx eax, byte [rbx + 0xc1]
test al, al
je 0x1400460b0
lea r9, vtable.type_info.0
mov dword [rsp + 0x20], r13d
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rbx
call sub.msvcrt.dll___RTDynamicCast
mov rbx, rax
test rax, rax
je 0x1400460b0
test r15d, r15d
je 0x140045f90
movsxd rbp, dword [rdi + 0xc]
mov dword [rdi + 0xc], esi
lea rsi, vtable.ui::ListContainerElement.2.0
mov rax, qword [rax]
cmp rax, rsi
jne 0x1400460f8
movzx ecx, byte [rbx - 0x78]
test cl, cl
mov r8b, 1
mov rcx, rbx
sete dl
call qword [rax + 0x38]
mov rax, qword [rbx]
cmp rax, rsi
jne 0x140046109
movzx eax, byte [rbx - 0x78]
test al, al
je 0x1400460ac
mov rcx, qword [rdi - 0x6f0]
test rcx, rcx
je 0x1400460ac
movsxd r9, dword [rdi + 0xc]
mov rax, rbp
jmp 0x140046099
test ebp, ebp
je 0x1400460ac
mov eax, dword [rdi + 0xc]
lea rcx, vtable.ui::ListBox.0
cmp eax, esi
mov ebx, eax
cmovge ebx, esi
cmovge esi, eax
mov rax, qword [r14]
cmp rax, rcx
jne 0x140046114
mov rax, qword [r14 + 0x458]
sub rax, qword [r14 + 0x450]
sar rax, 3
movsxd rbp, eax
test eax, eax
jle 0x140046086
movsxd r15, ebx
lea r12, vtable.ui::ListBox.0
mov rbx, r13
movsxd rsi, esi
nop word [rax + rax]
mov rax, qword [r14]
mov r8, qword [rax + 0x2a0]
cmp rax, r12
jne 0x1400460cf
mov rcx, qword [rdi - 0x2d0]
mov rax, qword [rdi - 0x2c8]
sub rax, rcx
sar rax, 3
cmp rbx, rax
jae 0x140046023
mov rax, qword [rcx + rbx*8]
jmp 0x140046026
mov rax, r13
test rax, rax
je 0x140046075
lea r9, vtable.type_info.0
mov dword [rsp + 0x20], r13d
lea r8, vtable.type_info.0
xor edx, edx
mov rcx, rax
call sub.msvcrt.dll___RTDynamicCast
mov rcx, rax
test rax, rax
je 0x140046075
cmp rbx, r15
jl 0x14004606a
cmp rbx, rsi
jg 0x14004606a
mov r9, qword [rax]
mov r8b, 1
movzx edx, r8b
call qword [r9 + 0x38]
jmp 0x140046075
mov rax, qword [rax]
mov r8b, 1
xor edx, edx
call qword [rax + 0x38]
inc rbx
cmp rbx, rbp
jl 0x140045ff0
mov r12, qword [rsp + 0x70]
mov rcx, qword [rdi - 0x6f0]
test rcx, rcx
je 0x1400460ac
movsxd rax, dword [rdi + 0xc]
mov r9, r12
mov r8d, 0x2a
mov qword [rsp + 0x20], rax
mov rdx, r14
call fcn.14002ad40
mov al, 1
jmp 0x1400460b2
xor al, al
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov rdx, rbx
mov rcx, r14
call r8
jmp 0x140046026
mov rdx, rsi
mov rcx, r14
call r8
mov rbx, rax
jmp 0x140045ebf
mov rcx, rbx
call rdx
jmp 0x140045efa
mov rcx, rbx
call qword [rax + 0x30]
movzx ecx, al
mov rax, qword [rbx]
jmp 0x140045f4e
mov rcx, rbx
call qword [rax + 0x30]
jmp 0x140045f6c
mov rcx, r14
call qword [rax + 0x2b8]
jmp 0x140045fca