Function at 0x140116590
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x20], xmm10
movaps xmmword [rbp + 0x10], xmm9
movapd xmmword [rbp], xmm8
movaps xmmword [rbp - 0x10], xmm7
movaps xmmword [rbp - 0x20], xmm6
mov qword [rbp - 0x28], 0xfffffffffffffffe
mov ecx, dword [0x1406eeefc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1401165df
cmp byte [0x1406eeeca], 0
jne 0x140116611
jmp 0x1401165ef
mov byte [0x1406ee660], 0
cmp byte [0x1406eeeca], 0
jne 0x140116611
mov ecx, dword [0x1406eeefc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x140116982
cmp byte [0x1406eeec8], 0
je 0x140116982
movsxd rax, dword [0x1406c6130]
cmp rax, 0xffffffffffffffff
je 0x1401166b0
mov rcx, qword [0x1406ee818]
shl rax, 5
mov rdi, qword [rcx + rax]
test rdi, rdi
je 0x140116982
mov edx, dword [0x1406b9304]
add rdx, rdi
lea rcx, [0x1406ee528]
call fcn.1401737e0
test rax, rax
je 0x140116982
mov rsi, rax
mov edx, dword [0x1406b938c]
add rdx, rdi
lea rbx, [0x1406ee528]
mov r8d, 8
mov rcx, rbx
call fcn.1400b8690
mov edx, dword [0x1406b9394]
add rdx, rax
mov r8d, 1
mov rcx, rbx
call fcn.14017b2e0
cmp dword [0x1406f1390], 0xa
jl 0x1401166f2
mov eax, dword [0x1406f1394]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x140116744
jmp 0x1401166f2
mov byte [0x1406ee660], 0
cmp dword [0x1406df060], 0xa
jl 0x1401166e2
mov eax, dword [0x1406df064]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x1401166e2
nop word cs:[rax + rax]
nop dword [rax + rax]
jmp 0x1401166e0
mov qword [0x1406ee980], 0
jmp 0x140116982
mov edx, dword [0x1406b9364]
add rdx, rsi
lea rbx, [0x1406ee528]
mov r8d, 4
mov rcx, rbx
call fcn.1400bf8a0
movaps xmm6, xmm0
mov edx, dword [0x1406b9360]
add rdx, rsi
mov r8d, 4
mov rcx, rbx
call fcn.1400bf8a0
cmp dword [0x1406f1390], 0xa
jl 0x14011677e
mov eax, dword [0x1406f1394]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x14011677e
mov edx, dword [0x1406b9364]
add rdx, rsi
lea rbx, [0x1406ee528]
mov r8d, 4
mov rcx, rbx
call fcn.1400bf8a0
mov edx, dword [0x1406b9360]
add rdx, rsi
mov r8d, 4
mov rcx, rbx
call fcn.1400bf8a0
jmp 0x1401166f2
addss xmm6, dword [0x1402516a4]
ucomiss xmm6, xmm0
jae 0x140116798
cmp byte [0x1406eeed0], 0
jne 0x140116982
mov edx, dword [0x1406b931c]
add rdx, rdi
lea rcx, [0x1406ee528]
mov r8d, 4
call fcn.1400fe560
cmp eax, 0xffffffff
jne 0x140116982
mov edx, dword [0x1406b931c]
add rdx, rdi
lea rcx, [0x1406ee528]
mov r8d, 1
call fcn.140178aa0
test al, al
je 0x140116982
mov eax, dword [0x1406b9308]
add rdi, rax
cmp dword [0x1406f13d0], 0xa
jl 0x140116802
mov eax, dword [0x1406f13d4]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
jne 0x14011682b
lea rcx, [0x1406ee528]
mov rdx, rdi
call fcn.1401737e0
cmp dword [0x1406f13d0], 0xa
jl 0x14011683c
mov ecx, dword [0x1406f13d4]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
je 0x14011683c
lea rcx, [0x1406ee528]
mov rdx, rdi
call fcn.1401737e0
jmp 0x140116802
mov ecx, dword [0x1406b9320]
add rax, rcx
lea rcx, [0x1406ee528]
mov r8d, 4
mov rdx, rax
call fcn.1400bf8a0
xorps xmm1, xmm1
ucomiss xmm1, xmm0
jb 0x140116869
mov byte [0x1406ee660], 0
ucomiss xmm0, xmm1
jbe 0x140116982
mov eax, dword [0x1406eeed4]
xor ecx, ecx
cmp eax, 2
setne cl
add ecx, ecx
add ecx, 6
cmp eax, 1
mov edx, 9
cmovne edx, ecx
test eax, eax
mov r8d, 8
cmovg r8d, edx
lea rdi, [rbp - 0x58]
mov rcx, rdi
mov rdx, rsi
call fcn.1400b96b0
lea rcx, [rbp - 0x48]
mov rdx, rdi
call fcn.1400bad50
movss xmm7, dword [rbp - 0x48]
movss xmm6, dword [rbp - 0x44]
cmp dword [0x1406dfec4], 0xa
jl 0x1401168e2
mov eax, dword [0x1406dfec0]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x1401168e2
nop dword [rax + rax]
jmp 0x1401168e0
cmp dword [0x1406def4c], 0xa
jl 0x140116902
mov eax, dword [0x1406def48]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x140116902
nop dword [rax]
jmp 0x140116900
addss xmm6, dword [0x140250d2c]
mov eax, dword [0x1406ee5ec]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mov eax, dword [0x1406ee5e8]
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
movss xmm2, dword [0x1406eeee4]
movss xmm3, dword [0x1402516c8]
ucomiss xmm3, xmm2
jbe 0x1401169a5
movaps xmm3, xmm1
subss xmm3, xmm7
movaps xmm4, xmm0
subss xmm4, xmm6
mulss xmm3, xmm3
mulss xmm4, xmm4
addss xmm4, xmm3
mulss xmm2, xmm2
ucomiss xmm2, xmm4
jae 0x1401169a5
cmp dword [0x1406def4c], 0xa
jl 0x140116982
mov eax, dword [0x1406def48]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x140116982
nop dword [rax + rax]
jmp 0x140116980
movaps xmm6, xmmword [rbp - 0x20]
movaps xmm7, xmmword [rbp - 0x10]
movaps xmm8, xmmword [rbp]
movaps xmm9, xmmword [rbp + 0x10]
movaps xmm10, xmmword [rbp + 0x20]
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop rbp
ret
movss xmm10, dword [0x1406ee8e0]
addss xmm10, xmm6
cmp dword [0x1406df060], 0xa
jl 0x1401169d2
mov eax, dword [0x1406df064]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x1401169d2
nop dword [rax]
jmp 0x1401169d0
movaps xmm9, xmm7
subss xmm9, xmm1
subss xmm10, xmm0
xorps xmm0, xmm0
ucomiss xmm9, xmm0
jne 0x1401169f7
jp 0x1401169f7
ucomiss xmm10, xmm0
jne 0x1401169f7
jnp 0x14011695e
cmp byte [0x1406eeecb], 0
movsd xmm0, qword [0x1402656a8]
je 0x140116a12
movsd xmm1, qword [0x1402656b0]
jmp 0x140116a2a
movss xmm1, dword [0x1406eeee8]
cvtss2sd xmm1, xmm1
mulsd xmm1, qword [0x1402656a0]
addsd xmm1, xmm0
xorps xmm2, xmm2
movapd xmm8, xmm1
cmpnlesd xmm8, xmm2
andpd xmm1, xmm8
andnpd xmm8, xmm0
orpd xmm8, xmm1
mov ecx, dword [0x1406eeefc]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x140116ae9
cmp byte [0x1406eeeca], 0
je 0x140116b22
mov eax, dword [0x1406ee5ec]
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mov eax, dword [0x1406ee5e8]
xorps xmm1, xmm1
cvtsi2ss xmm1, rax
subss xmm1, xmm7
subss xmm0, xmm6
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
movss xmm1, dword [0x1402656b8]
ucomiss xmm1, xmm0
jb 0x14011695e
lea rcx, [rbp - 0x30]
call fcn.1400daca0
mov rax, qword [rbp - 0x30]
mov qword [0x1406ee910], rax
mov rcx, qword [0x1406ee908]
cmp dword [0x1406f12c8], 0xa
jl 0x140116bd0
mov edx, dword [0x1406f12cc]
lea ebx, [rdx - 1]
imul ebx, edx
and ebx, 1
je 0x140116bd0
jmp 0x140116ae7
lea rcx, [rbp - 0x30]
call fcn.1400daca0
mov rax, qword [rbp - 0x30]
mov qword [0x1406ee910], rax
mov rcx, qword [0x1406ee908]
cmp dword [0x1406f12c8], 0xa
jl 0x140116b49
mov edx, dword [0x1406f12cc]
lea ebx, [rdx - 1]
imul ebx, edx
and ebx, 1
je 0x140116b49
nop
jmp 0x140116b20
mov byte [0x1406ee660], 0
cmp dword [0x1406df060], 0xa
jl 0x140116bc0
mov eax, dword [0x1406df064]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x140116bc0
jmp 0x140116b47
sub rax, rcx
mov qword [rbp - 0x38], rax
lea rcx, [rbp - 0x30]
lea rdx, [rbp - 0x38]
call fcn.140108d40
movsd xmm0, qword [rbp - 0x30]
ucomisd xmm0, xmm8
jb 0x14011695e
lea rcx, [rbp - 0x30]
call fcn.1400daca0
mov rax, qword [rbp - 0x30]
mov qword [0x1406ee908], rax
mov al, byte [0x1406eeecb]
test al, al
je 0x140116c83
cmp byte [0x1406ee660], 0
jne 0x140116c83
cmp dword [0x1406f13cc], 0xa
jl 0x140116d06
mov eax, dword [0x1406f13c8]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
je 0x140116d06
jmp 0x140116bbe
mov qword [0x1406ee980], 0
jmp 0x14011695e
sub rax, rcx
mov qword [rbp - 0x38], rax
lea rcx, [rbp - 0x30]
lea rdx, [rbp - 0x38]
call fcn.140108d40
movsd xmm0, qword [rbp - 0x30]
ucomisd xmm0, xmm8
jb 0x14011695e
lea rcx, [rbp - 0x30]
call fcn.1400daca0
mov rax, qword [rbp - 0x30]
mov qword [0x1406ee908], rax
movd edx, xmm9
movd eax, xmm10
shl rax, 0x20
or rdx, rax
lea rcx, [0x1406ee980]
call fcn.140115a30
movss xmm0, dword [0x1406ee980]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
cvttss2si esi, xmm0
movss xmm0, dword [0x1406ee984]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
cvttss2si edi, xmm0
cmp dword [0x1406eeed4], 3
jne 0x140116c63
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ecx, ecx
test ax, ax
cmovns edi, ecx
mov eax, esi
or eax, edi
je 0x14011695e
lea rcx, [0x1406ee528]
mov edx, esi
mov r8d, edi
call fcn.140116f60
jmp 0x14011695e
test al, al
jne 0x14011695e
movd edx, xmm9
movd eax, xmm10
shl rax, 0x20
or rdx, rax
lea rcx, [0x1406ee980]
call fcn.140115a30
movss xmm0, dword [0x1406ee980]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
cvttss2si esi, xmm0
movss xmm0, dword [0x1406ee984]
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
cvttss2si edi, xmm0
cmp dword [0x1406eeed4], 3
jne 0x140116ce6
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ecx, ecx
test ax, ax
cmovns edi, ecx
mov eax, esi
or eax, edi
je 0x14011695e
lea rcx, [0x1406ee528]
mov edx, esi
mov r8d, edi
call fcn.140116f60
jmp 0x14011695e
movsd xmm0, qword [0x1406eeef0]
mulsd xmm0, qword [0x140265690]
movsd xmm1, qword [0x1402516b8]
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm9
mulsd xmm0, xmm1
cvtsd2ss xmm0, xmm0
movss dword [0x1406ee980], xmm0
xorps xmm2, xmm2
cvtss2sd xmm2, xmm10
mulsd xmm2, xmm1
xorps xmm8, xmm8
cvtsd2ss xmm8, xmm2
movss dword [0x1406ee984], xmm8
movss xmm1, dword [0x140250d70]
ucomiss xmm1, xmm0
jbe 0x140116d6d
xorps xmm2, xmm2
ucomiss xmm0, xmm2
ja 0x140116d7e
ucomiss xmm0, dword [0x140250e64]
jbe 0x140116d8b
xorps xmm2, xmm2
ucomiss xmm2, xmm0
jbe 0x140116d8b
movss dword [0x1406ee980], xmm9
movaps xmm0, xmm9
ucomiss xmm1, xmm8
jbe 0x140116d9a
xorps xmm2, xmm2
ucomiss xmm8, xmm2
ja 0x140116dad
ucomiss xmm8, dword [0x140250e64]
jbe 0x140116dba
xorps xmm2, xmm2
ucomiss xmm2, xmm8
jbe 0x140116dba
movss dword [0x1406ee984], xmm10
movaps xmm8, xmm10
movaps xmm2, xmm0
subss xmm2, xmm9
andps xmm2, xmmword [0x140250d40]
ucomiss xmm1, xmm2
jbe 0x140116ddb
movss dword [0x1406ee980], xmm9
movaps xmm0, xmm9
movaps xmm2, xmm8
subss xmm2, xmm10
andps xmm2, xmmword [0x140250d40]
ucomiss xmm1, xmm2
jbe 0x140116dfd
movss dword [0x1406ee984], xmm10
movaps xmm8, xmm10
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
cvttss2si esi, xmm0
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_roundf
cvttss2si edi, xmm0
lea rcx, [0x1406ee528]
mov edx, esi
mov r8d, edi
call fcn.140116f60
lea rcx, [0x1406ee528]
call fcn.140118110
neg edi
neg esi
lea rcx, [0x1406ee528]
mov edx, esi
mov r8d, edi
call fcn.140116f60
mov byte [0x1406ee660], 1
jmp 0x14011695e