Function at 0x180021b24
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov r12, r8
mov rsi, rdx
xor ebx, ebx
cmp rdx, rbx
jne 0x180021b5a
mov qword [rsp + 0x40], rbx
jmp 0x180021b63
mov rax, qword [rdx + 0x40]
mov qword [rsp + 0x40], rax
mov r13d, dword [r8 + 8]
call qword [sym.imp.USER32.dll_GetFocus]
mov qword [rsp + 0x50], rax
mov rcx, rax
call fcn.18000e598
mov r14, rax
mov qword [rsp + 0x48], rax
mov r15d, 0x100
cmp r13d, r15d
jb 0x180021b96
cmp r13d, 0x109
jbe 0x180021ba6
lea eax, [r13 - 0x200]
cmp eax, 9
ja 0x180021ca5
cmp r14, rbx
je 0x180021ca5
mov rdi, r14
cmp qword [rdi + 0xa0], rbx
jne 0x180021bec
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call fcn.18000e598
cmp rax, rsi
je 0x180021bec
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call fcn.18000e598
mov rdi, rax
cmp rax, rbx
jne 0x180021bb2
cmp rdi, rbx
je 0x180021c24
mov rax, qword [rdi + 0xa0]
cmp rax, rbx
je 0x180021c24
cmp qword [rax + 0x90], rbx
je 0x180021c24
mov rcx, qword [rax + 0x90]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x28]
cmp eax, ebx
jne 0x180021c24
mov eax, 1
jmp 0x18002213f
cmp r13d, 0x101
je 0x180021c3b
cmp r13d, r15d
je 0x180021c3b
cmp r13d, 0x102
jne 0x180021c96
cmp rdi, rbx
je 0x180021c96
mov rax, qword [rdi + 0xa0]
cmp rax, rbx
je 0x180021c96
mov ecx, SafeArrayGetDim
cmp word [r12 + 0x10], cx
jne 0x180021c67
lea edi, [rcx - 0xc]
test byte [rax + 0xcc], dil
jne 0x180021c87
jmp 0x180021c6c
mov edi, 1
mov r15d, 0x1b
cmp word [r12 + 0x10], r15w
jne 0x180021c8e
lea r12d, [r15 - 0x19]
test byte [rax + 0xcc], r12b
je 0x180021cb2
xor eax, eax
jmp 0x18002213f
mov r12d, 2
jmp 0x180021cb2
mov edi, 1
lea r15d, [rdi + 0x1a]
lea r12d, [rdi + 1]
jmp 0x180021cb2
mov edi, 1
lea r15d, [rdi + 0x1a]
lea r12d, [rdi + 1]
mov rax, qword [rsp + 0xc0]
mov rcx, qword [rax]
call fcn.18000e598
mov qword [rsp + 0x38], rax
mov ecx, r13d
sub ecx, 0x100
je 0x180021d97
sub ecx, r12d
je 0x180021d17
cmp ecx, 4
jne 0x18002205f
cmp r14, rbx
jne 0x180021d02
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetKeyState]
cmp ax, bx
jge 0x18002209b
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0xc0]
cmp word [rdx + 0x10], 0x20
je 0x180022091
jmp 0x180021d1f
mov rdx, qword [rsp + 0xc0]
mov rcx, rax
call fcn.1800210b4
cmp r13d, 0x102
jne 0x180021d38
test al, 0x84
jne 0x180022087
mov r13, qword [rsp + 0xc0]
mov edx, 9
cmp word [r13 + 0x10], dx
jne 0x180021d55
test r12b, al
jne 0x1800220a3
cmp word [r13 + 0x10], 0x20
jne 0x180021d64
xor eax, eax
jmp 0x18002213f
mov r8, r13
mov rdx, qword [rsp + 0x38]
mov rcx, rsi
call fcn.1800219e0
cmp rax, rbx
je 0x1800220a3
mov rcx, qword [rax + 8]
cmp rcx, rbx
je 0x1800220a3
mov rdx, r13
call fcn.180018cd0
jmp 0x1800220ea
mov r13, qword [rsp + 0xc0]
mov rdx, r13
mov rcx, rax
call fcn.1800210b4
movzx ecx, word [r13 + 0x10]
cmp ecx, 3
je 0x180021fe6
mov edx, 9
cmp ecx, edx
je 0x180021f2b
cmp ecx, 0xd
je 0x180021eeb
cmp ecx, r15d
je 0x180021fe6
cmp ecx, 0x24
jle 0x1800220a3
cmp ecx, 0x26
jle 0x180021df8
cmp ecx, 0x28
jle 0x180021dfd
cmp ecx, 0x2b
je 0x180021eeb
jmp 0x1800220a3
mov r15d, edi
jmp 0x180021e00
mov r15d, ebx
mov rdx, r13
mov rcx, r14
call fcn.1800210b4
test dil, al
jne 0x1800220a3
cmp r15d, ebx
je 0x180021e28
xor edx, edx
mov rcx, rsi
call fcn.180013258
mov r12, rax
jmp 0x180021e35
xor edx, edx
mov rcx, rsi
call fcn.1800132bc
mov r12, rax
cmp r12, rbx
je 0x1800220a3
cmp dword [r12 + 0x10], ebx
je 0x180021e50
mov rdx, r12
mov rcx, rsi
call fcn.180012cdc
cmp qword [r12 + 8], rbx
je 0x180021e6d
mov rcx, qword [r12 + 8]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + 0x158]
jmp 0x1800220ea
cmp qword [r12], rbx
je 0x180021e81
mov rcx, qword [r12]
call fcn.18000e598
mov r13, rax
jmp 0x180021ea7
cmp r14, rbx
jne 0x180021e8b
mov rdx, rbx
jmp 0x180021e8f
mov rdx, qword [r14 + 0x40]
mov r8d, r15d
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_GetNextDlgGroupItem]
mov rcx, rax
call fcn.18000e598
mov r13, rax
cmp r13, rbx
je 0x18002207d
mov rax, qword [rsi + 0x98]
mov qword [rax + 0xd8], rbx
mov rcx, r13
call fcn.18002119c
cmp dword [r12 + 0x10], ebx
je 0x1800220ea
xor r9d, r9d
mov r8, rdi
mov edx, 0xf1
mov rcx, qword [r13 + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x1800220ea
test al, 4
jne 0x1800220a3
mov rcx, r14
call fcn.18002115c
test al, 0x10
je 0x180021f1b
mov r13, r14
mov rcx, r14
call fcn.1800127f4
mov r12d, eax
cmp r14, rbx
jne 0x180021ff9
jmp 0x180021fe6
mov rcx, rsi
call fcn.180021658
mov r12d, eax
jmp 0x180021fe6
test r12b, al
jne 0x1800220a3
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
call qword [sym.imp.USER32.dll_GetKeyState]
mov r12d, ebx
cmp ax, bx
setl r12b
mov r8d, r12d
xor edx, edx
mov rcx, rsi
call fcn.180012b38
cmp rax, rbx
je 0x1800220a3
cmp qword [rax + 8], rbx
je 0x180021f7a
mov rcx, qword [rax + 8]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + 0x158]
jmp 0x1800220ea
cmp qword [rax], rbx
je 0x180021f8c
mov rcx, qword [rax]
call fcn.18000e598
mov r12, rax
jmp 0x180021fb7
mov rdx, qword [rsp + 0x38]
cmp rdx, rbx
jne 0x180021f9b
mov rdx, rbx
jmp 0x180021f9f
mov rdx, qword [rdx + 0x40]
mov r8d, r12d
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_GetNextDlgTabItem]
mov rcx, rax
call fcn.18000e598
mov r12, rax
cmp r12, rbx
je 0x1800220ea
mov rax, qword [rsi + 0x98]
mov qword [rax + 0xd8], rbx
mov rcx, r12
call fcn.18002119c
mov rdx, r12
mov rcx, r14
call fcn.18002140c
jmp 0x1800220ea
mov edx, r12d
mov rcx, rsi
call fcn.1800214cc
mov r13, rax
cmp rax, rbx
je 0x180022073
mov rcx, r13
call fcn.18001289c
cmp eax, ebx
jne 0x18002201a
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBeep]
mov r13, qword [rsp + 0xc0]
jmp 0x1800220a3
cmp qword [r13 + 0xa0], rbx
je 0x180022069
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rbx
movzx r9d, bx
movzx r8d, di
mov edx, 0xfffffdd9
mov rcx, r13
call fcn.180012934
nop
jmp 0x1800220ea
mov r13, qword [rsp + 0xc0]
jmp 0x1800220a3
mov r13, qword [rsp + 0xc0]
jmp 0x1800220a3
mov r13, qword [rsp + 0xc0]
jmp 0x1800220a3
mov r13, qword [rsp + 0xc0]
jmp 0x1800220a3
mov r13, qword [rsp + 0xc0]
jmp 0x1800220a3
mov r13, qword [rsp + 0xc0]
jmp 0x1800220a3
mov r13, qword [rsp + 0xc0]
bt dword [rsi + 0x78], 0xc
jb 0x1800220e8
mov rdx, r13
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_IsDialogMessageW]
mov edi, eax
cmp eax, ebx
je 0x1800220ea
call qword [sym.imp.USER32.dll_GetFocus]
mov rcx, rax
call fcn.18000e598
cmp rax, r14
je 0x1800220ea
call qword [sym.imp.USER32.dll_GetFocus]
mov rcx, rax
call fcn.18000e598
mov rcx, rax
call fcn.18002136c
jmp 0x1800220ea
mov edi, ebx
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.USER32.dll_IsWindow]
cmp eax, ebx
je 0x18002213d
call qword [sym.imp.USER32.dll_GetFocus]
mov rcx, rax
call fcn.18000e598
mov rdx, rax
mov rcx, r14
call fcn.18002140c
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.USER32.dll_IsWindow]
cmp eax, ebx
je 0x18002213d
call qword [sym.imp.USER32.dll_GetFocus]
mov rcx, rax
call fcn.18000e598
mov r8, rax
mov rdx, r14
mov rcx, rsi
call fcn.180021694
mov eax, edi
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret