Function at 0x180042e20
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0x1a8]
sub rsp, 0x290
movaps xmmword [rax - 0x28], xmm6
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
movaps xmmword [rax - 0x68], xmm10
mov rax, qword [0x180088010]
xor rax, rsp
mov qword [rbp + 0x138], rax
call fcn.1800426e0
call fcn.1800424d0
mov rax, qword [0x1800cc248]
mov rcx, qword [rax + 8]
mov rax, qword [0x1800cc2f8]
add rcx, qword [rax + 0x10]
lea rdx, [0x1800cab10]
call fcn.180008520
mov rax, qword [0x1800cc2f8]
mov ecx, dword [rax + 0x28]
add rcx, qword [0x1800cab10]
lea rdx, [0x1800cab20]
call fcn.1800085c0
xor r14d, r14d
mov edi, r14d
mov r8, qword [0x1800cc220]
mov rax, qword [r8 + 0x148]
sub rax, qword [r8 + 0x140]
sar rax, 3
xorps xmm8, xmm8
test rax, rax
je 0x1800436ae
mov esi, r14d
movabs r15, 0x7ffd5d15ff558
movabs r12, 0xaaaaaaaaaaaaaaab
movss xmm7, dword [0x18007b6b0]
movss xmm6, dword [0x18007b2d8]
movsd xmm9, qword [0x18007b248]
movss xmm10, dword [0x18007b1e4]
nop dword [rax]
mov qword [rbp - 0x58], r14
mov qword [rbp - 0x48], r14
mov qword [rbp - 0x40], 0xf
mov byte [rbp - 0x58], 0
mov qword [rbp - 0x18], 0
mov dword [rbp - 0x10], 0
mov qword [rbp - 8], 0
mov dword [rbp], 0
mov qword [rbp + 8], r14
mov qword [rbp + 0x18], r14
mov qword [rbp + 0x20], 0xf
mov byte [rbp + 8], 0
mov qword [rbp + 0x58], r14
mov qword [rbp + 0x68], r14
mov qword [rbp + 0x70], 0xf
mov byte [rbp + 0x58], 0
mov dword [rbp + 0x7c], 0
xorps xmm0, xmm0
movaps xmmword [rbp + 0x80], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp + 0x90], xmm1
mov qword [rbp + 0xa0], r14
mov qword [rbp + 0xc8], r14
movdqa xmmword [rbp + 0xd0], xmm0
movdqa xmmword [rbp + 0xe0], xmm1
movdqa xmmword [rbp + 0xf0], xmm0
movdqa xmmword [rbp + 0x100], xmm1
mov rax, qword [r8 + 0x140]
mov rdx, qword [rax + rsi*8]
mov qword [rbp + 0xc0], rdx
mov rax, qword [r8 + 0x128]
mov rax, qword [rax + rsi*8]
mov qword [rbp + 0xb8], rax
mov rax, qword [0x1800cc2f8]
mov ecx, dword [rax + 0x44]
add rcx, rdx
lea rdx, [rbp - 8]
call fcn.180043ee0
mov rax, qword [0x1800cc2f8]
mov ebx, dword [rax + 0x38]
add rbx, qword [rbp + 0xc0]
je 0x180043067
lea rax, [rbx - 0xaa70aa8]
cmp rax, r15
ja 0x180043067
mov r8d, 0x30
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x180043067
cmp dword [rsp + 0x70], 0x1000
jne 0x180043067
mov eax, dword [rsp + 0x74]
test eax, 0x101
jne 0x180043067
test al, 0x66
je 0x180043067
mov rax, qword [rsp + 0x50]
sub rax, rbx
add rax, qword [rsp + 0x68]
cmp rax, 4
jb 0x180043067
mov eax, dword [rbx]
mov dword [rbp + 0x2c], eax
mov rax, qword [0x1800cc2f8]
mov ebx, dword [rax + 0x2c]
add rbx, qword [rbp + 0xb8]
je 0x1800430d0
lea rax, [rbx - 0xaa70aa8]
cmp rax, r15
ja 0x1800430d0
mov r8d, 0x30
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x1800430d0
cmp dword [rsp + 0x70], 0x1000
jne 0x1800430d0
mov eax, dword [rsp + 0x74]
test eax, 0x101
jne 0x1800430d0
test al, 0x66
je 0x1800430d0
mov rax, qword [rsp + 0x50]
sub rax, rbx
add rax, qword [rsp + 0x68]
cmp rax, 4
jb 0x1800430d0
mov eax, dword [rbx]
mov dword [rbp - 0x5c], eax
mov rax, qword [0x1800cc2f8]
mov ebx, dword [rax + 0x28]
add rbx, qword [rbp + 0xb8]
je 0x180043139
lea rax, [rbx - 0xaa70aa8]
cmp rax, r15
ja 0x180043139
mov r8d, 0x30
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x180043139
cmp dword [rsp + 0x70], 0x1000
jne 0x180043139
mov eax, dword [rsp + 0x74]
test eax, 0x101
jne 0x180043139
test al, 0x66
je 0x180043139
mov rax, qword [rsp + 0x50]
sub rax, rbx
add rax, qword [rsp + 0x68]
cmp rax, 4
jb 0x180043139
mov eax, dword [rbx]
mov dword [rbp - 0x60], eax
mov rax, qword [0x1800cc2f8]
mov ebx, dword [rax + 0x30]
add rbx, qword [rbp + 0xb8]
je 0x1800431ba
lea rax, [rbx - 0xaa70aa8]
cmp rax, r15
ja 0x1800431ba
mov r8d, 0x30
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x1800431ba
cmp dword [rsp + 0x70], 0x1000
jne 0x1800431ba
mov eax, dword [rsp + 0x74]
test eax, 0x101
jne 0x1800431ba
test al, 0x66
je 0x1800431ba
mov rax, qword [rsp + 0x50]
sub rax, rbx
add rax, qword [rsp + 0x68]
cmp rax, 0x15
jb 0x1800431ba
movups xmm0, xmmword [rbx]
movups xmmword [rbp + 0x120], xmm0
mov eax, dword [rbx + 0x10]
mov dword [rbp + 0x130], eax
movzx eax, byte [rbx + 0x14]
mov byte [rbp + 0x134], al
mov byte [rbp + 0x134], 0
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], 0xf
lea rax, [rbp + 0x120]
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x1800431e2
lea rdx, [rbp + 0x120]
lea rcx, [rsp + 0x50]
call fcn.180006be0
mov rdx, qword [rbp - 0x40]
cmp rdx, 0x10
jb 0x180043238
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180043233
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800439ab
call fcn.180044dfc
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rbp - 0x58], xmm0
movups xmm1, xmmword [rsp + 0x60]
movups xmmword [rbp - 0x48], xmm1
lea rcx, [rbp - 0x60]
call fcn.180041ce0
lea rcx, [rbp - 0x60]
call fcn.180042130
mov rax, qword [0x1800cab10]
cmp qword [rbp + 0xb8], rax
jne 0x180043553
mov rax, qword [0x1800cc2f8]
mov ebx, dword [rax + 0x44]
add rbx, qword [rbp + 0xc0]
je 0x1800432e9
lea rax, [rbx - 0xaa70aa8]
cmp rax, r15
ja 0x1800432e9
mov r8d, 0x30
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x1800432e9
cmp dword [rsp + 0x70], 0x1000
jne 0x1800432e9
mov eax, dword [rsp + 0x74]
test eax, 0x101
jne 0x1800432e9
test al, 0x66
je 0x1800432e9
mov rax, qword [rsp + 0x50]
sub rax, rbx
add rax, qword [rsp + 0x68]
cmp rax, 0xc
jb 0x1800432e9
movsd xmm0, qword [rbx]
movsd qword [0x1800cab28], xmm0
mov eax, dword [rbx + 8]
mov dword [0x1800cab30], eax
mov rax, qword [0x1800cab10]
cmp qword [rbp + 0xb8], rax
jne 0x180043553
mov rcx, qword [rbp + 0xf8]
test rcx, rcx
je 0x18004335b
mov rax, qword [rbp + 0x108]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180043344
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004399f
call fcn.180044dfc
mov qword [rbp + 0xf8], r14
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x100], xmm0
mov rcx, qword [rbp + 0xe0]
test rcx, rcx
je 0x1800433b9
mov rax, qword [rbp + 0xf0]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800433a2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004399f
call fcn.180044dfc
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xe0], xmm0
mov qword [rbp + 0xf0], r14
mov rcx, qword [rbp + 0xc8]
test rcx, rcx
je 0x180043417
mov rax, qword [rbp + 0xd8]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180043400
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004399f
call fcn.180044dfc
mov qword [rbp + 0xc8], r14
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xd0], xmm0
mov rcx, qword [rbp + 0x90]
test rcx, rcx
je 0x180043479
mov rax, qword [rbp + 0xa0]
sub rax, rcx
sar rax, 3
imul rax, r12
lea rdx, [rax + rax*2]
shl rdx, 3
mov rax, rcx
cmp rdx, 0x1000
jb 0x180043462
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004399f
call fcn.180044dfc
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x90], xmm0
mov qword [rbp + 0xa0], r14
mov rdx, qword [rbp + 0x70]
cmp rdx, 0x10
jb 0x1800434b4
inc rdx
mov rcx, qword [rbp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800434af
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004399f
call fcn.180044dfc
mov qword [rbp + 0x68], r14
mov qword [rbp + 0x70], 0xf
mov byte [rbp + 0x58], 0
mov rdx, qword [rbp + 0x20]
cmp rdx, 0x10
jb 0x1800434ff
inc rdx
mov rcx, qword [rbp + 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800434fa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004399f
call fcn.180044dfc
mov qword [rbp + 0x18], r14
mov qword [rbp + 0x20], 0xf
mov byte [rbp + 8], 0
mov rdx, qword [rbp - 0x40]
cmp rdx, 0x10
jb 0x180043684
inc rdx
mov rcx, qword [rbp - 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180043549
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004399f
call fcn.180044dfc
jmp 0x180043684
cmp byte [0x180088a64], 0
je 0x18004356b
mov eax, dword [0x1800cab20]
cmp dword [rbp - 0x60], eax
je 0x18004367b
cmp dword [rbp + 0x2c], 0
jle 0x18004367b
cmp dword [rbp - 0x5c], 1
jne 0x18004367b
mov rax, qword [rbp + 0x98]
cmp rax, qword [rbp + 0x90]
je 0x18004367b
lea rcx, [rbp - 0x60]
call fcn.180006310
movss xmm0, dword [rbp - 8]
movss dword [rsp + 0x40], xmm0
movss xmm1, dword [rbp - 4]
movss dword [rsp + 0x44], xmm1
movss xmm0, dword [rbp]
addss xmm0, xmm6
movss dword [rsp + 0x48], xmm0
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x34], 0
lea r8, [rsp + 0x38]
lea rdx, [rbp - 8]
call fcn.1800061d0
test eax, eax
je 0x180043660
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
call fcn.1800061d0
test eax, eax
je 0x180043660
movss xmm4, dword [rsp + 0x34]
comiss xmm8, xmm4
ja 0x180043660
movss xmm0, dword [rsp + 0x3c]
mov rax, qword [0x1800cc118]
comiss xmm0, dword [rax + 0x14]
ja 0x180043660
movaps xmm3, xmm4
subss xmm3, xmm0
andps xmm3, xmm7
cvtps2pd xmm0, xmm3
mulsd xmm0, xmm9
cvtpd2ps xmm2, xmm0
movaps xmm1, xmm2
mulss xmm1, xmm10
movss xmm0, dword [rsp + 0x38]
subss xmm0, xmm1
shufps xmm0, xmm0, 0xe1
movss xmm0, xmm4
shufps xmm0, xmm0, 0xc6
movss xmm0, xmm2
shufps xmm0, xmm0, 0x27
movss xmm0, xmm3
shufps xmm0, xmm0, 0x39
jmp 0x180043663
xorps xmm0, xmm0
movups xmmword [rbp + 0x120], xmm0
movups xmmword [0x1800caba0], xmm0
lea rcx, [rbp - 0x60]
call fcn.1800077b0
nop
lea rcx, [rbp - 0x60]
call fcn.1800439c0
inc edi
inc rsi
mov r8, qword [0x1800cc220]
mov rcx, qword [r8 + 0x148]
sub rcx, qword [r8 + 0x140]
sar rcx, 3
movsxd rax, edi
cmp rax, rcx
jb 0x180042f20
mov ebx, r14d
lea rdx, [r8 + 0x158]
mov rax, qword [rdx + 8]
sub rax, qword [rdx]
sar rax, 3
test rax, rax
je 0x180043882
mov rdi, r14
nop
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x78], r14
mov qword [rbp - 0x80], 0xf
mov byte [rsp + 0x68], 0
mov dword [rbp - 0x74], 0
xorps xmm0, xmm0
movaps xmmword [rbp - 0x70], xmm0
mov rax, qword [rdx]
mov rax, qword [rdi + rax]
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x50]
call fcn.180042980
lea r8, [rbp - 0x68]
lea rdx, [rbp - 0x74]
call fcn.1800061d0
test eax, eax
je 0x18004381b
movss xmm6, dword [rbp - 0x68]
comiss xmm8, xmm6
ja 0x18004381b
mov r10, qword [0x1800cc118]
comiss xmm6, dword [r10 + 0x10]
ja 0x18004381b
movss xmm7, dword [rbp - 0x64]
comiss xmm8, xmm7
ja 0x18004381b
comiss xmm7, dword [r10 + 0x14]
ja 0x18004381b
movss xmm0, dword [rbp - 0x74]
ucomiss xmm0, xmm8
jp 0x18004376c
je 0x18004381b
movss xmm0, dword [rbp - 0x70]
ucomiss xmm0, xmm8
jp 0x18004377d
je 0x18004381b
movss xmm0, dword [rbp - 0x6c]
ucomiss xmm0, xmm8
jp 0x18004378e
je 0x18004381b
cmp byte [0x180088a5c], 0
je 0x18004381b
cmp qword [rsp + 0x78], 0
je 0x1800437de
lea rax, [rsp + 0x68]
cmp qword [rbp - 0x80], 0x10
cmovae rax, qword [rsp + 0x68]
movsx ecx, byte [rax]
call fcn.18004b5dc
lea rcx, [rsp + 0x68]
cmp qword [rbp - 0x80], 0x10
cmovae rcx, qword [rsp + 0x68]
mov byte [rcx], al
movss xmm7, dword [rbp - 0x64]
movss xmm6, dword [rbp - 0x68]
mov r10, qword [0x1800cc118]
lea r9, [rsp + 0x68]
cmp qword [rbp - 0x80], 0x10
cmovae r9, qword [rsp + 0x68]
lea rcx, [0x1800cab80]
call fcn.18000d730
movss dword [rsp + 0x30], xmm6
movss dword [rsp + 0x34], xmm7
mov r8d, eax
lea rdx, [rsp + 0x30]
lea rcx, [r10 + 0x1d40]
call fcn.180029410
nop
mov rdx, qword [rbp - 0x80]
cmp rdx, 0x10
jb 0x180043857
inc rdx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180043852
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800439a5
call fcn.180044dfc
inc ebx
add rdi, 8
mov rdx, qword [0x1800cc220]
add rdx, 0x158
mov rcx, qword [rdx + 8]
sub rcx, qword [rdx]
sar rcx, 3
movsxd rax, ebx
cmp rax, rcx
jb 0x1800436d0
call fcn.180008180
cmp byte [0x1800cc0f9], 0
je 0x180043956
movss xmm0, dword [0x180088a48]
ucomiss xmm0, dword [0x18007b328]
jp 0x1800438ab
je 0x180043941
movsxd rax, dword [0x1800cc100]
lea rcx, [0x180076190]
mov ecx, dword [rcx + rax*4]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x180043941
movss xmm2, dword [0x18007b218]
divss xmm2, dword [0x180088a40]
mov qword [rsp + 0x50], r14
mov dword [rsp + 0x60], r14d
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x68], xmm0
movss xmm1, dword [0x1800cab78]
subss xmm1, dword [0x1800cab08]
mulss xmm1, xmm2
cvttss2si eax, xmm1
mov dword [rsp + 0x58], eax
movss xmm0, dword [0x1800cab7c]
subss xmm0, dword [0x1800cab0c]
mulss xmm0, xmm2
cvttss2si eax, xmm0
mov dword [rsp + 0x5c], eax
mov dword [rsp + 0x64], 1
mov r8d, 0x28
lea rdx, [rsp + 0x50]
lea ecx, [r8 - 0x27]
call qword [sym.imp.USER32.dll_SendInput]
mov dword [0x180088a48], 0x49742400
mov qword [0x1800cab78], 0
mov rcx, qword [rbp + 0x138]
xor rcx, rsp
call fcn.180044950
lea r11, [rsp + 0x290]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.18004b394
int3
call fcn.18004b394
nop
call fcn.18004b394
nop
int3