Function at 0x14003b4b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x348
mov rax, qword [0x14017d340]
xor rax, rsp
mov qword [rsp + 0x338], rax
movzx eax, byte [0x1402397d5]
test eax, eax
je 0x14003b4e0
jmp 0x14003ba86
movzx eax, byte [0x140239b1e]
test eax, eax
jne 0x14003b4f0
jmp 0x14003ba86
mov rax, qword [rsp + 0x360]
add rax, 0xa0
mov rdx, rax
lea rcx, [rsp + 0x318]
call fcn.140029e30
lea rdx, [rsp + 0x318]
lea rcx, [0x140238090]
call fcn.14003c820
movzx eax, al
test eax, eax
je 0x14003b544
mov byte [0x140239b3c], 0
lea rdx, [rsp + 0x318]
lea rcx, [0x140238090]
call fcn.140029c90
mov edx, 0x18
lea rcx, [rsp + 0x2f8]
call fcn.140008f40
lea rcx, [rsp + 0x2c]
call fcn.140009790
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x20]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0x148]
lea rcx, [rsp + 0x20]
call fcn.14003baa0
mov rcx, rax
call fcn.140028580
mov rdx, rax
lea rcx, [rsp + 0x160]
call fcn.140009ac0
lea rax, [rsp + 0x21]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0x108]
lea rcx, [rsp + 0x21]
call fcn.14003bb50
mov rcx, rax
call fcn.140028580
mov rdx, rax
lea rcx, [rsp + 0x180]
call fcn.140009ac0
lea rax, [rsp + 0x22]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0x118]
lea rcx, [rsp + 0x22]
call fcn.14003bbe0
mov rcx, rax
call fcn.140028580
mov rdx, rax
lea rcx, [rsp + 0x1a0]
call fcn.140009ac0
lea rax, [rsp + 0x23]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0xf8]
lea rcx, [rsp + 0x23]
call fcn.14003bc70
mov rcx, rax
call fcn.140028580
mov rdx, rax
lea rcx, [rsp + 0x1c0]
call fcn.140009ac0
lea rax, [rsp + 0x24]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0xb8]
lea rcx, [rsp + 0x24]
call fcn.14003bce0
mov rcx, rax
call fcn.140028580
mov rdx, rax
lea rcx, [rsp + 0x1e0]
call fcn.140009ac0
lea rax, [rsp + 0x25]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0x128]
lea rcx, [rsp + 0x25]
call fcn.14003bd50
mov rcx, rax
call fcn.140028580
mov rdx, rax
lea rcx, [rsp + 0x200]
call fcn.140009ac0
lea rax, [rsp + 0x26]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x26]
call fcn.14003bdf0
mov rcx, rax
call fcn.140028580
mov rdx, rax
lea rcx, [rsp + 0x220]
call fcn.140009ac0
lea rax, [rsp + 0x27]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0x27]
call fcn.14003be30
mov rcx, rax
call fcn.140028580
mov rdx, rax
lea rcx, [rsp + 0x240]
call fcn.140009ac0
lea rax, [rsp + 0x28]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x28]
call fcn.14003bea0
mov rcx, rax
call fcn.140028580
mov rdx, rax
lea rcx, [rsp + 0x260]
call fcn.140009ac0
lea rax, [rsp + 0x29]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0xd8]
lea rcx, [rsp + 0x29]
call fcn.14003bee0
mov rcx, rax
call fcn.140028580
mov rdx, rax
lea rcx, [rsp + 0x280]
call fcn.140009ac0
lea rax, [rsp + 0x2a]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0xe8]
lea rcx, [rsp + 0x2a]
call fcn.14003bf50
mov rcx, rax
call fcn.140028580
mov rdx, rax
lea rcx, [rsp + 0x2a0]
call fcn.140009ac0
lea rax, [rsp + 0x2b]
mov rdi, rax
xor eax, eax
mov ecx, 1
rep stosb byte [rdi], al
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x2b]
call fcn.14003bfc0
mov rcx, rax
call fcn.140028580
mov rdx, rax
lea rcx, [rsp + 0x2c0]
call fcn.140009ac0
lea rax, [rsp + 0x2e0]
mov r8, rax
lea rdx, [rsp + 0x160]
lea rcx, [rsp + 0x138]
call fcn.1400096b0
lea rcx, [rsp + 0x60]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x70]
lea rcx, [rsp + 0x60]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x10
rep movsb byte [rdi], byte [rsi]
mov r8, qword [rsp + 0x48]
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x2f8]
call fcn.14003c5c0
lea r9, [fcn.140009a90]
mov r8d, 0xc
mov edx, 0x20
lea rcx, [rsp + 0x160]
call fcn.140130c1c
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x2f8]
call fcn.140029780
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x2f8]
call fcn.1400297e0
mov rax, qword [rax]
mov qword [rsp + 0x58], rax
lea r9, [rsp + 0x318]
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0xa8]
call fcn.14003c860
mov qword [rsp + 0x40], rax
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x2f8]
call fcn.140029780
mov qword [rsp + 0x38], rax
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
call fcn.140028630
movzx eax, al
test eax, eax
je 0x14003b955
lea rcx, [rsp + 0x2f8]
call fcn.140028350
lea rcx, [rsp + 0x318]
call fcn.140009a90
jmp 0x14003ba86
mov eax, dword [0x1401c3b14]
mov rcx, qword [rsp + 0x360]
add rax, qword [rcx + 0x48]
lea r8, [rsp + 0x310]
mov rdx, rax
lea rcx, [0x140239d28]
call fcn.14000a770
mov eax, dword [0x1401c3bc4]
mov rcx, qword [rsp + 0x310]
add rcx, rax
mov rax, rcx
lea r8, [rsp + 0x2f0]
mov rdx, rax
lea rcx, [0x140239d28]
call fcn.14002bac0
movzx eax, byte [rsp + 0x2f0]
test eax, eax
je 0x14003b9bc
mov byte [0x140239b3c], 0
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsp + 0x34], eax
movzx eax, byte [0x14017d3f8]
test eax, eax
jne 0x14003ba2d
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x14003ba2d
mov eax, dword [0x140239b40]
mov ecx, dword [rsp + 0x34]
sub ecx, eax
mov eax, ecx
cmp eax, 0x1f4
jb 0x14003ba2d
movzx eax, byte [0x140239b3c]
test eax, eax
jne 0x14003ba10
mov dword [rsp + 0x30], 1
jmp 0x14003ba18
mov dword [rsp + 0x30], 0
movzx eax, byte [rsp + 0x30]
mov byte [0x140239b3c], al
mov eax, dword [rsp + 0x34]
mov dword [0x140239b40], eax
movzx eax, byte [0x140239b3c]
test eax, eax
je 0x14003ba6b
mov dword [rsp + 0x2f4], 0x2d
mov eax, dword [0x1401c3b60]
mov rcx, qword [rsp + 0x360]
add rax, qword [rcx]
lea r8, [rsp + 0x2f4]
mov rdx, rax
lea rcx, [0x140239d28]
call fcn.140036ae0
lea rcx, [rsp + 0x2f8]
call fcn.140028350
lea rcx, [rsp + 0x318]
call fcn.140009a90
nop
mov rcx, qword [rsp + 0x338]
xor rcx, rsp
call fcn.140130aa0
add rsp, 0x348
pop rdi
pop rsi
ret