Function at 0x140212b01
Capabilities:
Log keystrokes via polling

Disassembly:
jmp 0x1404660e0
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0xf0
lea rdi, [rsp + 0x30]
mov ecx, 0x30
mov eax, 0xcccccccc
rep stosd dword [rdi], eax
mov rcx, qword [rsp + 0x100]
mov rax, qword [0x140961e80]
xor rax, rsp
mov qword [rsp + 0xe0], rax
mov byte [rsp + 0xc8], 0
cmp dword [rsp + 0x108], 0x26
je 0x140466167
cmp dword [rsp + 0x108], 0x28
je 0x140466167
cmp dword [rsp + 0x108], 0x24
je 0x140466167
cmp dword [rsp + 0x108], 0x23
je 0x140466167
cmp dword [rsp + 0x108], 0x21
je 0x140466167
cmp dword [rsp + 0x108], 0x22
je 0x140466167
xor al, al
jmp 0x140466852
mov rax, qword [rsp + 0x100]
mov rax, qword [rax + 0x128]
mov eax, dword [rax]
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 0
jne 0x14046618a
mov al, 1
jmp 0x140466852
mov eax, dword [rsp + 0x108]
mov dword [rsp + 0xcc], eax
mov eax, dword [rsp + 0xcc]
sub eax, 0x21
mov dword [rsp + 0xcc], eax
cmp dword [rsp + 0xcc], 7
ja case.0x1404661cf.37
mov eax, dword [rsp + 0xcc]
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0x466880]
add rax, rcx
jmp rax
mov rax, qword [rsp + 0x100]
cmp qword [rax + 0x98], 0
je 0x14046621a
mov rax, qword [rsp + 0x100]
mov rax, qword [rax + 0x98]
cmp dword [rax + 0x2c], 0
jbe 0x14046621a
mov rax, qword [rsp + 0x100]
mov rax, qword [rax + 0x98]
mov eax, dword [rax + 0x2c]
dec eax
mov byte [rsp + 0xc8], 1
mov dword [rsp + 0x34], eax
jmp 0x14046622a
mov byte [rsp + 0xc8], 1
mov dword [rsp + 0x34], 0
jmp case.0x1404661cf.37
mov rax, qword [rsp + 0x100]
cmp qword [rax + 0x98], 0
je 0x140466296
mov rax, qword [rsp + 0x100]
mov rax, qword [rax + 0x98]
mov eax, dword [rax + 0x2c]
inc eax
mov byte [rsp + 0xc8], 1
mov dword [rsp + 0x34], eax
cmp byte [rsp + 0xc8], 0
jne 0x140466278
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x34], eax
jb 0x140466294
mov eax, dword [rsp + 0x30]
dec eax
mov byte [rsp + 0xc8], 1
mov dword [rsp + 0x34], eax
jmp 0x1404662a6
mov byte [rsp + 0xc8], 1
mov dword [rsp + 0x34], 0
jmp case.0x1404661cf.37
mov byte [rsp + 0xc8], 1
mov dword [rsp + 0x34], 0
jmp case.0x1404661cf.37
mov eax, dword [rsp + 0x30]
dec eax
mov byte [rsp + 0xc8], 1
mov dword [rsp + 0x34], eax
jmp case.0x1404661cf.37
mov rax, qword [rsp + 0x100]
cmp qword [rax + 0x98], 0
je 0x140466309
mov rax, qword [rsp + 0x100]
mov rax, qword [rax + 0x98]
mov byte [rsp + 0xc8], 1
mov eax, dword [rax + 0x2c]
mov dword [rsp + 0x34], eax
jmp 0x140466319
mov byte [rsp + 0xc8], 1
mov dword [rsp + 0x34], 0
mov rax, qword [rsp + 0x100]
mov eax, dword [rax + 0x40]
shr eax, 3
and eax, 1
test eax, eax
je 0x140466342
mov rax, qword [rsp + 0x100]
mov eax, dword [rax + 0x7c]
mov dword [rsp + 0xd0], eax
jmp 0x14046634d
mov dword [rsp + 0xd0], 0
mov rax, qword [rsp + 0x100]
mov rcx, qword [rsp + 0x100]
mov ecx, dword [rcx + 0x70]
mov eax, dword [rax + 0x6c]
sub eax, ecx
sub eax, dword [rsp + 0xd0]
mov dword [rsp + 0xb4], eax
cmp dword [rsp + 0xb4], 0
jge 0x140466384
mov al, 1
jmp 0x140466852
mov eax, dword [rsp + 0xb4]
cdq
mov rcx, qword [rsp + 0x100]
idiv dword [rcx + 0x74]
dec eax
mov dword [rsp + 0xb4], eax
cmp dword [rsp + 0xb4], 0
jge 0x1404663b1
mov al, 1
jmp 0x140466852
cmp dword [rsp + 0x108], 0x21
jne 0x14046647a
mov rax, qword [rsp + 0x100]
mov eax, dword [rax + 0x80]
mov dword [rsp + 0xb8], eax
cmp byte [rsp + 0xc8], 0
jne 0x1404663eb
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
mov eax, dword [rsp + 0xb8]
cmp dword [rsp + 0x34], eax
jbe 0x14046640d
mov byte [rsp + 0xc8], 1
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x34], eax
jmp 0x140466475
cmp byte [rsp + 0xc8], 0
jne 0x140466424
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
mov eax, dword [rsp + 0xb4]
cmp dword [rsp + 0x34], eax
jb 0x140466465
cmp byte [rsp + 0xc8], 0
jne 0x140466448
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
mov eax, dword [rsp + 0xb4]
mov ecx, dword [rsp + 0x34]
sub ecx, eax
mov eax, ecx
mov byte [rsp + 0xc8], 1
mov dword [rsp + 0x34], eax
jmp 0x140466475
mov byte [rsp + 0xc8], 1
mov dword [rsp + 0x34], 0
jmp case.0x1404661cf.37
mov rax, qword [rsp + 0x100]
mov eax, dword [rax + 0x80]
add eax, dword [rsp + 0xb4]
mov dword [rsp + 0xbc], eax
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0xbc], eax
jb 0x1404664b0
mov eax, dword [rsp + 0x30]
dec eax
mov dword [rsp + 0xbc], eax
cmp byte [rsp + 0xc8], 0
jne 0x1404664c7
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
mov eax, dword [rsp + 0xbc]
cmp dword [rsp + 0x34], eax
jae 0x1404664e9
mov byte [rsp + 0xc8], 1
mov eax, dword [rsp + 0xbc]
mov dword [rsp + 0x34], eax
jmp case.0x1404661cf.37
cmp byte [rsp + 0xc8], 0
jne 0x140466500
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
mov eax, dword [rsp + 0xb4]
mov ecx, dword [rsp + 0x34]
add ecx, eax
mov eax, ecx
mov byte [rsp + 0xc8], 1
mov dword [rsp + 0x34], eax
cmp byte [rsp + 0xc8], 0
jne 0x140466532
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
mov eax, dword [rsp + 0x30]
cmp dword [rsp + 0x34], eax
jb case.0x1404661cf.37
mov eax, dword [rsp + 0x30]
dec eax
mov byte [rsp + 0xc8], 1
mov dword [rsp + 0x34], eax
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, eax
jge 0x14046656b
mov dword [rsp + 0xd4], 1
jmp 0x140466576
mov dword [rsp + 0xd4], 0
movzx eax, byte [rsp + 0xd4]
mov byte [rsp + 0x38], al
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
test eax, eax
jge 0x14046659f
mov dword [rsp + 0xd8], 1
jmp 0x1404665aa
mov dword [rsp + 0xd8], 0
movzx eax, byte [rsp + 0xd8]
mov byte [rsp + 0x39], al
cmp byte [rsp + 0xc8], 0
jne 0x1404665cd
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
mov rax, qword [rsp + 0x100]
mov rax, qword [rax + 0x128]
mov ecx, dword [rsp + 0x34]
mov rax, qword [rax + 8]
mov rdx, qword [rsp + 0x100]
mov rax, qword [rax + rcx*8]
mov qword [rdx + 0x98], rax
xor r8d, r8d
mov rax, qword [rsp + 0x100]
mov rdx, qword [rax + 0x98]
mov rcx, qword [rsp + 0x100]
call fcn.140213f38
movzx eax, byte [rsp + 0x39]
test eax, eax
je 0x140466746
mov rax, qword [rsp + 0x100]
cmp dword [rax + 0xa4], 0xffffffff
je 0x140466746
cmp byte [rsp + 0xc8], 0
jne 0x14046664f
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
mov rax, qword [rsp + 0x100]
mov eax, dword [rax + 0xa4]
cmp dword [rsp + 0x34], eax
jbe 0x140466696
mov rax, qword [rsp + 0x100]
mov eax, dword [rax + 0xa4]
mov dword [rsp + 0x3c], eax
cmp byte [rsp + 0xc8], 0
jne 0x14046668c
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x40], eax
jmp 0x1404666c7
cmp byte [rsp + 0xc8], 0
jne 0x1404666ad
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x3c], eax
mov rax, qword [rsp + 0x100]
mov eax, dword [rax + 0xa4]
mov dword [rsp + 0x40], eax
lea rax, [rsp + 0x74]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x54]
mov qword [rsp + 0x20], rax
mov r9d, 4
mov r8d, dword [rsp + 0x40]
mov edx, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x100]
call fcn.14020d74b
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
mov r9b, 1
mov r8d, dword [rsp + 0x74]
mov edx, dword [rsp + 0x54]
mov rcx, qword [rsp + 0x100]
call fcn.1402113e6
movzx eax, al
test eax, eax
je 0x140466741
xor r8d, r8d
lea rdx, [rsp + 0x98]
mov rax, qword [rsp + 0x100]
mov rcx, qword [rax]
call qword [sym.imp.USER32.dll_InvalidateRect]
nop
jmp 0x14046681b
movzx eax, byte [rsp + 0x38]
test eax, eax
jne 0x14046681b
mov rax, qword [rsp + 0x100]
mov rax, qword [rax + 0x98]
mov rcx, qword [rsp + 0x100]
mov eax, dword [rax + 0x2c]
mov dword [rcx + 0xa4], eax
cmp byte [rsp + 0xc8], 0
jne 0x14046678a
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
cmp byte [rsp + 0xc8], 0
jne 0x1404667a1
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
lea rax, [rsp + 0x74]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x54]
mov qword [rsp + 0x20], rax
mov r9d, 4
mov r8d, dword [rsp + 0x34]
mov edx, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x100]
call fcn.14020d74b
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
mov r9b, 1
mov r8d, dword [rsp + 0x74]
mov edx, dword [rsp + 0x54]
mov rcx, qword [rsp + 0x100]
call fcn.1402113e6
movzx eax, al
test eax, eax
je 0x14046681b
xor r8d, r8d
lea rdx, [rsp + 0x98]
mov rax, qword [rsp + 0x100]
mov rcx, qword [rax]
call qword [sym.imp.USER32.dll_InvalidateRect]
nop
cmp byte [rsp + 0xc8], 0
jne 0x140466832
lea rcx, [0x1407d2030]
call fcn.14020ba18
nop
mov edx, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x100]
call fcn.14020ea4c
mov rcx, qword [rsp + 0x100]
call fcn.14020dff2
mov al, 1
mov rdi, rax
mov rcx, rsp
lea rdx, [0x1407d2120]
call fcn.1402124fd
mov rax, rdi
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.14020ee98
add rsp, 0xf0
pop rdi
ret