Function at 0x47c8e8
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x28
cmp word [rdx + 0x18], 9
mov r14, r8
mov r13, rdx
mov rdi, rcx
jne 0x47c931
mov rax, qword [rcx + 0x80]
cmp qword [rdx], rax
jne 0x47c931
mov rcx, qword [rcx + 0x30]
mov rax, qword [rcx]
call qword [rax]
xor al, al
add rsp, 0x28
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, reloc.COMCTL32.dll_InitCommonControls
mov r12w, ax
shr r12d, 0xf
and r12b, 1
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0xa3
mov si, ax
shr esi, 0xf
and sil, 1
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, InitCommonControls
mov r15w, ax
shr r15d, 0xf
and r15b, 1
call qword [sym.imp.USER32.dll_GetKeyState]
xor ebx, ebx
mov bp, ax
mov qword [r14], rbx
movzx edx, word [r13 + 0x18]
shr ebp, 0xf
and bpl, 1
cmp dx, 0x30
jb 0x47c9cb
cmp dx, 0x39
ja 0x47c9cb
cmp r15b, bl
jne 0x47c9a9
cmp r12b, bl
je 0x47c9cb
movzx edx, dx
mov rcx, rdi
sub edx, 0x30
cmp bpl, bl
je 0x47c9c1
call fcn.0046fdec
jmp 0x47cdad
call fcn.00471100
jmp 0x47cdad
cmp dx, 0x71
je 0x47c9d7
cmp dx, 0x70
jne 0x47c9fe
cmp r12b, bl
je 0x47c9fe
cmp sil, bl
jne 0x47c9fe
cmp bpl, bl
jne 0x47c9fe
mov rcx, qword [rdi + 0x30]
cmp dx, 0x70
mov rax, qword [rcx]
setne bl
mov edx, ebx
call qword [rax + VariantCopy]
jmp 0x47cdad
cmp dx, 0x78
jne 0x47ca1f
cmp r12b, bl
jne 0x47ca1f
cmp sil, bl
jne 0x47ca1f
cmp bpl, bl
jne 0x47ca1f
lea rcx, [0x004d67c0]
call fcn.0044b3a0
movzx ecx, word [r13 + 0x18]
mov r14d, 8
cmp cx, 0x72
lea r15, [r14 - 9]
jb 0x47ca70
cmp cx, 0x7b
ja 0x47ca70
cmp sil, bl
je 0x47ca70
lea r8, [0x004a8cc8]
mov eax, ebx
mov rdx, r8
cmp word [rdx], cx
je 0x47ca5d
inc eax
add rdx, r14
cmp eax, 5
jb 0x47ca4b
mov eax, r15d
cmp eax, ebx
jl 0x47ca70
cdqe
mov rcx, rdi
mov edx, dword [r8 + rax*8 + 4]
call fcn.0048410c
movzx ecx, word [r13 + 0x18]
cmp ecx, 0x56
jg 0x47cc63
je 0x47cc4d
cmp ecx, 0x2d
jg 0x47cb96
je 0x47cb52
sub ecx, r14d
je 0x47cb45
sub ecx, r14d
je 0x47cb19
sub ecx, 0x12
je 0x47caf9
sub ecx, 3
je 0x47cae5
dec ecx
je 0x47cad1
dec ecx
je 0x47cae5
dec ecx
jne 0x47c91e
cmp bpl, bl
je 0x47c91e
mov rcx, rdi
call fcn.0048311c
jmp 0x47c91e
cmp r12b, bl
je 0x47cabb
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x18]
jmp 0x47c91e
cmp r12b, bl
je 0x47cabb
mov rcx, qword [rdi + 0x30]
mov rax, qword [rcx]
call qword [rax + 0x20]
jmp 0x47c91e
cmp sil, bl
je 0x47c91e
cmp r12b, bl
jne 0x47c91e
cmp bpl, bl
jne 0x47c91e
jmp 0x47cdad
mov rcx, qword [rdi + 0x80]
mov r9d, 1
mov r8, r15
mov edx, 0x100c
mov byte [rdi + 0x204], bl
call qword [sym.imp.USER32.dll_SendMessageW]
mov dword [rdi + 0x208], eax
jmp 0x47c91e
mov rcx, rdi
call fcn.004720b8
jmp 0x47cdad
cmp r12b, bl
jne 0x47c91e
cmp sil, bl
je 0x47cb6a
cmp bpl, bl
jne 0x47cb6f
jmp 0x47cbfc
cmp bpl, bl
je 0x47cb7d
cmp sil, bl
jne 0x47c91e
jmp 0x47cc56
cmp byte [rdi + 0xb3], bl
je 0x47c91e
mov rcx, rdi
call fcn.00483224
jmp 0x47cdad
cmp ecx, 0x2e
je 0x47cc3a
cmp ecx, 0x30
jle 0x47c91e
cmp ecx, 0x34
jle 0x47cc21
cmp ecx, 0x41
je 0x47cc09
cmp ecx, 0x43
je 0x47cbf3
cmp ecx, 0x4e
je 0x47cbdd
cmp ecx, 0x52
jne 0x47c91e
cmp sil, bl
je 0x47c91e
xor edx, edx
mov rcx, rdi
call fcn.0047c7cc
jmp 0x47cdad
cmp sil, bl
je 0x47c91e
mov rcx, rdi
call fcn.00482a98
jmp 0x47cdad
cmp sil, bl
je 0x47c91e
mov rcx, rdi
call fcn.0047dffc
jmp 0x47cdad
cmp sil, bl
je 0x47c91e
mov dl, 1
mov rcx, rdi
call fcn.0048374c
jmp 0x47cdad
cmp sil, bl
je 0x47c91e
lea edx, [rcx - 0x31]
mov rcx, rdi
call fcn.004663c0
jmp 0x47cdad
cmp bpl, bl
mov rcx, rdi
sete dl
call fcn.0048162c
jmp 0x47cdad
cmp sil, bl
je 0x47c91e
mov rcx, rdi
call fcn.0044af2c
jmp 0x47cdad
cmp ecx, 0x71
jg 0x47cd64
je 0x47cd3f
sub ecx, 0x57
je 0x47cd1c
dec ecx
je 0x47cd06
sub ecx, 2
je 0x47ccf0
sub ecx, 0x10
je 0x47cce3
dec ecx
je 0x47ccae
cmp ecx, 2
jne 0x47c91e
xor edx, edx
cmp r12b, bl
mov rcx, rdi
jne 0x47ccb8
cmp bpl, bl
je 0x47ccd9
jmp 0x47cc17
cmp r12b, bl
je 0x47ccc2
mov dl, 1
mov rcx, rdi
call fcn.004834a0
jmp 0x47cdad
cmp bpl, bl
jne 0x47cc12
cmp sil, bl
jne 0x47cdad
mov dl, 1
mov rcx, rdi
call fcn.00483940
jmp 0x47cdad
mov rcx, rdi
call fcn.00483774
jmp 0x47cdad
cmp sil, bl
je 0x47c91e
mov rcx, rdi
call fcn.00480e84
jmp 0x47cdad
cmp sil, bl
je 0x47c91e
mov rcx, rdi
call fcn.0044af2c
jmp 0x47cdad
cmp sil, bl
je 0x47c91e
mov rcx, qword [0x004d6778]
xor r9d, r9d
mov r8, r14
mov edx, 0x111
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x47cdad
cmp r12b, bl
jne 0x47c91e
cmp sil, bl
jne 0x47c91e
cmp bpl, bl
jne 0x47c91e
mov rcx, rdi
call fcn.00480bec
jmp 0x47cdad
sub ecx, 0x72
je 0x47ce34
dec ecx
je 0x47ce12
dec ecx
je 0x47cdef
dec ecx
je 0x47cdd9
dec ecx
je 0x47cdb4
cmp ecx, 5
jne 0x47c91e
cmp r12b, bl
je 0x47c91e
cmp sil, bl
jne 0x47c91e
cmp bpl, bl
jne 0x47c91e
mov rcx, rdi
call fcn.00471f00
mov al, 1
jmp 0x47c920
cmp r12b, bl
jne 0x47c91e
cmp sil, bl
jne 0x47c91e
cmp bpl, bl
jne 0x47c91e
mov rcx, rdi
call fcn.0048249c
jmp 0x47cdad
cmp r12b, bl
jne 0x47c91e
cmp sil, bl
jne 0x47c91e
mov dl, 1
jmp 0x47ce03
cmp r12b, bl
jne 0x47c91e
cmp sil, bl
jne 0x47c91e
xor edx, edx
mov rcx, qword [rdi + 0x30]
mov r8b, bpl
mov rax, qword [rcx]
call qword [rax + InitCommonControls]
jmp 0x47cdad
cmp r12b, bl
jne 0x47c91e
cmp sil, bl
jne 0x47c91e
cmp bpl, bl
mov rcx, rdi
jne 0x47cbe9
mov dl, 1
jmp 0x47ce54
cmp r12b, bl
jne 0x47c91e
cmp sil, bl
jne 0x47c91e
cmp bpl, bl
jne 0x47c91e
xor edx, edx
mov rcx, rdi
call fcn.0047a1d4
jmp 0x47cdad