Function at 0x18011b800
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rsi
push rdi
push r14
lea rbp, [rsp - 0x18]
sub rsp, 0x118
movaps xmmword [rsp + 0x100], xmm6
mov rax, qword [0x1803bc678]
xor rax, rsp
mov qword [rbp - 0x38], rax
mov rax, qword [0x1803ebb30]
mov edi, ecx
sar edi, 8
movaps xmm6, xmm2
mov r14d, ecx
mov rdx, qword [rax]
test rdx, rdx
je 0x18011b87e
mov rax, qword [rdx + 8]
movsxd rcx, edi
movsx r8d, byte [rax + rcx]
test r8b, r8b
js 0x18011b87e
movzx esi, r14b
cmp r8d, esi
jne 0x18011b87e
mov eax, dword [rdx + 0x14]
imul eax, edi
movsxd rcx, eax
add rcx, qword [rdx]
je 0x18011b87e
mov rax, qword [rcx + 8]
mov r8d, edi
test rax, rax
je 0x18011b881
cmp byte [rax + 0x28], 4
jne 0x18011b881
jmp 0x18011b8d9
mov r8d, edi
test rdx, rdx
je 0x18011c1e0
mov rax, qword [rdx + 8]
movsxd rcx, r8d
movsx r9d, byte [rax + rcx]
test r9b, r9b
js 0x18011c1e0
movzx esi, r14b
cmp r9d, esi
jne 0x18011c1e0
mov eax, dword [rdx + 0x14]
imul eax, r8d
movsxd rcx, eax
add rcx, qword [rdx]
je 0x18011c1e0
mov rax, qword [rcx + 8]
test rax, rax
je 0x18011c1e0
cmp byte [rax + 0x28], 3
jne 0x18011c1e0
mov edi, r8d
mov qword [rsp + 0x148], rbx
movabs rax, 0x428ca6dbd1094446
movzx ebx, byte [rbp + 0x60]
mov qword [rsp + 0x110], r15
xor r15d, r15d
mov qword [rsp + 0x40], r15
mov qword [0x1803ebe70], rax
mov dword [rsp + 0x40], r14d
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x40], r15
mov qword [0x1803edb18], rax
mov dword [rsp + 0x40], ebx
mov rax, qword [rsp + 0x40]
movaps xmmword [rsp + 0xf0], xmm7
mov qword [0x1803edb20], rax
movaps xmmword [rsp + 0xe0], xmm8
mov dword [0x1803eda50], r15d
mov dword [0x1803eda40], 2
call fcn.18014eb30
mov qword [rsp + 0x40], r15
movabs rax, 0x1a9205c1b9ee827f
mov qword [0x1803ebe70], rax
mov dword [rsp + 0x40], r14d
mov rax, qword [rsp + 0x40]
mov qword [0x1803edb18], rax
mov eax, ebx
xor eax, 1
mov qword [rsp + 0x40], r15
mov dword [rsp + 0x40], eax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x40], r15
mov qword [0x1803edb20], rax
mov dword [rsp + 0x40], 1
mov rax, qword [rsp + 0x40]
mov qword [0x1803edb28], rax
mov dword [0x1803eda50], r15d
mov dword [0x1803eda40], 3
call fcn.18014eb30
xorps xmm1, xmm1
lea rcx, [rbp - 0x50]
xorps xmm8, xmm8
call fcn.180182840
movabs rax, 0x837765a25378f0bb
mov qword [rsp + 0x40], r15
mov qword [0x1803ebe70], rax
mov dword [rsp + 0x40], r15d
mov rax, qword [rsp + 0x40]
mov qword [0x1803edb18], rax
mov dword [0x1803eda50], r15d
mov dword [0x1803eda40], 1
call fcn.18014eb30
mov ecx, r14d
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
movaps xmm2, xmm1
movsd qword [rsp + 0x60], xmm0
movss xmm3, dword [rsp + 0x60]
shufps xmm2, xmm1, 0xaa
movups xmmword [rbp - 0x50], xmm1
movsd qword [rbp - 0x40], xmm0
call fcn.1801120b0
lea ecx, [r15 + 0x57]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18011bb84
mov rax, qword [0x1803ebb30]
mov rdx, qword [rax]
test rdx, rdx
je 0x18011ba9e
mov rax, qword [rdx + 8]
movsxd rcx, edi
movsx r8d, byte [rax + rcx]
test r8b, r8b
js 0x18011ba9e
cmp r8d, esi
jne 0x18011ba9e
mov eax, dword [rdx + 0x14]
imul eax, edi
movsxd rcx, eax
add rcx, qword [rdx]
je 0x18011ba9e
mov rax, qword [rcx + 8]
test rax, rax
je 0x18011ba9e
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18011ba9e
movsd xmm7, qword [rax + 0x50]
mov ebx, dword [rax + 0x58]
jmp 0x18011baba
xor eax, eax
mov qword [rsp + 0x40], rax
mov ebx, eax
mov qword [rsp + 0x44], rax
mov dword [rsp + 0x40], eax
movsd xmm7, qword [rsp + 0x40]
mov dword [rsp + 0x48], eax
movss xmm3, dword [rbp - 0x40]
lea rcx, [rbp - 0x70]
movss xmm2, dword [rbp - 0x48]
movss xmm1, dword [rbp - 0x50]
call fcn.180182820
movsd xmm0, qword [rbp - 0x70]
lea rcx, [rsp + 0x40]
mov eax, dword [rbp - 0x68]
movsd qword [rsp + 0x40], xmm0
mov dword [rsp + 0x48], eax
call fcn.180182aa0
movaps xmm1, xmm6
lea rcx, [rsp + 0x40]
mulss xmm1, dword [0x180341d88]
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [rsp + 0x40], xmm0
mov dword [rsp + 0x48], eax
call fcn.180182920
movsd xmm0, qword [rsp + 0x40]
lea rdx, [rsp + 0x70]
mov eax, dword [rsp + 0x48]
lea rcx, [rsp + 0x40]
movsd qword [rsp + 0x70], xmm0
mov dword [rsp + 0x78], eax
movsd qword [rsp + 0x40], xmm7
mov dword [rsp + 0x48], ebx
call fcn.180182950
movsd xmm0, qword [rsp + 0x40]
lea rdx, [rsp + 0x50]
mov eax, dword [rsp + 0x48]
lea rcx, [rsp + 0x70]
movsd qword [rsp + 0x70], xmm0
mov dword [rsp + 0x78], eax
call fcn.1801828d0
mov ecx, r14d
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
movaps xmm2, xmm1
movsd qword [rsp + 0x60], xmm0
shufps xmm2, xmm1, 0xaa
movaps xmm3, xmm0
call fcn.180111fe0
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18011bccc
movss xmm3, dword [rbp - 0x40]
lea rcx, [rsp + 0x70]
movss xmm2, dword [rbp - 0x48]
movss xmm1, dword [rbp - 0x50]
call fcn.180182820
mov eax, dword [rsp + 0x78]
movsd xmm0, qword [rsp + 0x70]
mov dword [rbp - 0x68], eax
mov rax, qword [0x1803ebb30]
movsd qword [rbp - 0x70], xmm0
mov rdx, qword [rax]
test rdx, rdx
je 0x18011bc12
mov rax, qword [rdx + 8]
movsxd rcx, edi
movsx r8d, byte [rax + rcx]
test r8b, r8b
js 0x18011bc12
cmp r8d, esi
jne 0x18011bc12
mov eax, dword [rdx + 0x14]
imul eax, edi
movsxd rcx, eax
add rcx, qword [rdx]
je 0x18011bc12
mov rax, qword [rcx + 8]
test rax, rax
je 0x18011bc12
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18011bc12
movsd xmm7, qword [rax + 0x50]
mov ebx, dword [rax + 0x58]
jmp 0x18011bc2e
xor eax, eax
mov qword [rsp + 0x40], rax
mov ebx, eax
mov qword [rsp + 0x44], rax
mov dword [rsp + 0x40], eax
movsd xmm7, qword [rsp + 0x40]
mov dword [rsp + 0x48], eax
lea rcx, [rbp - 0x70]
call fcn.180182aa0
movaps xmm1, xmm6
lea rcx, [rsp + 0x40]
mulss xmm1, dword [0x180342148]
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [rsp + 0x40], xmm0
mov dword [rsp + 0x48], eax
call fcn.180182920
movsd xmm0, qword [rsp + 0x40]
lea rdx, [rsp + 0x50]
mov eax, dword [rsp + 0x48]
lea rcx, [rsp + 0x40]
movsd qword [rsp + 0x50], xmm0
mov dword [rsp + 0x58], eax
movsd qword [rsp + 0x40], xmm7
mov dword [rsp + 0x48], ebx
call fcn.180182950
movsd xmm0, qword [rsp + 0x40]
lea rdx, [rbp - 0x70]
mov eax, dword [rsp + 0x48]
lea rcx, [rsp + 0x50]
movsd qword [rsp + 0x50], xmm0
mov dword [rsp + 0x58], eax
call fcn.1801828d0
mov ecx, r14d
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
movaps xmm2, xmm1
movsd qword [rsp + 0x60], xmm0
shufps xmm2, xmm1, 0xaa
movaps xmm3, xmm0
call fcn.180111fe0
mov ecx, 0x41
movaps xmmword [rsp + 0xd0], xmm9
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18011be66
movss xmm0, dword [rbp - 0x40]
lea rcx, [rsp + 0x50]
addss xmm0, dword [0x180341f68]
mov dword [rsp + 0x30], r15d
xorps xmm3, xmm3
xor r8d, r8d
xorps xmm1, xmm1
movss dword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], r15d
call fcn.180182880
movups xmm1, xmmword [rsp + 0x50]
lea rcx, [rsp + 0x50]
movsd xmm0, qword [rsp + 0x60]
movss xmm3, dword [rsp + 0x60]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xaa
movups xmmword [rbp - 0x50], xmm1
movsd qword [rbp - 0x40], xmm0
call fcn.180182820
mov eax, dword [rsp + 0x58]
movsd xmm0, qword [rsp + 0x50]
mov dword [rsp + 0x78], eax
mov rax, qword [0x1803ebb30]
movsd qword [rsp + 0x70], xmm0
mov rdx, qword [rax]
test rdx, rdx
je 0x18011bda8
mov rax, qword [rdx + 8]
movsxd rcx, edi
movsx r8d, byte [rax + rcx]
test r8b, r8b
js 0x18011bda8
cmp r8d, esi
jne 0x18011bda8
mov eax, dword [rdx + 0x14]
imul eax, edi
movsxd rcx, eax
add rcx, qword [rdx]
je 0x18011bda8
mov rax, qword [rcx + 8]
test rax, rax
je 0x18011bda8
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18011bda8
movsd xmm9, qword [rax + 0x50]
mov ebx, dword [rax + 0x58]
jmp 0x18011bdc5
xor eax, eax
mov qword [rsp + 0x40], rax
mov ebx, eax
mov qword [rsp + 0x44], rax
mov dword [rsp + 0x40], eax
movsd xmm9, qword [rsp + 0x40]
mov dword [rsp + 0x48], eax
lea rcx, [rsp + 0x70]
call fcn.180182aa0
movaps xmm7, xmm6
lea rcx, [rsp + 0x40]
mulss xmm7, dword [0x180341d88]
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movaps xmm1, xmm7
movsd qword [rsp + 0x40], xmm0
mov dword [rsp + 0x48], eax
call fcn.180182920
movsd xmm0, qword [rsp + 0x40]
lea rdx, [rbp - 0x70]
mov eax, dword [rsp + 0x48]
lea rcx, [rsp + 0x40]
movsd qword [rbp - 0x70], xmm0
mov dword [rbp - 0x68], eax
movsd qword [rsp + 0x40], xmm9
mov dword [rsp + 0x48], ebx
call fcn.180182950
movsd xmm0, qword [rsp + 0x40]
lea rdx, [rbp - 0x70]
mov eax, dword [rsp + 0x48]
lea rcx, [rsp + 0x70]
movsd qword [rsp + 0x70], xmm0
mov dword [rsp + 0x78], eax
call fcn.1801828d0
mov ecx, r14d
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
movaps xmm2, xmm1
movsd qword [rbp - 0x80], xmm0
shufps xmm2, xmm1, 0xaa
movaps xmm3, xmm0
call fcn.180111fe0
jmp 0x18011be71
movaps xmm7, xmm6
mulss xmm7, dword [0x180341d88]
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18011c001
movss xmm0, dword [rbp - 0x40]
lea rcx, [rsp + 0x50]
subss xmm0, dword [0x180341f68]
mov dword [rsp + 0x30], r15d
xorps xmm3, xmm3
xor r8d, r8d
xorps xmm1, xmm1
movss dword [rsp + 0x28], xmm0
mov dword [rsp + 0x20], r15d
call fcn.180182880
movups xmm1, xmmword [rsp + 0x50]
lea rcx, [rsp + 0x50]
movsd xmm0, qword [rsp + 0x60]
movss xmm3, dword [rsp + 0x60]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xaa
movups xmmword [rbp - 0x50], xmm1
movsd qword [rbp - 0x40], xmm0
call fcn.180182820
mov eax, dword [rsp + 0x58]
movsd xmm0, qword [rsp + 0x50]
mov dword [rsp + 0x78], eax
mov rax, qword [0x1803ebb30]
movsd qword [rsp + 0x70], xmm0
mov rdx, qword [rax]
test rdx, rdx
je 0x18011bf4a
mov rax, qword [rdx + 8]
movaps xmm0, xmm7
movsxd rcx, edi
movsx r8d, byte [rax + rcx]
test r8b, r8b
js 0x18011bf47
cmp r8d, esi
jne 0x18011bf47
mov eax, dword [rdx + 0x14]
imul eax, edi
movsxd rcx, eax
add rcx, qword [rdx]
je 0x18011bf4a
mov rax, qword [rcx + 8]
test rax, rax
je 0x18011bf4d
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18011bf4d
movsd xmm9, qword [rax + 0x50]
mov ebx, dword [rax + 0x58]
jmp 0x18011bf6d
movaps xmm7, xmm0
movaps xmm0, xmm7
xor eax, eax
movaps xmm7, xmm0
mov qword [rsp + 0x40], rax
mov ebx, eax
mov qword [rsp + 0x44], rax
mov dword [rsp + 0x40], eax
movsd xmm9, qword [rsp + 0x40]
mov dword [rsp + 0x48], eax
lea rcx, [rsp + 0x70]
call fcn.180182aa0
movaps xmm1, xmm7
lea rcx, [rsp + 0x40]
movsd xmm0, qword [rax]
mov eax, dword [rax + 8]
movsd qword [rsp + 0x40], xmm0
mov dword [rsp + 0x48], eax
call fcn.180182920
movsd xmm0, qword [rsp + 0x40]
lea rdx, [rbp - 0x70]
mov eax, dword [rsp + 0x48]
lea rcx, [rsp + 0x40]
movsd qword [rbp - 0x70], xmm0
mov dword [rbp - 0x68], eax
movsd qword [rsp + 0x40], xmm9
mov dword [rsp + 0x48], ebx
call fcn.180182950
movsd xmm0, qword [rsp + 0x40]
lea rdx, [rbp - 0x70]
mov eax, dword [rsp + 0x48]
lea rcx, [rsp + 0x70]
movsd qword [rsp + 0x70], xmm0
mov dword [rsp + 0x78], eax
call fcn.1801828d0
mov ecx, r14d
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
movaps xmm2, xmm1
movsd qword [rbp - 0x80], xmm0
shufps xmm2, xmm1, 0xaa
movaps xmm3, xmm0
call fcn.180111fe0
mov ecx, 0xa0
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movaps xmm9, xmmword [rsp + 0xd0]
movaps xmm7, xmmword [rsp + 0xf0]
mov r15, qword [rsp + 0x110]
mov rbx, qword [rsp + 0x148]
test ax, ax
je 0x18011c0ff
mov rax, qword [0x1803ebb30]
mov rdx, qword [rax]
test rdx, rdx
je 0x18011c08f
mov rax, qword [rdx + 8]
movsxd rcx, edi
movsx r8d, byte [rax + rcx]
test r8b, r8b
js 0x18011c08f
cmp r8d, esi
jne 0x18011c08f
mov eax, dword [rdx + 0x14]
imul eax, edi
movsxd rcx, eax
add rcx, qword [rdx]
je 0x18011c08f
mov rax, qword [rcx + 8]
test rax, rax
je 0x18011c08f
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18011c08f
mov ecx, dword [rax + 0x58]
movsd xmm0, qword [rax + 0x50]
mov dword [rsp + 0x48], ecx
movss xmm2, dword [rsp + 0x48]
jmp 0x18011c0ae
xor eax, eax
xorps xmm2, xmm2
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x44], rax
mov dword [rsp + 0x40], eax
movsd xmm0, qword [rsp + 0x40]
movss dword [rsp + 0x48], xmm2
mulss xmm6, dword [0x180341d84]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x70]
movsd qword [rsp + 0x70], xmm0
addss xmm2, xmm6
movss dword [rsp + 0x58], xmm2
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x78], eax
call fcn.1801828d0
mov ecx, r14d
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
movaps xmm2, xmm1
movsd qword [rsp + 0x60], xmm0
shufps xmm2, xmm1, 0xaa
movaps xmm3, xmm0
call fcn.180111fe0
jmp 0x18011c107
mulss xmm6, dword [0x180341d84]
mov ecx, 0xa2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18011c1d7
mov rax, qword [0x1803ebb30]
mov rdx, qword [rax]
test rdx, rdx
je 0x18011c17b
mov rax, qword [rdx + 8]
movaps xmm0, xmm6
movsxd rcx, edi
movsx r8d, byte [rax + rcx]
test r8b, r8b
js 0x18011c178
cmp r8d, esi
jne 0x18011c178
mov eax, dword [rdx + 0x14]
imul eax, edi
movsxd rcx, eax
add rcx, qword [rdx]
je 0x18011c17b
mov rax, qword [rcx + 8]
test rax, rax
je 0x18011c17e
mov rax, qword [rax + 0x30]
test rax, rax
je 0x18011c17e
mov ecx, dword [rax + 0x58]
movsd xmm0, qword [rax + 0x50]
mov dword [rsp + 0x48], ecx
movss xmm8, dword [rsp + 0x48]
jmp 0x18011c197
movaps xmm6, xmm0
movaps xmm0, xmm6
xor eax, eax
movaps xmm6, xmm0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x44], rax
mov dword [rsp + 0x40], eax
movsd xmm0, qword [rsp + 0x40]
subss xmm8, xmm6
movsd qword [rsp + 0x70], xmm0
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x70]
movss dword [rsp + 0x58], xmm8
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x78], eax
call fcn.1801828d0
mov ecx, r14d
movups xmm1, xmmword [rax]
movsd xmm3, qword [rax + 0x10]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xaa
call fcn.180111fe0
movaps xmm8, xmmword [rsp + 0xe0]
mov rcx, qword [rbp - 0x38]
xor rcx, rsp
call fcn.1801e5c70
movaps xmm6, xmmword [rsp + 0x100]
add rsp, 0x118
pop r14
pop rdi
pop rsi
pop rbp
ret