Function at 0x14005a4e0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
push rbp
push rbx
push rdi
lea rbp, [rax - 0x388]
sub rsp, 0x470
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
mov rax, qword [0x1400ac040]
xor rax, rsp
mov qword [rbp + 0x338], rax
mov rax, qword [0x140139680]
mov ecx, dword [0x1401397f0]
add rax, 0x1901948
test ecx, ecx
je 0x14005a558
test rax, rax
je 0x14005a558
mov qword [rbp - 0x48], rax
lea rax, [rsp + 0x70]
mov qword [rbp - 0x40], rax
xor eax, eax
mov dword [rbp - 0x50], ecx
lea rcx, [rbp - 0x50]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x38], 8
mov dword [rbp - 0x30], 0x80000001
call qword [0x1401397e8]
mov rdx, qword [rsp + 0x70]
add rdx, 0x7e4
call fcn.140067970
mov rdx, qword [0x140139680]
mov ecx, dword [0x1401397f0]
add rdx, 0x18b1fe8
mov edi, eax
test ecx, ecx
je 0x14005a5bd
test rdx, rdx
je 0x14005a5bd
lea rax, [rsp + 0x70]
mov dword [rbp - 0x50], ecx
mov qword [rbp - 0x40], rax
lea rcx, [rbp - 0x50]
xor eax, eax
mov qword [rbp - 0x48], rdx
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x38], 8
mov dword [rbp - 0x30], 0x80000001
call qword [0x1401397e8]
mov ecx, dword [0x1401397f0]
mov rbx, qword [rsp + 0x70]
mov eax, edi
shr eax, 9
and eax, 0x3f
shl eax, 3
lea rdx, [rbx + 0x10]
add rdx, rax
test ecx, ecx
je 0x14005a60b
test rdx, rdx
je 0x14005a60b
lea rax, [rbp + 0x20]
mov dword [rbp - 0x50], ecx
mov qword [rbp - 0x40], rax
lea rcx, [rbp - 0x50]
xor eax, eax
mov qword [rbp - 0x48], rdx
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x38], 8
mov dword [rbp - 0x30], 0x80000001
call qword [0x1401397e8]
mov rdx, rdi
mov rcx, rbx
call fcn.14004e630
mov rcx, rax
mov qword [rbp + 0x20], rax
mov rdi, rax
call fcn.14004e850
mov rcx, qword [0x1401396c0]
movzx ebx, ax
movss xmm0, dword [rcx + 0x5c]
movss xmm6, dword [rcx + 0x58]
mov ecx, dword [rcx + 0xe0]
movss dword [0x140139678], xmm0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005a670
mov rcx, qword [0x1401396c0]
mov dword [0x140139678], 0x40000000
movss xmm6, dword [rcx + 0xe4]
jmp 0x14005a77d
lea eax, [rbx - 0x2a]
cmp ax, 0x29
ja 0x14005a689
movabs rcx, 0x201180200ff
bt rcx, rax
jb 0x14005a6a4
mov ecx, 0x1fb
movzx eax, bx
sub ax, cx
cmp ax, 0x10
ja 0x14005a6bb
mov ecx, 0x1b3a7
bt ecx, eax
jae 0x14005a6bb
movss xmm6, dword [0x1400a0420]
mov dword [0x140139678], 0x3c23d70a
jmp 0x14005a77d
cmp ebx, 1
jne 0x14005a6d6
mov rax, qword [0x1401396c0]
movss xmm6, dword [rax + 0x10]
movss xmm0, dword [rax + 0x14]
jmp 0x14005a775
lea eax, [rbx - 2]
cmp ax, 0x3e
ja 0x14005a702
movabs rcx, 0x6800000040000007
bt rcx, rax
jae 0x14005a702
mov rax, qword [0x1401396c0]
movss xmm6, dword [rax + 0x1c]
movss xmm0, dword [rax + 0x20]
jmp 0x14005a775
cmp ebx, 0x3c
ja 0x14005a72a
movabs rcx, 0x1000008000012580
bt rcx, rbx
jae 0x14005a72a
mov rax, qword [0x1401396c0]
movss xmm6, dword [rax + 0x28]
movss xmm0, dword [rax + 0x2c]
jmp 0x14005a775
cmp ebx, 0x28
jne 0x14005a742
mov rax, qword [0x1401396c0]
movss xmm6, dword [rax + 0x40]
movss xmm0, dword [rax + 0x44]
jmp 0x14005a775
cmp ebx, 9
jne 0x14005a75a
mov rax, qword [0x1401396c0]
movss xmm6, dword [rax + 0x34]
movss xmm0, dword [rax + 0x38]
jmp 0x14005a775
cmp ebx, 0xb
je 0x14005a764
cmp ebx, 0x26
jne 0x14005a77d
mov rax, qword [0x1401396c0]
movss xmm6, dword [rax + 0x4c]
movss xmm0, dword [rax + 0x50]
movss dword [0x140139678], xmm0
mov ecx, dword [0x1401397f0]
lea rax, [rdi + 0x3cb]
test ecx, ecx
je 0x14005a7c1
test rax, rax
je 0x14005a7c1
mov qword [rbp - 0x48], rax
lea rax, [rbp - 0x20]
mov qword [rbp - 0x40], rax
xor eax, eax
mov dword [rbp - 0x50], ecx
lea rcx, [rbp - 0x50]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x38], 4
mov dword [rbp - 0x30], 0x80000001
call qword [0x1401397e8]
mov ecx, dword [0x1401397f0]
lea rax, [rdi + 0x127c]
mov qword [rbp - 0x70], 0
xorps xmm7, xmm7
mov dword [rbp - 0x68], 0
test ecx, ecx
je 0x14005a817
test rax, rax
je 0x14005a817
mov qword [rbp + 0x40], rax
lea rax, [rbp - 0x70]
mov qword [rbp + 0x48], rax
xor eax, eax
mov dword [rbp + 0x38], ecx
lea rcx, [rbp + 0x38]
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x50], 0xc
mov dword [rbp + 0x58], 0x80000001
call qword [0x1401397e8]
mov ecx, dword [0x1401397f0]
lea rax, [rdi + 0xc58]
xorps xmm0, xmm0
xorps xmm2, xmm2
movss dword [rbp - 0x80], xmm0
xorps xmm1, xmm1
movss dword [rbp - 0x7c], xmm2
movss dword [rbp - 0x78], xmm1
test ecx, ecx
je 0x14005a88b
test rax, rax
je 0x14005a88b
mov qword [rbp + 0x70], rax
lea rax, [rbp - 0x80]
mov qword [rbp + 0x78], rax
xor eax, eax
mov dword [rbp + 0x68], ecx
lea rcx, [rbp + 0x68]
mov qword [rbp + 0x90], rax
mov qword [rbp + 0x80], 0xc
mov dword [rbp + 0x88], 0x80000001
call qword [0x1401397e8]
movss xmm1, dword [rbp - 0x78]
movss xmm2, dword [rbp - 0x7c]
movss xmm0, dword [rbp - 0x80]
addss xmm0, dword [rbp - 0x70]
addss xmm1, dword [rbp - 0x68]
mov rax, qword [0x140139680]
mov edx, dword [0x1401397f0]
mov qword [rbp - 8], 0
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rbp - 0x6c]
lea rcx, [rax + 0x191f100]
movss dword [rsp + 0x38], xmm1
addss xmm0, xmm2
mov dword [rbp], 0
movss dword [rsp + 0x34], xmm0
test edx, edx
je 0x14005a926
test rcx, rcx
je 0x14005a926
lea rax, [rbp - 8]
mov qword [rbp + 0xa0], rcx
mov qword [rbp + 0xa8], rax
lea rcx, [rbp + 0x98]
xor eax, eax
mov dword [rbp + 0x98], edx
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0xb0], 0xc
mov dword [rbp + 0xb8], 0x80000001
call qword [0x1401397e8]
mov rax, qword [0x140139680]
mov ecx, dword [0x1401397f0]
xor r8d, r8d
add rax, 0x18b1fe8
mov qword [rsp + 0x28], r8
test ecx, ecx
je 0x14005a989
test rax, rax
je 0x14005a989
mov qword [rbp + 0xd0], rax
lea rax, [rbp - 0x10]
mov qword [rbp + 0xd8], rax
xor eax, eax
mov dword [rbp + 0xc8], ecx
lea rcx, [rbp + 0xc8]
mov qword [rbp + 0xf0], rax
mov qword [rbp + 0xe0], 8
mov dword [rbp + 0xe8], 0x80000001
call qword [0x1401397e8]
xor r8d, r8d
mov rcx, qword [rbp - 0x10]
test rcx, rcx
jne 0x14005a999
xor eax, eax
jmp 0x14005b026
mov rdi, qword [rsp + 0x70]
mov edx, 0x41
mov qword [rsp + 0x490], rsi
mov rsi, qword [rbp + 0x10]
mov qword [rsp + 0x498], r12
mov r12, qword [rbp + 8]
mov qword [rsp + 0x4a0], r13
mov r13, qword [rbp + 0x18]
mov qword [rsp + 0x468], r14
mov r14d, dword [rsp + 0x78]
mov qword [rsp + 0x460], r15
mov r15, r8
mov qword [rsp + 0x20], rdx
nop dword [rax]
nop dword [rax + rax]
mov rax, r15
add rcx, 0x10
and eax, 0x7fff
shl rax, 3
sar rax, 9
add rcx, rax
mov eax, dword [0x1401397f0]
test eax, eax
je 0x14005aa67
test rcx, rcx
je 0x14005aa67
mov dword [rbp + 0xf8], eax
lea rax, [rbp + 8]
mov qword [rbp + 0x108], rax
xor eax, eax
mov qword [rbp + 0x100], rcx
lea rcx, [rbp + 0xf8]
mov qword [rbp + 0x120], rax
mov qword [rbp + 0x110], 8
mov dword [rbp + 0x118], 0x80000001
call qword [0x1401397e8]
mov rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x28]
mov r12, qword [rbp + 8]
test r12, r12
je 0x14005afe5
mov rax, r15
and eax, 0x1ff
imul rcx, rax, 0x78
mov eax, dword [0x1401397f0]
add rcx, r12
test eax, eax
je 0x14005aad5
test rcx, rcx
je 0x14005aad5
mov dword [rbp + 0x128], eax
lea rax, [rbp + 0x10]
mov qword [rbp + 0x138], rax
xor eax, eax
mov qword [rbp + 0x130], rcx
lea rcx, [rbp + 0x128]
mov qword [rbp + 0x150], rax
mov qword [rbp + 0x140], 8
mov dword [rbp + 0x148], 0x80000001
call qword [0x1401397e8]
mov rsi, qword [rbp + 0x10]
test rsi, rsi
je 0x14005afdb
mov ecx, dword [0x1401397f0]
lea rax, [rsi + 0x7e4]
test ecx, ecx
je 0x14005ab3d
test rax, rax
je 0x14005ab3d
mov qword [rbp + 0x160], rax
lea rax, [rsp + 0x78]
mov qword [rbp + 0x168], rax
xor eax, eax
mov dword [rbp + 0x158], ecx
lea rcx, [rbp + 0x158]
mov qword [rbp + 0x180], rax
mov qword [rbp + 0x170], 4
mov dword [rbp + 0x178], 0x80000001
call qword [0x1401397e8]
mov r14d, dword [rsp + 0x78]
test r14d, r14d
je 0x14005afdb
mov rcx, qword [rbp - 0x10]
mov eax, r14d
shr rax, 9
and eax, 0x3f
mov ebx, r14d
lea rcx, [rcx + rax*8]
mov eax, dword [0x1401397f0]
add rcx, 0x10
test eax, eax
je 0x14005abb5
test rcx, rcx
je 0x14005abb5
mov dword [rbp + 0x188], eax
lea rax, [rbp + 0x18]
mov qword [rbp + 0x198], rax
xor eax, eax
mov qword [rbp + 0x190], rcx
lea rcx, [rbp + 0x188]
mov qword [rbp + 0x1b0], rax
mov qword [rbp + 0x1a0], 8
mov dword [rbp + 0x1a8], 0x80000001
call qword [0x1401397e8]
mov r13, qword [rbp + 0x18]
test r13, r13
je 0x14005afdb
mov ecx, dword [0x1401397f0]
and ebx, 0x1ff
imul rax, rbx, 0x78
add rax, r13
test ecx, ecx
je 0x14005ac23
test rax, rax
je 0x14005ac23
mov qword [rbp + 0x1c0], rax
lea rax, [rsp + 0x70]
mov qword [rbp + 0x1c8], rax
xor eax, eax
mov dword [rbp + 0x1b8], ecx
lea rcx, [rbp + 0x1b8]
mov qword [rbp + 0x1e0], rax
mov qword [rbp + 0x1d0], 8
mov dword [rbp + 0x1d8], 0x80000001
call qword [0x1401397e8]
mov rdi, qword [rsp + 0x70]
test rdi, rdi
je 0x14005afdb
mov ecx, dword [0x1401397f0]
lea rax, [rsi + 0x6c8]
test ecx, ecx
je 0x14005ac86
test rax, rax
je 0x14005ac86
mov qword [rbp + 0x1f0], rax
lea rax, [rsp + 0x68]
mov qword [rbp + 0x1f8], rax
xor eax, eax
mov dword [rbp + 0x1e8], ecx
lea rcx, [rbp + 0x1e8]
mov qword [rbp + 0x210], rax
mov qword [rbp + 0x200], 1
mov dword [rbp + 0x208], 0x80000001
call qword [0x1401397e8]
cmp byte [rsp + 0x68], 0
jne 0x14005afdb
mov ecx, dword [0x1401397f0]
lea rax, [rsi + 0x3cb]
test ecx, ecx
je 0x14005acea
test rax, rax
je 0x14005acea
mov qword [rbp + 0x220], rax
lea rax, [rbp - 0x1c]
mov qword [rbp + 0x228], rax
xor eax, eax
mov dword [rbp + 0x218], ecx
lea rcx, [rbp + 0x218]
mov qword [rbp + 0x240], rax
mov qword [rbp + 0x230], 4
mov dword [rbp + 0x238], 0x80000001
call qword [0x1401397e8]
mov rax, qword [0x1401396c0]
cmp byte [rax + 0x1b0], 0
jne 0x14005ad06
mov eax, dword [rbp - 0x20]
cmp dword [rbp - 0x1c], eax
je 0x14005afdb
mov ecx, dword [0x1401397f0]
lea rax, [rdi + 0x334]
test ecx, ecx
je 0x14005ad5f
test rax, rax
je 0x14005ad5f
mov qword [rbp + 0x250], rax
lea rax, [rbp - 0x18]
mov qword [rbp + 0x258], rax
xor eax, eax
mov dword [rbp + 0x248], ecx
lea rcx, [rbp + 0x248]
mov qword [rbp + 0x270], rax
mov qword [rbp + 0x260], 4
mov dword [rbp + 0x268], 0x80000001
call qword [0x1401397e8]
mov eax, dword [rbp - 0x18]
dec eax
cmp eax, 0x63
ja 0x14005afdb
mov ecx, dword [0x1401397f0]
lea rax, [rdi + 0x141c]
test ecx, ecx
je 0x14005adc7
test rax, rax
je 0x14005adc7
mov qword [rbp + 0x280], rax
lea rax, [rsp + 0x69]
mov qword [rbp + 0x288], rax
xor eax, eax
mov dword [rbp + 0x278], ecx
lea rcx, [rbp + 0x278]
mov qword [rbp + 0x2a0], rax
mov qword [rbp + 0x290], 1
mov dword [rbp + 0x298], 0x80000001
call qword [0x1401397e8]
cmp byte [rsp + 0x69], 0
jne 0x14005afdb
mov rcx, qword [0x1401396c0]
mov ecx, dword [rcx + 4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005adf4
mov rax, qword [0x1401396c0]
cmp byte [rax + 8], 0
jne 0x14005ae24
mov rcx, qword [0x1401396c0]
mov ecx, dword [rcx + 0xe0]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x14005aef2
mov rax, qword [0x1401396c0]
cmp byte [rax + 0xe8], 0
je 0x14005aef2
mov rax, qword [rbp + 0x20]
mov ecx, dword [0x1401397f0]
add rax, 0x15a4
test ecx, ecx
je 0x14005ae80
test rax, rax
je 0x14005ae80
mov qword [rbp + 0x2b0], rax
lea rax, [rbp - 0x14]
mov qword [rbp + 0x2b8], rax
xor eax, eax
mov dword [rbp + 0x2a8], ecx
lea rcx, [rbp + 0x2a8]
mov qword [rbp + 0x2d0], rax
mov qword [rbp + 0x2c0], 4
mov dword [rbp + 0x2c8], 0x80000001
call qword [0x1401397e8]
mov ecx, dword [0x1401397f0]
lea rax, [rdi + 0x1698]
test ecx, ecx
je 0x14005aeda
test rax, rax
je 0x14005aeda
mov qword [rbp + 0x2e0], rax
lea rax, [rsp + 0x50]
mov qword [rbp + 0x2e8], rax
xor eax, eax
mov dword [rbp + 0x2d8], ecx
lea rcx, [rbp + 0x2d8]
mov qword [rbp + 0x300], rax
mov qword [rbp + 0x2f0], 0x14
mov dword [rbp + 0x2f8], 0x80000001
call qword [0x1401397e8]
mov eax, r14d
and eax, 0x7fff
cmp eax, dword [rbp - 0x14]
je 0x14005aef2
cmp byte [rsp + 0x58], 0
je 0x14005afdb
mov rcx, rdi
call fcn.14004f670
mov r8d, eax
lea rcx, [rsp + 0x40]
mov rdx, rdi
call fcn.14004f1a0
mov ecx, dword [0x1401397f0]
lea rax, [rdi + 0x127c]
mov qword [rbp - 0x60], 0
mov dword [rbp - 0x58], 0
test ecx, ecx
je 0x14005afdb
test rax, rax
je 0x14005afdb
mov qword [rbp + 0x310], rax
lea rax, [rbp - 0x60]
mov qword [rbp + 0x318], rax
xor eax, eax
mov dword [rbp + 0x308], ecx
lea rcx, [rbp + 0x308]
mov qword [rbp + 0x330], rax
mov qword [rbp + 0x320], 0xc
mov dword [rbp + 0x328], 0x80000001
call qword [0x1401397e8]
movss xmm0, dword [rbp - 0x60]
ucomiss xmm0, xmm7
jp 0x14005af9e
jne 0x14005af9e
movss xmm0, dword [rbp - 0x5c]
ucomiss xmm0, xmm7
jp 0x14005af9e
jne 0x14005af9e
movss xmm0, dword [rbp - 0x58]
ucomiss xmm0, xmm7
jp 0x14005af9e
je 0x14005afdb
lea r9, [rbp - 8]
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x30]
lea rcx, [rbp + 0x28]
call fcn.14004f2d0
movss xmm1, dword [rbp + 0x2c]
movss xmm0, dword [rbp + 0x28]
call sub.api_ms_win_crt_math_l1_1_0.dll__hypotf
comiss xmm6, xmm0
mov rdx, qword [rsp + 0x20]
jbe 0x14005afe0
mov r8d, r14d
movaps xmm6, xmm0
mov qword [rsp + 0x28], r8
jmp 0x14005afe5
mov rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x28]
mov rcx, qword [rbp - 0x10]
inc r15
sub rdx, 1
mov qword [rsp + 0x20], rdx
jne 0x14005a9f0
mov r15, qword [rsp + 0x460]
mov eax, r8d
mov r14, qword [rsp + 0x468]
mov r13, qword [rsp + 0x4a0]
mov r12, qword [rsp + 0x498]
mov rsi, qword [rsp + 0x490]
mov rcx, qword [rbp + 0x338]
xor rcx, rsp
call fcn.140073530
movaps xmm6, xmmword [rsp + 0x450]
movaps xmm7, xmmword [rsp + 0x440]
add rsp, 0x470
pop rdi
pop rbx
pop rbp
ret