Function at 0x180099f70
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x330
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
lea rbp, [rsp + 0x50]
and rbp, 0xffffffffffffffe0
mov rbx, r8
mov rdi, rdx
mov r15, rcx
mov rax, qword [0x18018a260]
lea r9, [rax + rax*4]
mov rax, qword [0x180186ec0]
lea rdx, [rax + 0x20]
lea rdx, [rdx + r9*8]
cmp qword [rax + r9*8 + 0x18], 8
jbe 0x18009a005
mov rdx, qword [rdx]
cmp byte [rdx], 0
je 0x18009a8ef
test r15, r15
je 0x18009a8ef
test rdi, rdi
je 0x18009a8ef
mov esi, dword [0x18018768c]
mov r14d, 4
mov rax, qword gs:[0x58]
mov rax, qword [rax + rsi*8]
movabs r13, 0xaf63fe4c86022652
mov eax, dword [r14 + rax]
cmp dword [0x180189358], eax
jle 0x18009a08d
lea rcx, [0x180189358]
call fcn.1800abe2c
cmp dword [0x180189358], 0xffffffff
jne 0x18009a08d
mov rdx, r13
lea rcx, [0x18010c751]
call fcn.18005f770
mov rcx, rax
call fcn.180097d70
mov dword [0x180189364], eax
lea rcx, [0x180189358]
call fcn.1800abdc0
mov eax, dword [0x180189364]
cmp dword [rax + rdi], 0
jle 0x18009a8ef
mov rax, qword [0x1801892d0]
mov r12, qword [rax + 0x58]
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rsi*8]
mov eax, dword [r14 + rcx]
cmp dword [0x180189948], eax
jle 0x18009a0ff
lea rcx, [0x180189948]
call fcn.1800abe2c
cmp dword [0x180189948], 0xffffffff
jne 0x18009a0ff
mov rdx, r13
lea rcx, [0x1801103b9]
call fcn.18005f770
mov rcx, rax
call fcn.180097d70
mov dword [0x180189954], eax
lea rcx, [0x180189948]
call fcn.1800abdc0
mov edx, dword [0x180189954]
mov edx, dword [rdx + r15]
cmp edx, 0xffffffff
je 0x18009a8ef
and edx, 0x7fff
mov rcx, r12
call fcn.18005f840
mov r12, rax
mov qword [rbp + 0x10], rax
test rax, rax
je 0x18009a8ef
mov rcx, qword [0x18018a198]
lea rdx, [rcx + rcx*4]
mov rcx, qword [0x180186ec0]
lea r8, [rcx + 0x20]
lea r8, [r8 + rdx*8]
cmp qword [rcx + rdx*8 + 0x18], 8
jbe 0x18009a155
mov r8, qword [r8]
mov ecx, dword [r8 + 0x10]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18009a8ef
movabs rax, 0xf33ff9f8a16798c6
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x180], rax
movabs rax, 0x2318f4c0405074f3
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x188], rax
movabs rax, 0xbe620a9ca46e577e
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x190], rax
movabs rax, 0x95dcbeadcaa19fc
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x198], rax
movabs rax, 0x99609791cc38eeb5
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x20], rax
movabs rax, 0x477695ac1f201986
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x28], rax
movabs rax, 0xd01765effb093917
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x30], rax
movabs rax, 0x95dcbeadcaa1998
mov qword [rbp], rax
mov rax, qword [rbp]
mov qword [rbp + 0x38], rax
vmovdqu ymm0, ymmword [rbp + 0x20]
vpxor ymm1, ymm0, ymmword [rbp + 0x180]
vmovdqa ymmword [rbp + 0x180], ymm1
movabs rdx, 0xcbf29ce484222325
lea rcx, [rbp + 0x180]
vzeroupper
call fcn.1800624d0
mov rdx, rax
call fcn.180068990
mov dword [rax + 0x40], 0x4c721920
xorps xmm12, xmm12
movss xmm15, dword [0x180111328]
movss xmm13, dword [0x180111078]
movss xmm14, dword [0x1801111cc]
cmp byte [0x180189970], 0
jne 0x18009a964
mov rax, qword gs:[0x58]
mov rax, qword [rax + rsi*8]
mov eax, dword [r14 + rax]
cmp dword [0x18018931c], eax
jle 0x18009a2e4
lea rcx, [0x18018931c]
call fcn.1800abe2c
cmp dword [0x18018931c], 0xffffffff
jne 0x18009a2e4
mov rdx, r13
lea rcx, [0x18010c719]
call fcn.18005f770
mov rcx, rax
call fcn.180097d70
mov dword [0x1801892fc], eax
lea rcx, [0x18018931c]
call fcn.1800abdc0
mov eax, dword [0x1801892fc]
mov r13d, dword [rax + rdi]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rsi*8]
mov eax, dword [r14 + rax]
cmp dword [0x180189430], eax
jle 0x18009a34c
lea rcx, [0x180189430]
call fcn.1800abe2c
cmp dword [0x180189430], 0xffffffff
jne 0x18009a34c
movabs rdx, 0xaf63fe4c86022652
lea rcx, [0x18010cb29]
call fcn.18005f770
mov rcx, rax
call fcn.180097d70
mov dword [0x1801894d8], eax
lea rcx, [0x180189430]
call fcn.1800abdc0
mov eax, dword [0x1801894d8]
movss xmm0, dword [rax + rdi + 8]
call fcn.1800cd840
movaps xmm6, xmm0
xor r15d, r15d
mov r12d, r15d
movss xmm7, dword [0x18011137c]
nop
comiss xmm7, xmm6
jbe 0x18009a47a
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rsi*8]
mov eax, dword [r14 + rcx]
cmp dword [0x180189430], eax
jle 0x18009a3d7
lea rcx, [0x180189430]
call fcn.1800abe2c
cmp dword [0x180189430], 0xffffffff
jne 0x18009a3d7
movabs rdx, 0xaf63fe4c86022652
lea rcx, [0x18010cb29]
call fcn.18005f770
mov rcx, rax
call fcn.180097d70
mov dword [0x1801894d8], eax
lea rcx, [0x180189430]
call fcn.1800abdc0
mov eax, dword [0x1801894d8]
movss xmm0, dword [rax + rdi + 8]
call fcn.1800cd840
ucomiss xmm0, xmm7
jp 0x18009a47a
jne 0x18009a47a
test r13b, 1
jne 0x18009a47a
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rsi*8]
mov eax, dword [r14 + rcx]
cmp dword [0x1801892e8], eax
jle 0x18009a460
lea rcx, [0x1801892e8]
call fcn.1800abe2c
cmp dword [0x1801892e8], 0xffffffff
jne 0x18009a460
movabs r13, 0xaf63fe4c86022652
mov rdx, r13
lea rcx, [0x18010adb1]
call fcn.18005f770
mov rcx, rax
call fcn.180097d70
mov dword [0x1801892ac], eax
lea rcx, [0x1801892e8]
call fcn.1800abdc0
jmp 0x18009a46a
movabs r13, 0xaf63fe4c86022652
mov eax, dword [0x1801892ac]
cmp dword [rax + rdi], 7
jne 0x18009a948
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rsi*8]
mov eax, dword [r14 + rcx]
cmp dword [0x180189430], eax
jle 0x18009a4dd
lea rcx, [0x180189430]
call fcn.1800abe2c
cmp dword [0x180189430], 0xffffffff
jne 0x18009a4dd
movabs r13, 0xaf63fe4c86022652
mov rdx, r13
lea rcx, [0x18010cb29]
call fcn.18005f770
mov rcx, rax
call fcn.180097d70
mov dword [0x1801894d8], eax
lea rcx, [0x180189430]
call fcn.1800abdc0
jmp 0x18009a4e7
movabs r13, 0xaf63fe4c86022652
mov eax, dword [0x1801894d8]
movss xmm0, dword [rax + rdi + 8]
call fcn.1800cd840
movaps xmm6, xmm0
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rsi*8]
mov eax, dword [r14 + rcx]
cmp dword [0x18018931c], eax
jle 0x18009a552
lea rcx, [0x18018931c]
call fcn.1800abe2c
cmp dword [0x18018931c], 0xffffffff
jne 0x18009a552
mov rdx, r13
lea rcx, [0x18010c719]
call fcn.18005f770
mov rcx, rax
call fcn.180097d70
mov dword [0x1801892fc], eax
lea rcx, [0x18018931c]
call fcn.1800abdc0
mov eax, dword [0x1801892fc]
mov r13d, dword [rax + rdi]
inc r12d
cmp r12d, 0x40
jl 0x18009a370
movabs r13, 0xaf63fe4c86022652
mov esi, 7
mov r12, qword [rbp + 0x10]
xorps xmm0, xmm0
movups xmmword [rbp + 0x200], xmm0
movups xmmword [rbp + 0x210], xmm0
movups xmmword [rbp + 0x220], xmm0
movups xmmword [rbp + 0x230], xmm0
mov word [rsp + 0x28], si
mov byte [rsp + 0x20], 3
mov r9d, 0x1400b
mov r8, rdi
lea rdx, [rbp + 0x200]
mov rcx, qword [0x1801893c0]
call fcn.180068a60
mov rcx, rdi
call fcn.1800a3950
movsd xmm0, qword [rax]
movsd qword [rbp], xmm0
mov esi, dword [rax + 8]
mov rdx, qword gs:[0x58]
mov r14d, dword [0x18018768c]
mov r8d, 4
mov rax, qword [rdx + r14*8]
mov ecx, dword [r8 + rax]
cmp dword [0x180189950], ecx
jle 0x18009a63f
lea rcx, [0x180189950]
call fcn.1800abe2c
cmp dword [0x180189950], 0xffffffff
jne 0x18009a639
mov rdx, r13
lea rcx, [0x180110399]
call fcn.18005f770
mov rcx, rax
call fcn.180097d70
mov dword [0x18018993c], eax
lea rcx, [0x180189950]
call fcn.1800abdc0
mov r8d, 4
mov eax, dword [0x18018993c]
cmp byte [rax + r12], 0
je 0x18009a8d2
movaps xmm7, xmm12
movd xmm9, esi
movaps xmm8, xmm9
subss xmm8, xmm15
mov rsi, r14
mov r14d, r8d
movss xmm10, dword [rbp + 4]
movss xmm11, dword [rbp]
movss xmm15, dword [0x180111210]
nop dword [rax]
movaps xmm0, xmm7
call fcn.1800cd340
movaps xmm6, xmm0
mulss xmm6, xmm15
addss xmm6, xmm11
movss dword [rbp + 0x10], xmm6
movaps xmm0, xmm7
call fcn.1800d18b0
mulss xmm0, xmm15
addss xmm0, xmm10
movss dword [rbp + 0x14], xmm0
movss dword [rbp + 0x18], xmm9
movss dword [rbp], xmm6
movss dword [rbp + 4], xmm0
movss dword [rbp + 8], xmm8
xorps xmm1, xmm1
xor eax, eax
movups xmmword [rbp + 0x60], xmm1
movups xmmword [rbp + 0x70], xmm1
movups xmmword [rbp + 0x80], xmm1
movups xmmword [rbp + 0x90], xmm1
movups xmmword [rbp + 0xa0], xmm1
movups xmmword [rbp + 0xb0], xmm1
movups xmmword [rbp + 0xc0], xmm1
mov qword [rbp + 0xd0], rax
xorps xmm0, xmm0
movups xmmword [rbp + 0x108], xmm0
movups xmmword [rbp + 0x118], xmm0
movups xmmword [rbp + 0x128], xmm0
movups xmmword [rbp + 0x138], xmm0
movups xmmword [rbp + 0x148], xmm0
movups xmmword [rbp + 0x158], xmm0
movups xmmword [rbp + 0x78], xmm0
movups xmmword [rbp + 0x88], xmm0
movups xmmword [rbp + 0x98], xmm0
mov qword [rbp + 0xa8], rax
movups xmmword [rbp + 0xb4], xmm0
movups xmmword [rbp + 0xc4], xmm0
mov qword [rbp + 0xd4], rax
mov dword [rbp + 0xdc], eax
movups xmmword [rbp + 0xe0], xmm0
movups xmmword [rbp + 0xf0], xmm1
mov qword [rbp + 0x100], rax
movups xmmword [rbp + 0x117], xmm0
movups xmmword [rbp + 0x127], xmm0
movups xmmword [rbp + 0x137], xmm0
movups xmmword [rbp + 0x147], xmm0
mov qword [rbp + 0x157], rax
mov dword [rbp + 0x15f], eax
mov byte [rbp + 0x163], al
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm1
movups xmmword [rbp + 0x40], xmm0
mov dword [rbp + 0x50], eax
mov byte [rbp + 0x54], al
movups xmm0, xmmword [rbp + 0x200]
movaps xmmword [rbp + 0x1c0], xmm0
movups xmm1, xmmword [rbp + 0x210]
movaps xmmword [rbp + 0x1d0], xmm1
movups xmm0, xmmword [rbp + 0x220]
movaps xmmword [rbp + 0x1e0], xmm0
movups xmm1, xmmword [rbp + 0x230]
movaps xmmword [rbp + 0x1f0], xmm1
lea rax, [rbp + 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x1c0]
mov qword [rsp + 0x20], rax
lea r9, [rbp]
lea r8, [rbp + 0x10]
lea rdx, [rbp + 0x20]
call fcn.18006b350
movss xmm0, dword [rbp + 0x10c]
ucomiss xmm0, dword [0x18011110c]
jp 0x18009a82a
je 0x18009a8c3
ucomiss xmm0, xmm12
jp 0x18009a836
je 0x18009a8c3
mov rax, qword [rbx + 0x40]
mov dword [rax + 0x54], r15d
mov rax, qword [rbx + 0x40]
mov dword [rax + 0x50], r15d
mov rax, qword [rbx + 0x40]
mov dword [rax + 0x58], r15d
mov rax, qword [rbx + 0x40]
mov dword [rax + 0x68], r15d
or qword [rbx + 0x60], 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax + rsi*8]
mov eax, dword [r14 + rcx]
cmp dword [0x18018931c], eax
jle 0x18009a8b2
lea rcx, [0x18018931c]
call fcn.1800abe2c
cmp dword [0x18018931c], 0xffffffff
jne 0x18009a8b2
mov rdx, r13
lea rcx, [0x18010c719]
call fcn.18005f770
mov rcx, rax
call fcn.180097d70
mov dword [0x1801892fc], eax
lea rcx, [0x18018931c]
call fcn.1800abdc0
mov eax, dword [0x1801892fc]
test byte [rax + rdi], 1
je 0x18009a8c3
and qword [rbx + 0x60], 0xfffffffffffffffd
addss xmm7, xmm13
comiss xmm14, xmm7
ja 0x18009a680
mov rcx, qword [rbx + 0x40]
mov eax, dword [0x180189938]
cmp dword [rcx + 0x4c], eax
jle 0x18009a8ef
mov byte [0x180189970], 0
mov dword [0x180189938], r15d
lea r11, [rsp + 0x330]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
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]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov rax, qword [rbx + 0x40]
mov eax, dword [rax + 0x4c]
add eax, r12d
mov dword [0x180189938], eax
mov byte [0x180189970], 1
jmp 0x18009a573
mov rax, qword [rbx + 0x40]
xor r15d, r15d
mov dword [rax + 0x54], r15d
mov rax, qword [rbx + 0x40]
mov dword [rax + 0x50], r15d
mov rax, qword [rbx + 0x40]
mov dword [rax + 0x58], r15d
mov rax, qword [rbx + 0x40]
mov dword [rax + 0x68], r15d
or qword [rbx + 0x60], 4
mov rax, qword gs:[0x58]
mov rax, qword [rax + rsi*8]
mov eax, dword [r14 + rax]
cmp dword [0x18018931c], eax
jle 0x18009a9e3
lea rcx, [0x18018931c]
call fcn.1800abe2c
cmp dword [0x18018931c], 0xffffffff
jne 0x18009a9e3
mov rdx, r13
lea rcx, [0x18010c719]
call fcn.18005f770
mov rcx, rax
call fcn.180097d70
mov dword [0x1801892fc], eax
lea rcx, [0x18018931c]
call fcn.1800abdc0
mov eax, dword [0x1801892fc]
test byte [rax + rdi], 1
je 0x18009a9f4
and qword [rbx + 0x60], 0xfffffffffffffffd
mov rcx, rdi
call fcn.1800a3950
movsd xmm0, qword [rax]
movsd qword [rbp], xmm0
xorps xmm7, xmm7
movss xmm9, dword [rax + 8]
movaps xmm8, xmm9
subss xmm8, xmm15
movss xmm10, dword [rbp + 4]
movss xmm11, dword [rbp]
mov esi, 7
movaps xmm0, xmm7
call fcn.1800cd340
movaps xmm6, xmm0
mulss xmm6, dword [0x180111210]
addss xmm6, xmm11
movss dword [rbp + 0x10], xmm6
movaps xmm0, xmm7
call fcn.1800d18b0
mulss xmm0, dword [0x180111210]
addss xmm0, xmm10
movss dword [rbp + 0x14], xmm0
movss dword [rbp + 0x18], xmm9
movss dword [rbp], xmm6
movss dword [rbp + 4], xmm0
movss dword [rbp + 8], xmm8
xorps xmm0, xmm0
movups xmmword [rbp + 0x180], xmm0
movups xmmword [rbp + 0x190], xmm0
movups xmmword [rbp + 0x1a0], xmm0
movups xmmword [rbp + 0x1b0], xmm0
mov word [rsp + 0x28], si
mov byte [rsp + 0x20], 3
mov r9d, 0x1400b
mov r8, rdi
lea rdx, [rbp + 0x180]
mov rcx, qword [0x1801893c0]
call fcn.180068a60
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
movups xmmword [rbp + 0x90], xmm0
movups xmmword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0xc0], xmm0
mov qword [rbp + 0xd0], rax
movups xmmword [rbp + 0x108], xmm0
movups xmmword [rbp + 0x118], xmm0
movups xmmword [rbp + 0x128], xmm0
movups xmmword [rbp + 0x138], xmm0
movups xmmword [rbp + 0x148], xmm0
movups xmmword [rbp + 0x158], xmm0
movups xmmword [rbp + 0x78], xmm0
movups xmmword [rbp + 0x88], xmm0
movups xmmword [rbp + 0x98], xmm0
mov qword [rbp + 0xa8], rax
movups xmmword [rbp + 0xb4], xmm0
movups xmmword [rbp + 0xc4], xmm0
mov qword [rbp + 0xd4], rax
mov dword [rbp + 0xdc], eax
movups xmmword [rbp + 0xe0], xmm0
xorps xmm1, xmm1
movups xmmword [rbp + 0xf0], xmm1
mov qword [rbp + 0x100], rax
movups xmmword [rbp + 0x117], xmm0
movups xmmword [rbp + 0x127], xmm0
movups xmmword [rbp + 0x137], xmm0
movups xmmword [rbp + 0x147], xmm0
mov qword [rbp + 0x157], rax
mov dword [rbp + 0x15f], eax
mov byte [rbp + 0x163], al
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm1
movups xmmword [rbp + 0x40], xmm0
mov dword [rbp + 0x50], eax
mov byte [rbp + 0x54], al
movups xmm0, xmmword [rbp + 0x180]
movaps xmmword [rbp + 0x1c0], xmm0
movups xmm1, xmmword [rbp + 0x190]
movaps xmmword [rbp + 0x1d0], xmm1
movups xmm0, xmmword [rbp + 0x1a0]
movaps xmmword [rbp + 0x1e0], xmm0
movups xmm1, xmmword [rbp + 0x1b0]
movaps xmmword [rbp + 0x1f0], xmm1
lea rax, [rbp + 0x60]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x1c0]
mov qword [rsp + 0x20], rax
lea r9, [rbp]
lea r8, [rbp + 0x10]
lea rdx, [rbp + 0x20]
call fcn.18006b350
movss xmm0, dword [rbp + 0x10c]
ucomiss xmm0, dword [0x18011110c]
jp 0x18009ac19
je 0x18009ac26
ucomiss xmm0, xmm12
jp 0x18009ac21
je 0x18009ac26
or qword [rbx + 0x60], 4
addss xmm7, xmm13
comiss xmm14, xmm7
ja 0x18009aa28
mov rcx, qword [rbx + 0x40]
mov eax, dword [0x180189938]
cmp dword [rcx + 0x4c], eax
jle 0x18009a57c
mov byte [0x180189970], 0
mov dword [0x180189938], r15d
jmp 0x18009a57c