Function at 0x1001d7b0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x1006d040]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [0x1006f65c]
or edx, 0xffffffff
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetKeyState]
test al, al
mov ecx, 0x80ffffff
push esi
cmovne edx, ecx
push edi
mov dword [ebp - 0x3c], edx
je 0x1001e12b
movq xmm0, qword [0x10064e48]
lea edx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064bd0]
mov eax, dword [0x10064e50]
push 0xffffffffffffffff
movups xmmword [ebp - 0x20], xmm0
push edx
movd xmm0, dword [0x1006f690]
lea edx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 8], eax
mov eax, dword [0x1006f600]
push 0
push edx
push dword [0x1006f678]
addss xmm0, dword [ebp - 0x10]
push eax
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x24]
movq xmm0, qword [0x10064ea8]
lea edx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064c64]
mov eax, dword [0x10064eb0]
push 0xffffffffffffffff
movups xmmword [ebp - 0x20], xmm0
push edx
movd xmm0, dword [0x1006f690]
lea edx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 8], eax
mov eax, dword [0x1006f600]
push 0
push edx
push dword [0x1006f678]
addss xmm0, dword [ebp - 0x10]
push eax
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x24]
movq xmm0, qword [0x10064ecc]
lea edx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064dd8]
mov eax, dword [0x10064ed4]
push 0xffffffffffffffff
movups xmmword [ebp - 0x20], xmm0
push edx
movd xmm0, dword [0x1006f690]
lea edx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 8], eax
mov eax, dword [0x1006f600]
push 0
push edx
push dword [0x1006f678]
addss xmm0, dword [ebp - 0x10]
push eax
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x24]
movq xmm0, qword [0x10064f50]
mov eax, dword [0x10064f58]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064bb0]
mov dword [ebp - 8], eax
movups xmmword [ebp - 0x20], xmm0
movd xmm0, dword [0x1006f690]
lea edx, [ebp - 0x10]
mov eax, dword [0x1006f600]
cvtdq2ps xmm0, xmm0
push 0xffffffffffffffff
push edx
push 0
lea edx, [ebp - 0x20]
push edx
addss xmm0, dword [ebp - 0x10]
push dword [0x1006f678]
push eax
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x24]
movq xmm0, qword [0x10064e9c]
lea edx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064d74]
mov eax, dword [0x10064ea4]
push 0xffffffffffffffff
movups xmmword [ebp - 0x20], xmm0
push edx
movd xmm0, dword [0x1006f690]
lea edx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 8], eax
mov eax, dword [0x1006f600]
push 0
push edx
push dword [0x1006f678]
addss xmm0, dword [ebp - 0x10]
push eax
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x24]
movq xmm0, qword [0x10064f2c]
lea edx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064cec]
mov eax, dword [0x10064f34]
push 0xffffffffffffffff
movups xmmword [ebp - 0x20], xmm0
push edx
movd xmm0, dword [0x1006f690]
lea edx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 8], eax
mov eax, dword [0x1006f600]
push 0
push edx
push dword [0x1006f678]
addss xmm0, dword [ebp - 0x10]
push eax
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x24]
movq xmm0, qword [0x10064e18]
mov eax, dword [0x10064e20]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064d94]
mov dword [ebp - 8], eax
movups xmmword [ebp - 0x20], xmm0
movd xmm0, dword [0x1006f690]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0x10]
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
mov eax, dword [0x1006f600]
lea edx, [ebp - 0x10]
push 0xffffffffffffffff
push edx
push 0
lea edx, [ebp - 0x20]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
push edx
push dword [0x1006f678]
push eax
call dword [ecx + 0x24]
movq xmm0, qword [0x10064f80]
lea edx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064e08]
mov eax, dword [0x10064f88]
push 0xffffffffffffffff
movups xmmword [ebp - 0x20], xmm0
push edx
movd xmm0, dword [0x1006f690]
lea edx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 8], eax
mov eax, dword [0x1006f600]
push 0
push edx
push dword [0x1006f678]
addss xmm0, dword [ebp - 0x10]
push eax
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x24]
movq xmm0, qword [0x10064f68]
lea edx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064ccc]
mov eax, dword [0x10064f70]
push 0xffffffffffffffff
movups xmmword [ebp - 0x20], xmm0
push edx
movd xmm0, dword [0x1006f690]
lea edx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 8], eax
mov eax, dword [0x1006f600]
push 0
push edx
push dword [0x1006f678]
addss xmm0, dword [ebp - 0x10]
push eax
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x24]
movq xmm0, qword [0x10064e30]
lea edx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064c54]
mov eax, dword [0x10064e38]
mov dword [ebp - 8], eax
movups xmmword [ebp - 0x20], xmm0
mov eax, dword [0x1006f600]
movd xmm0, dword [0x1006f690]
cvtdq2ps xmm0, xmm0
push 0xffffffffffffffff
addss xmm0, dword [ebp - 0x10]
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
push edx
push 0
lea edx, [ebp - 0x20]
push edx
push dword [0x1006f678]
push eax
call dword [ecx + 0x24]
movq xmm0, qword [0x10064f44]
lea edx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064d00]
mov eax, dword [0x10064f4c]
push 0xffffffffffffffff
movups xmmword [ebp - 0x20], xmm0
push edx
movd xmm0, dword [0x1006f690]
lea edx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 8], eax
mov eax, dword [0x1006f600]
push 0
push edx
push dword [0x1006f678]
addss xmm0, dword [ebp - 0x10]
push eax
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x24]
movq xmm0, qword [0x10064e6c]
lea edx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064c9c]
mov eax, dword [0x10064e74]
push 0xffffffffffffffff
movups xmmword [ebp - 0x20], xmm0
push edx
movd xmm0, dword [0x1006f690]
lea edx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 8], eax
mov eax, dword [0x1006f600]
push 0
push edx
push dword [0x1006f678]
addss xmm0, dword [ebp - 0x10]
push eax
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x24]
movq xmm0, qword [0x10064e78]
lea edx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064d20]
mov eax, dword [0x10064e80]
push 0xffffffffffffffff
movups xmmword [ebp - 0x20], xmm0
push edx
movd xmm0, dword [0x1006f690]
lea edx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
push 0
mov dword [ebp - 8], eax
mov eax, dword [0x1006f600]
push edx
push dword [0x1006f678]
addss xmm0, dword [ebp - 0x10]
push eax
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x24]
movq xmm0, qword [0x10064f14]
lea edx, [ebp - 0x10]
movq qword [ebp - 0x10], xmm0
movups xmm0, xmmword [0x10064c10]
mov eax, dword [0x10064f1c]
push 0xffffffffffffffff
movups xmmword [ebp - 0x20], xmm0
push edx
movd xmm0, dword [0x1006f690]
lea edx, [ebp - 0x20]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 8], eax
mov eax, dword [0x1006f600]
push 0
push edx
push dword [0x1006f678]
addss xmm0, dword [ebp - 0x10]
push eax
movss dword [ebp - 0x10], xmm0
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [ebp - 0xc]
movss dword [ebp - 0xc], xmm0
mov ecx, dword [eax]
call dword [ecx + 0x24]
push 1
call ebx
test al, al
jns 0x1001de05
movd xmm1, dword [0x1006f690]
movd xmm2, dword [0x1006f654]
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
addss xmm1, dword [0x10064ea8]
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm1
addss xmm0, dword [0x10064eac]
jbe 0x1001de05
addss xmm1, dword [0x10066f20]
comiss xmm1, xmm2
jbe 0x1001de05
movd xmm1, dword [0x1006f658]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001de05
addss xmm0, dword [0x10066ee8]
comiss xmm0, xmm1
jbe 0x1001de05
cmp byte [0x1006f6c8], 0
jne 0x1001de05
mov byte [0x1006f6c8], 1
mov byte [0x1006f65c], 0
push 1
call ebx
test al, al
jns 0x1001de84
movd xmm1, dword [0x1006f690]
movd xmm2, dword [0x1006f654]
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
addss xmm1, dword [0x10064ecc]
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm1
addss xmm0, dword [0x10064ed0]
jbe 0x1001de84
addss xmm1, dword [0x10066f24]
comiss xmm1, xmm2
jbe 0x1001de84
movd xmm1, dword [0x1006f658]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001de84
addss xmm0, dword [0x10066ee8]
comiss xmm0, xmm1
jbe 0x1001de84
cmp byte [0x1006f6c8], 0
jne 0x1001de84
mov byte [0x1006f6c8], 1
mov byte [0x1006f65c], 0
push 1
call ebx
test al, al
jns 0x1001df03
movd xmm1, dword [0x1006f690]
movd xmm2, dword [0x1006f654]
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
addss xmm1, dword [0x10064f50]
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm1
addss xmm0, dword [0x10064f54]
jbe 0x1001df03
addss xmm1, dword [0x10066f24]
comiss xmm1, xmm2
jbe 0x1001df03
movd xmm1, dword [0x1006f658]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001df03
addss xmm0, dword [0x10066ed8]
comiss xmm0, xmm1
jbe 0x1001df03
cmp byte [0x1006f6c8], 0
jne 0x1001df03
mov byte [0x1006f6c8], 1
mov byte [0x1006f65c], 0
push 1
call ebx
test al, al
jns 0x1001df82
movd xmm1, dword [0x1006f690]
movd xmm2, dword [0x1006f654]
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
addss xmm1, dword [0x10064e9c]
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm1
addss xmm0, dword [0x10064ea0]
jbe 0x1001df82
addss xmm1, dword [0x10066f1c]
comiss xmm1, xmm2
jbe 0x1001df82
movd xmm1, dword [0x1006f658]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001df82
addss xmm0, dword [0x10066ed8]
comiss xmm0, xmm1
jbe 0x1001df82
cmp byte [0x1006f6c8], 0
jne 0x1001df82
mov byte [0x1006f6c8], 1
mov byte [0x1006f65c], 0
push 1
call ebx
test al, al
jns 0x1001e001
movd xmm1, dword [0x1006f690]
movd xmm2, dword [0x1006f654]
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
addss xmm1, dword [0x10064f2c]
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm1
addss xmm0, dword [0x10064f30]
jbe 0x1001e001
addss xmm1, dword [0x10066f20]
comiss xmm1, xmm2
jbe 0x1001e001
movd xmm1, dword [0x1006f658]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001e001
addss xmm0, dword [0x10066ed8]
comiss xmm0, xmm1
jbe 0x1001e001
cmp byte [0x1006f6c8], 0
jne 0x1001e001
mov byte [0x1006f6c8], 1
mov byte [0x1006f65c], 0
push 1
call ebx
test al, al
jns 0x1001e092
movd xmm1, dword [0x1006f690]
movd xmm2, dword [0x1006f654]
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
addss xmm1, dword [0x10064e18]
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm1
addss xmm0, dword [0x10064e1c]
jbe 0x1001e092
addss xmm1, dword [0x10066f24]
comiss xmm1, xmm2
jbe 0x1001e092
movd xmm1, dword [0x1006f658]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001e092
addss xmm0, dword [0x10066ed8]
comiss xmm0, xmm1
jbe 0x1001e092
cmp byte [0x1006f6c8], 0
jne 0x1001e092
cmp byte [0x1006f6c9], 0
mov byte [0x1006f6c8], 1
sete byte [0x1006f6c9]
mov byte [0x1006f65c], 0
push 1
call ebx
test al, al
jns 0x1001e128
movd xmm1, dword [0x1006f690]
movd xmm2, dword [0x1006f654]
movd xmm0, dword [0x1006f674]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
addss xmm1, dword [0x10064f80]
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm1
addss xmm0, dword [0x10064f84]
jbe 0x1001e128
addss xmm1, dword [0x10066f24]
comiss xmm1, xmm2
jbe 0x1001e128
movd xmm1, dword [0x1006f658]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001e128
addss xmm0, dword [0x10066ee8]
comiss xmm0, xmm1
jbe 0x1001e128
cmp byte [0x1006f6c8], 0
mov edx, dword [ebp - 0x3c]
jne 0x1001e12b
cmp byte [0x1006f5fb], 0
mov byte [0x1006f6c8], 1
sete byte [0x1006f5fb]
mov byte [0x1006f65c], 0
jmp 0x1001e12b
mov edx, dword [ebp - 0x3c]
mov esi, dword [0x1006f6a8]
mov edi, dword [0x1006f664]
add esi, 0xffffffe2
movd xmm4, dword [0x1006f654]
add edi, 0xffffffe1
cvtdq2ps xmm4, xmm4
mov dword [ebp - 0x2c], 0x41dc0000
mov dword [ebp - 0x28], 0x41d80000
mov dword [ebp - 0x24], 0
movd xmm1, esi
cvtdq2ps xmm1, xmm1
movd xmm0, edi
cvtdq2ps xmm0, xmm0
movaps xmm3, xmm1
subss xmm3, dword [0x10066ed4]
movaps xmm2, xmm0
subss xmm2, dword [0x10066ed0]
comiss xmm4, xmm3
jbe 0x1001e1c2
addss xmm3, dword [0x10066efc]
comiss xmm3, xmm4
jbe 0x1001e1c2
movd xmm3, dword [0x1006f658]
cvtdq2ps xmm3, xmm3
comiss xmm3, xmm2
jbe 0x1001e1c2
addss xmm2, dword [0x10066ef8]
comiss xmm2, xmm3
jbe 0x1001e1c2
cmp byte [0x1006f65c], 0
jne 0x1001e215
mov byte [0x1006f65f], 1
jmp 0x1001e1cb
cmp byte [0x1006f65c], 0
jne 0x1001e215
mov eax, dword [ebp - 0x24]
push edx
lea edx, [ebp - 0x10]
movss dword [ebp - 0xc], xmm0
movq xmm0, qword [ebp - 0x2c]
push edx
mov dword [ebp - 0x14], eax
lea edx, [ebp - 0x1c]
mov eax, dword [0x1006f600]
push edx
movq qword [ebp - 0x1c], xmm0
lea edx, [ebp - 0x30]
movaps xmm0, xmmword [0x10066fb0]
push edx
push dword [0x1006f678]
movss dword [ebp - 0x10], xmm1
mov dword [ebp - 8], 0
movups xmmword [ebp - 0x30], xmm0
mov ecx, dword [eax]
push eax
call dword [ecx + 0x24]
push 1
call ebx
test al, al
jns 0x1001e295
movd xmm2, dword [0x1006f654]
movd xmm1, esi
cvtdq2ps xmm1, xmm1
movd xmm0, edi
subss xmm1, dword [0x10066ed4]
cvtdq2ps xmm2, xmm2
cvtdq2ps xmm0, xmm0
comiss xmm2, xmm1
subss xmm0, dword [0x10066ed0]
jbe 0x1001e295
addss xmm1, dword [0x10066efc]
comiss xmm1, xmm2
jbe 0x1001e295
movd xmm1, dword [0x1006f658]
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x1001e295
addss xmm0, dword [0x10066ef8]
comiss xmm0, xmm1
jbe 0x1001e295
cmp byte [0x1006f6c8], 0
jne 0x1001e295
cmp byte [0x1006f65c], 0
mov byte [0x1006f6c8], 1
sete byte [0x1006f65c]
jmp 0x1001e2a4
push 1
call ebx
test al, al
js 0x1001e2a4
mov byte [0x1006f6c8], 0
push 0x1b
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1001e2b8
mov byte [0x1006f65c], 0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100388d2
mov esp, ebp
pop ebp
ret