Function at 0x410802d0
Capabilities:
Log keystrokes via polling

Disassembly:
push rsi
push rdi
push r12
sub rsp, 0x40
mov rax, qword [0x41359af8]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov r12, rcx
mov rcx, qword [rcx + 0x270]
mov edi, edx
mov rax, qword [rcx]
mov edx, 0x64
mov rsi, r8
call qword [rax + 0x88]
test eax, eax
je 0x410805a3
mov rcx, qword [r12 + 0x270]
mov edx, 0x65
mov qword [rsp + 0x70], rbx
mov rax, qword [rcx]
call qword [rax + 0x88]
movsxd rbx, eax
lea ecx, [rbx - 1]
cmp ecx, 0xb
ja 0x4108059c
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x4108059c
movzx eax, dil
cmp eax, 0x20
movzx ecx, ax
jne 0x4108035b
xor edx, edx
jmp 0x410803c5
cmp cx, 0xd
jne 0x41080365
xor edx, edx
jmp 0x410803c5
lea eax, [rcx - 0x30]
cmp ax, 9
ja 0x41080376
movzx edx, cx
sub edx, 0x2f
jmp 0x410803c5
lea eax, [rcx - 0x41]
cmp ax, 0x19
ja 0x41080387
movzx edx, cx
sub edx, 0x36
jmp 0x410803c5
lea eax, [rcx - 0xba]
cmp ax, 5
ja 0x4108039e
movzx edx, cx
sub edx, 0x95
jmp 0x410803c5
lea eax, [rcx - 0xdb]
cmp ax, 3
ja 0x410803b5
movzx edx, cx
sub edx, 0xaf
jmp 0x410803c5
cmp cx, 0xc0
jne 0x41080595
mov edx, 0x2b
movzx eax, byte [rsi + 0x10]
xor ecx, ecx
cmp byte [rsi + 0x14], 1
sete cl
shr eax, 7
xor ecx, eax
je 0x410803f7
movsxd rax, edx
mov rcx, rbx
imul rcx, rcx, 0x62
add rcx, rax
lea rax, [0x41000000]
movzx eax, word [rax + rcx*2 + 0x344e20]
jmp 0x41080413
movsxd rax, edx
mov rcx, rbx
imul rcx, rcx, 0x62
add rcx, rax
lea rax, [0x41000000]
mov ax, word [rax + rcx*2 + 0x344420]
cmp ax, 0x3000
je 0x41080595
mov rdx, qword [r12 + 0x128]
xor ecx, ecx
mov word [rsp + 0x20], ax
mov qword [rsp + 0x22], rcx
mov word [rsp + 0x22], cx
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0x20]
repne scasw ax, word [rdi]
cmp rdx, 8
not rcx
lea rsi, [rcx - 1]
jb 0x4108045e
lea rdi, [r12 + 0x110]
mov rax, qword [rdi]
jmp 0x41080469
lea rdi, [r12 + 0x110]
mov rax, rdi
lea rcx, [rsp + 0x20]
cmp rcx, rax
jb 0x410804d5
cmp rdx, 8
jb 0x4108047e
mov rcx, qword [rdi]
jmp 0x41080481
mov rcx, rdi
mov rax, qword [r12 + 0x120]
lea rcx, [rcx + rax*2]
lea rax, [rsp + 0x20]
cmp rcx, rax
jbe 0x410804d5
cmp rdx, 8
jb 0x410804a0
mov rdi, qword [rdi]
lea r8, [rsp + 0x20]
lea rdx, [r12 + 0x108]
lea rcx, [r12 + 0x108]
sub r8, rdi
mov r9, rsi
sar r8, 1
call fcn.41022de0
mov rcx, r12
call fcn.4107eb00
mov eax, 1
jmp 0x4108059e
movabs rax, 0x7ffffffffffffffe
cmp rsi, rax
jbe 0x410804e9
call fcn.4120fbc0
mov rax, qword [r12 + 0x128]
cmp rax, rsi
jae 0x4108052b
mov r8, qword [r12 + 0x120]
lea rcx, [r12 + 0x108]
mov rdx, rsi
call fcn.41022ab0
test rsi, rsi
je 0x4108058d
mov rdx, qword [r12 + 0x128]
mov qword [rsp + 0x78], rbp
cmp rdx, 8
jb 0x41080555
mov rcx, qword [rdi]
jmp 0x41080558
test rsi, rsi
jne 0x4108050e
cmp rax, 8
mov qword [r12 + 0x120], rsi
jb 0x41080541
mov rdi, qword [rdi]
mov rcx, r12
mov word [rdi], 0
call fcn.4107eb00
mov eax, 1
jmp 0x4108059e
mov rcx, rdi
lea rbp, [rsi + rsi]
lea r8, [rsp + 0x20]
add rdx, rdx
mov r9, rbp
call fcn.412118b0
cmp qword [r12 + 0x128], 8
mov qword [r12 + 0x120], rsi
jb 0x41080582
mov rdi, qword [rdi]
mov word [rdi + rbp], 0
mov rbp, qword [rsp + 0x78]
mov rcx, r12
call fcn.4107eb00
mov eax, 1
jmp 0x4108059e
xor eax, eax
mov rbx, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.41211b80
add rsp, 0x40
pop r12
pop rdi
pop rsi
ret