Function at 0x180010130
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], r14
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0x100
movaps xmmword [rax - 0x18], xmm6
mov rdi, rcx
movaps xmmword [rax - 0x28], xmm7
mov rsi, r8
xor eax, eax
mov r14, rdx
mov qword [rcx + 4], rax
xorps xmm6, xmm6
mov dword [rcx], eax
mov ecx, dword [0x18036f080]
test ecx, ecx
je 0x1800103f2
cmp ecx, 1
jne 0x18001069b
lea edx, [rax + 0x2f]
mov rcx, r8
call fcn.18000eae0
mov rdx, rax
test rax, rax
jne 0x18001019e
mov qword [rbp - 0x75], rax
mov dword [rbp - 0x79], eax
jmp 0x1800101d3
mov rax, qword [0x18036f520]
lea rcx, [rsp + 0x20]
add rax, 0x2157e40
call rax
movss xmm0, dword [rsp + 0x20]
movss xmm1, dword [rsp + 0x24]
movss dword [rbp - 0x79], xmm0
movss xmm0, dword [rsp + 0x28]
movss dword [rbp - 0x71], xmm0
movss dword [rbp - 0x75], xmm1
movsd xmm0, qword [rbp - 0x79]
mov ecx, 0x58
mov eax, dword [rbp - 0x71]
movsd qword [rdi], xmm0
mov dword [rdi + 8], eax
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movss xmm7, dword [0x180072fd8]
test ax, ax
je 0x18001033c
cmp byte [0x18036f0d4], 0
je 0x18001033c
mov ecx, dword [0x18036f08c]
test ecx, ecx
je 0x1800102db
sub ecx, 1
je 0x180010283
cmp ecx, 1
jne 0x18001033c
lea edx, [rcx + 0x2e]
mov rcx, rsi
call fcn.18000eae0
mov rdx, rax
test rax, rax
jne 0x180010250
xorps xmm1, xmm1
xorps xmm0, xmm0
subss xmm1, dword [0x18007303c]
xorps xmm2, xmm2
jmp 0x180010325
mov rax, qword [0x18036f520]
lea rcx, [rsp + 0x20]
add rax, 0x2157e40
call rax
movss xmm1, dword [rsp + 0x24]
subss xmm1, dword [0x18007303c]
movss xmm2, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x28]
jmp 0x180010325
mov edx, 0x2f
mov rcx, rsi
call fcn.18000eae0
mov rdx, rax
test rax, rax
jne 0x1800102ab
xorps xmm1, xmm1
xorps xmm0, xmm0
subss xmm1, dword [0x18007302c]
xorps xmm2, xmm2
jmp 0x180010325
mov rax, qword [0x18036f520]
lea rcx, [rsp + 0x20]
add rax, 0x2157e40
call rax
movss xmm1, dword [rsp + 0x24]
subss xmm1, dword [0x18007302c]
movss xmm2, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x28]
jmp 0x180010325
mov edx, 0x2f
mov rcx, rsi
call fcn.18000eae0
mov rdx, rax
test rax, rax
jne 0x1800102fb
xorps xmm0, xmm0
xorps xmm1, xmm1
xorps xmm2, xmm2
jmp 0x180010321
mov rax, qword [0x18036f520]
lea rcx, [rsp + 0x20]
add rax, 0x2157e40
call rax
movss xmm2, dword [rsp + 0x20]
movss xmm1, dword [rsp + 0x24]
movss xmm0, dword [rsp + 0x28]
subss xmm1, xmm7
movss dword [rsp + 0x28], xmm0
movaps xmm0, xmm2
mov eax, dword [rsp + 0x28]
unpcklps xmm0, xmm1
movsd qword [rdi], xmm0
mov dword [rdi + 8], eax
cmp byte [0x18036f05a], 0
je 0x18001069b
mov ecx, 0x14
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800103b7
mov edx, 0x2f
mov rcx, rsi
call fcn.18000eae0
mov rdx, rax
test rax, rax
jne 0x180010379
xorps xmm1, xmm1
xorps xmm2, xmm2
xorps xmm0, xmm0
jmp 0x18001039f
mov rax, qword [0x18036f520]
lea rcx, [rsp + 0x20]
add rax, 0x2157e40
call rax
movss xmm0, dword [rsp + 0x20]
movss xmm2, dword [rsp + 0x24]
movss xmm1, dword [rsp + 0x28]
subss xmm0, xmm7
movss dword [rsp + 0x28], xmm1
mov eax, dword [rsp + 0x28]
unpcklps xmm0, xmm2
movsd qword [rdi], xmm0
mov dword [rdi + 8], eax
mov ecx, 0x56
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18001069b
mov edx, 0x2f
mov rcx, rsi
call fcn.18000eae0
mov rdx, rax
test rax, rax
jne 0x180010659
xorps xmm1, xmm1
xorps xmm2, xmm2
xorps xmm0, xmm0
jmp 0x18001067f
mov edx, 0x16
mov rcx, rsi
call fcn.18000eae0
mov rdx, rax
test rax, rax
jne 0x180010410
mov qword [rbp - 0x75], rax
mov dword [rbp - 0x79], eax
jmp 0x180010445
mov rax, qword [0x18036f520]
lea rcx, [rsp + 0x20]
add rax, 0x2157e40
call rax
movss xmm0, dword [rsp + 0x20]
movss xmm1, dword [rsp + 0x24]
movss dword [rbp - 0x79], xmm0
movss xmm0, dword [rsp + 0x28]
movss dword [rbp - 0x71], xmm0
movss dword [rbp - 0x75], xmm1
movsd xmm0, qword [rbp - 0x79]
mov ecx, 0x58
mov eax, dword [rbp - 0x71]
movsd qword [rdi], xmm0
mov dword [rdi + 8], eax
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movss xmm7, dword [0x180072fd8]
test ax, ax
je 0x1800105ae
cmp byte [0x18036f0d4], 0
je 0x1800105ae
mov ecx, dword [0x18036f08c]
test ecx, ecx
je 0x18001054d
sub ecx, 1
je 0x1800104f5
cmp ecx, 1
jne 0x1800105ae
lea edx, [rcx + 0x15]
mov rcx, rsi
call fcn.18000eae0
mov rdx, rax
test rax, rax
jne 0x1800104c2
xorps xmm1, xmm1
xorps xmm0, xmm0
subss xmm1, dword [0x18007303c]
xorps xmm2, xmm2
jmp 0x180010597
mov rax, qword [0x18036f520]
lea rcx, [rsp + 0x20]
add rax, 0x2157e40
call rax
movss xmm1, dword [rsp + 0x24]
subss xmm1, dword [0x18007303c]
movss xmm2, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x28]
jmp 0x180010597
mov edx, 0x16
mov rcx, rsi
call fcn.18000eae0
mov rdx, rax
test rax, rax
jne 0x18001051d
xorps xmm1, xmm1
xorps xmm0, xmm0
subss xmm1, dword [0x18007302c]
xorps xmm2, xmm2
jmp 0x180010597
mov rax, qword [0x18036f520]
lea rcx, [rsp + 0x20]
add rax, 0x2157e40
call rax
movss xmm1, dword [rsp + 0x24]
subss xmm1, dword [0x18007302c]
movss xmm2, dword [rsp + 0x20]
movss xmm0, dword [rsp + 0x28]
jmp 0x180010597
mov edx, 0x16
mov rcx, rsi
call fcn.18000eae0
mov rdx, rax
test rax, rax
jne 0x18001056d
xorps xmm0, xmm0
xorps xmm1, xmm1
xorps xmm2, xmm2
jmp 0x180010593
mov rax, qword [0x18036f520]
lea rcx, [rsp + 0x20]
add rax, 0x2157e40
call rax
movss xmm2, dword [rsp + 0x20]
movss xmm1, dword [rsp + 0x24]
movss xmm0, dword [rsp + 0x28]
subss xmm1, xmm7
movss dword [rsp + 0x28], xmm0
movaps xmm0, xmm2
mov eax, dword [rsp + 0x28]
unpcklps xmm0, xmm1
movsd qword [rdi], xmm0
mov dword [rdi + 8], eax
cmp byte [0x18036f05a], 0
je 0x18001069b
mov ecx, 0x14
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180010629
mov edx, 0x16
mov rcx, rsi
call fcn.18000eae0
mov rdx, rax
test rax, rax
jne 0x1800105eb
xorps xmm1, xmm1
xorps xmm2, xmm2
xorps xmm0, xmm0
jmp 0x180010611
mov rax, qword [0x18036f520]
lea rcx, [rsp + 0x20]
add rax, 0x2157e40
call rax
movss xmm0, dword [rsp + 0x20]
movss xmm2, dword [rsp + 0x24]
movss xmm1, dword [rsp + 0x28]
subss xmm0, xmm7
movss dword [rsp + 0x28], xmm1
mov eax, dword [rsp + 0x28]
unpcklps xmm0, xmm2
movsd qword [rdi], xmm0
mov dword [rdi + 8], eax
mov ecx, 0x56
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18001069b
mov edx, 0x16
mov rcx, rsi
call fcn.18000eae0
mov rdx, rax
test rax, rax
jne 0x180010659
xorps xmm1, xmm1
xorps xmm2, xmm2
xorps xmm0, xmm0
jmp 0x18001067f
mov rax, qword [0x18036f520]
lea rcx, [rsp + 0x20]
add rax, 0x2157e40
call rax
movss xmm0, dword [rsp + 0x20]
movss xmm1, dword [rsp + 0x28]
movss xmm2, dword [rsp + 0x24]
subss xmm0, dword [0x180073148]
movss dword [rsp + 0x28], xmm1
mov eax, dword [rsp + 0x28]
unpcklps xmm0, xmm2
movsd qword [rdi], xmm0
mov dword [rdi + 8], eax
mov rcx, qword [0x18036ee10]
call fcn.18000e620
lea rdx, [rbp - 0x69]
mov rcx, rax
mov rbx, rax
call fcn.18000ee90
mov rcx, rbx
call fcn.18000f310
movss xmm0, dword [r14 + 4]
xorps xmm4, xmm4
movss xmm1, dword [r14]
mov ecx, eax
movss xmm5, dword [rdi + 4]
movss xmm7, dword [rdi]
subss xmm0, xmm5
subss xmm1, xmm7
cvtps2pd xmm2, xmm0
movss xmm0, dword [r14 + 8]
subss xmm0, dword [rdi + 8]
cvtps2pd xmm3, xmm1
cvtps2pd xmm1, xmm0
mulsd xmm3, xmm3
mulsd xmm2, xmm2
mulsd xmm1, xmm1
addsd xmm3, xmm2
addsd xmm3, xmm1
cvtpd2ps xmm0, xmm3
sqrtss xmm4, xmm0
comiss xmm4, dword [0x180072f50]
jbe 0x1800108e9
movaps xmm0, xmmword [rbp - 0x69]
movaps xmm1, xmmword [rbp - 0x59]
movaps xmmword [rbp - 0x19], xmm0
movaps xmm0, xmmword [rbp - 0x49]
movaps xmmword [rbp - 9], xmm1
movaps xmm1, xmmword [rbp - 0x39]
movaps xmmword [rbp + 7], xmm0
movsd xmm0, qword [rbp - 0x29]
movaps xmmword [rbp + 0x17], xmm1
movss xmm1, dword [0x1800730d0]
movsd qword [rbp + 0x27], xmm0
test eax, eax
jne 0x180010759
movss xmm0, dword [rbp - 0x51]
jmp 0x1800107a1
lea rdx, [rbp - 9]
nop dword [rax]
mov eax, dword [rdx + 8]
movsd xmm0, qword [rdx]
mov dword [rbp - 0x71], eax
lea rax, [rbp - 0x79]
movsd qword [rbp - 0x79], xmm0
cmp dword [rax], ecx
je 0x18001079c
add rax, 4
lea r8, [rbp - 0x71]
cmp rax, r8
jne 0x180010773
cmp dword [rbp - 0x79], 0
je 0x18001079c
add rdx, 0xc
lea rax, [rbp + 0x27]
cmp rdx, rax
jne 0x180010760
movaps xmm0, xmm1
jmp 0x1800107a1
movss xmm0, dword [rbp - 0x71]
mulss xmm0, dword [0x180210700]
ucomiss xmm0, xmm6
jne 0x1800107b1
movaps xmm0, xmm1
lea rdx, [rsi + 0x4c0]
divss xmm4, xmm0
cmp rdx, 0x400000
jbe 0x18001080c
lea rax, [rsi + 0x4c8]
movabs r8, 0x7fffffff0000
cmp rax, r8
jae 0x18001080c
mov rax, qword [rdx]
lea rdx, [rax + 0x22c]
cmp rdx, 0x400000
jbe 0x18001080c
add rax, 0x238
cmp rax, r8
jae 0x18001080c
movsd xmm0, qword [rdx]
mov eax, dword [rdx + 8]
movsd qword [rsp + 0x20], xmm0
mov dword [rsp + 0x28], eax
jmp 0x18001081d
mov qword [rsp + 0x24], 0
mov dword [rsp + 0x20], 0
movss xmm2, dword [0x180072fac]
lea rax, [rsp + 0x20]
movsd xmm1, qword [rax]
mov eax, dword [rax + 8]
movaps xmm0, xmm1
mulss xmm0, xmm4
movaps xmm3, xmm1
mov dword [rsp + 0x28], eax
shufps xmm3, xmm3, 0x55
mulss xmm3, xmm4
mulss xmm0, xmm2
mulss xmm3, xmm2
addss xmm0, xmm7
addss xmm3, xmm5
movss dword [rdi], xmm0
movss xmm0, dword [rsp + 0x28]
mulss xmm0, xmm4
mulss xmm0, xmm2
addss xmm0, dword [rdi + 8]
movss dword [rdi + 8], xmm0
cmp ecx, 0xc3054289
jg 0x1800108b3
je 0x1800108a9
cmp ecx, 0x82fc91ad
je 0x180010895
cmp ecx, 0xb139337d
je 0x18001089f
cmp ecx, 0xb6676e3b
jne 0x1800108cd
movss xmm1, dword [0x180073038]
jmp 0x1800108d5
movss xmm1, dword [0x180073050]
jmp 0x1800108d5
movss xmm1, dword [0x180073028]
jmp 0x1800108d5
cmp ecx, 0xd94fd7
je 0x1800108cd
cmp ecx, 0xcdc27d9
jne 0x1800108cd
movss xmm1, dword [0x180073038]
jmp 0x1800108d5
movss xmm1, dword [0x180073040]
movaps xmm0, xmm4
mulss xmm0, xmm1
mulss xmm0, xmm4
addss xmm0, xmm3
movss dword [rdi + 4], xmm0
lea r11, [rsp + 0x100]
mov rax, rdi
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop rbp
ret