Function at 0x1001e2b0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
cmp byte [0x101689c8], 0
push ebx
push esi
push edi
mov edi, ecx
je 0x1001ecd3
mov ecx, dword [0x10167e4c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x1001ecd3
mov ecx, dword [0x10167e4c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1001ecd3
mov eax, dword [0x1016bffc]
mov ecx, dword [eax]
test ecx, ecx
je 0x1001ecd3
call fcn.10093ba0
test al, al
je 0x1001ecd3
mov ecx, dword [0x10167e4c]
lea edx, [ebp - 0x38]
push edx
lea edx, [ebp - 0x34]
push edx
mov eax, dword [ecx]
call dword [eax + 0x14]
cmp byte [0x101689d1], 0
je 0x1001e337
cmp byte [0x10168930], 0
mov byte [ebp - 4], 1
jne 0x1001e33b
mov byte [ebp - 4], 0
cmp byte [0x101689cd], 0
je 0x1001e351
cmp byte [0x10168914], 0
mov byte [ebp - 8], 1
jne 0x1001e355
mov byte [ebp - 8], 0
cmp byte [0x101689cb], 0
je 0x1001e36b
cmp byte [0x10168928], 0
mov byte [ebp - 0x28], 1
jne 0x1001e36f
mov byte [ebp - 0x28], 0
cmp byte [0x101689cc], 0
je 0x1001e385
cmp byte [0x10168984], 0
mov byte [ebp - 0x30], 1
jne 0x1001e389
mov byte [ebp - 0x30], 0
cmp byte [0x101689d4], 0
je 0x1001e39f
cmp byte [0x10168abc], 0
mov byte [ebp - 0x24], 1
jne 0x1001e3a3
mov byte [ebp - 0x24], 0
cmp byte [0x101689ca], 0
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
je 0x1001e3cc
cmp byte [0x10168904], 0
je 0x1001e3cc
push dword [0x10168908]
call esi
mov byte [ebp - 0x2c], 1
test ax, ax
jne 0x1001e3d0
mov byte [ebp - 0x2c], 0
cmp byte [0x101689ce], 0
je 0x1001e3f3
cmp byte [0x10168938], 0
je 0x1001e3f3
push dword [0x10168940]
call esi
mov byte [ebp - 0x18], 1
test ax, ax
jne 0x1001e3f7
mov byte [ebp - 0x18], 0
cmp byte [0x101689c9], 0
je 0x1001e41a
cmp byte [0x101689b8], 0
je 0x1001e41a
push dword [0x101689bc]
call esi
test ax, ax
je 0x1001e41a
mov bl, 1
jmp 0x1001e41c
xor bl, bl
cmp byte [0x101689d2], 0
mov byte [ebp - 0xc], bl
je 0x1001e442
cmp byte [0x10168988], 0
je 0x1001e442
push dword [0x1016898c]
call esi
mov byte [ebp - 0x1c], 1
test ax, ax
jne 0x1001e446
mov byte [ebp - 0x1c], 0
cmp byte [0x101689cf], 0
je 0x1001e472
cmp byte [0x101689b0], 0
je 0x1001e472
cmp byte [0x101689b1], 0
jne 0x1001e472
push dword [0x101689b4]
call esi
mov byte [ebp - 0x10], 1
test ax, ax
jne 0x1001e476
mov byte [ebp - 0x10], 0
cmp byte [0x101689d0], 0
je 0x1001e4a2
cmp byte [0x101689b0], 0
je 0x1001e4a2
cmp byte [0x101689b1], 0
je 0x1001e4a2
push dword [0x101689b4]
call esi
mov byte [ebp - 0x14], 1
test ax, ax
jne 0x1001e4a6
mov byte [ebp - 0x14], 0
cmp byte [0x101689d3], 0
je 0x1001e4c9
cmp byte [0x101689a4], 0
je 0x1001e4c9
push dword [0x101689ac]
call esi
mov byte [ebp - 0x20], 1
test ax, ax
jne 0x1001e4cd
mov byte [ebp - 0x20], 0
cmp byte [edi + 0x1c], 0
je 0x1001e4e0
mov eax, dword [0x10167e48]
mov eax, dword [eax + 0x1c]
mov dword [0x101683f8], eax
cmp byte [edi + 0x1b], 1
movss xmm1, dword [0x10151e70]
jne 0x1001e518
movss xmm0, dword [0x101689f0]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689ec]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689e8]
jmp 0x1001e540
movss xmm0, dword [0x101689e4]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689e0]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689dc]
movzx eax, al
sub esp, 0x18
movzx ecx, cl
mov edx, esp
shl eax, 8
or eax, ecx
mulss xmm0, xmm1
shl eax, 8
cvttss2si ecx, xmm0
xorps xmm0, xmm0
movzx ecx, cl
or eax, ecx
movups xmmword [edx], xmm0
or eax, 0xff000000
mov dword [edx + 0x10], 2
mov dword [edx + 0x14], 0xf
mov cx, word [0x1014c180]
push eax
push dword [ebp - 4]
mov word [edx], cx
mov byte [edx + 2], 0
call fcn.1001df80
movss xmm0, dword [0x101689e4]
sub esp, 0x18
movss xmm1, dword [0x10151e70]
mov ecx, esp
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689e0]
mulss xmm0, xmm1
movzx edx, al
or edx, 0xffffff00
shl edx, 8
cvttss2si eax, xmm0
movss xmm0, dword [0x101689dc]
movzx eax, al
mulss xmm0, xmm1
or edx, eax
shl edx, 8
cvttss2si eax, xmm0
xorps xmm0, xmm0
movzx eax, al
movups xmmword [ecx], xmm0
or edx, eax
mov dword [ecx + 0x10], 2
mov dword [ecx + 0x14], 0xf
mov ax, word [0x1014c184]
push edx
push dword [ebp - 8]
mov word [ecx], ax
mov byte [ecx + 2], 0
call fcn.1001df80
mov eax, dword [0x10167e48]
movss xmm1, dword [0x10151e70]
mov eax, dword [eax + 0x1c]
sub eax, dword [0x101683f8]
cmp eax, 0x1e
jge 0x1001e655
movss xmm0, dword [0x101689f0]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689ec]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689e8]
jmp 0x1001e67d
movss xmm0, dword [0x101689e4]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689e0]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689dc]
movzx eax, al
sub esp, 0x18
movzx ecx, cl
mov edx, esp
shl eax, 8
or eax, ecx
mulss xmm0, xmm1
shl eax, 8
cvttss2si ecx, xmm0
xorps xmm0, xmm0
movzx ecx, cl
or eax, ecx
movups xmmword [edx], xmm0
or eax, 0xff000000
mov dword [edx + 0x10], 2
mov dword [edx + 0x14], 0xf
mov cx, word [0x1014c188]
push eax
push dword [ebp - 0xc]
mov word [edx], cx
mov byte [edx + 2], 0
call fcn.1001df80
cmp byte [edi + 0x19], 1
movss xmm1, dword [0x10151e70]
jne 0x1001e705
movss xmm0, dword [0x101689f0]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689ec]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689e8]
jmp 0x1001e72d
movss xmm0, dword [0x101689e4]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689e0]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689dc]
movzx eax, al
sub esp, 0x18
movzx ecx, cl
mov edx, esp
shl eax, 8
or eax, ecx
mulss xmm0, xmm1
shl eax, 8
cvttss2si ecx, xmm0
xorps xmm0, xmm0
movzx ecx, cl
or eax, ecx
movups xmmword [edx], xmm0
or eax, 0xff000000
mov dword [edx + 0x10], 2
mov dword [edx + 0x14], 0xf
mov cx, word [0x1014c18c]
push eax
push dword [ebp - 0x10]
mov word [edx], cx
mov byte [edx + 2], 0
call fcn.1001df80
cmp byte [edi + 0x18], 1
movss xmm1, dword [0x10151e70]
jne 0x1001e7b5
movss xmm0, dword [0x101689f0]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689ec]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689e8]
jmp 0x1001e7dd
movss xmm0, dword [0x101689e4]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689e0]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689dc]
movzx eax, al
sub esp, 0x18
movzx ecx, cl
mov edx, esp
shl eax, 8
or eax, ecx
mulss xmm0, xmm1
shl eax, 8
cvttss2si ecx, xmm0
xorps xmm0, xmm0
movzx ecx, cl
or eax, ecx
movups xmmword [edx], xmm0
or eax, 0xff000000
mov dword [edx + 0x10], 2
mov dword [edx + 0x14], 0xf
mov cx, word [0x1014c190]
push eax
push dword [ebp - 0x14]
mov word [edx], cx
mov byte [edx + 2], 0
call fcn.1001df80
cmp byte [edi + 0x5d], 1
movss xmm1, dword [0x10151e70]
jne 0x1001e865
movss xmm0, dword [0x101689f0]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689ec]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689e8]
jmp 0x1001e88d
movss xmm0, dword [0x101689e4]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689e0]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689dc]
movzx eax, al
sub esp, 0x18
movzx ecx, cl
mov edx, esp
shl eax, 8
or eax, ecx
mulss xmm0, xmm1
shl eax, 8
cvttss2si ecx, xmm0
xorps xmm0, xmm0
movzx ecx, cl
or eax, ecx
movups xmmword [edx], xmm0
or eax, 0xff000000
mov dword [edx + 0x10], 2
mov dword [edx + 0x14], 0xf
mov cx, word [0x1014c194]
push eax
push dword [ebp - 0x18]
mov word [edx], cx
mov byte [edx + 2], 0
call fcn.1001df80
cmp byte [edi + 0x1d], 1
movss xmm1, dword [0x10151e70]
jne 0x1001e915
movss xmm0, dword [0x101689f0]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689ec]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689e8]
jmp 0x1001e93d
movss xmm0, dword [0x101689e4]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689e0]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689dc]
movzx eax, al
sub esp, 0x18
movzx ecx, cl
mov edx, esp
shl eax, 8
or eax, ecx
mulss xmm0, xmm1
shl eax, 8
cvttss2si ecx, xmm0
xorps xmm0, xmm0
movzx ecx, cl
or eax, ecx
movups xmmword [edx], xmm0
or eax, 0xff000000
mov dword [edx + 0x10], 2
mov dword [edx + 0x14], 0xf
mov cx, word [0x1014c198]
push eax
push dword [ebp - 0x1c]
mov word [edx], cx
mov byte [edx + 2], 0
call fcn.1001df80
cmp byte [edi + 0x1a], 1
movss xmm1, dword [0x10151e70]
jne 0x1001e9c5
movss xmm0, dword [0x101689f0]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689ec]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689e8]
jmp 0x1001e9ed
movss xmm0, dword [0x101689e4]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689e0]
mulss xmm0, xmm1
cvttss2si ecx, xmm0
movss xmm0, dword [0x101689dc]
movzx eax, al
sub esp, 0x18
movzx ecx, cl
mov edx, esp
shl eax, 8
or eax, ecx
mulss xmm0, xmm1
shl eax, 8
cvttss2si ecx, xmm0
xorps xmm0, xmm0
movzx ecx, cl
or eax, ecx
movups xmmword [edx], xmm0
or eax, 0xff000000
mov dword [edx + 0x10], 2
mov dword [edx + 0x14], 0xf
mov cx, word [0x1014c19c]
push eax
push dword [ebp - 0x20]
mov word [edx], cx
mov byte [edx + 2], 0
call fcn.1001df80
movss xmm0, dword [0x101689e4]
sub esp, 0x18
movss xmm1, dword [0x10151e70]
mov ecx, esp
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689e0]
mulss xmm0, xmm1
movzx edx, al
or edx, 0xffffff00
shl edx, 8
cvttss2si eax, xmm0
movss xmm0, dword [0x101689dc]
movzx eax, al
mulss xmm0, xmm1
or edx, eax
shl edx, 8
cvttss2si eax, xmm0
xorps xmm0, xmm0
movzx eax, al
movups xmmword [ecx], xmm0
or edx, eax
mov dword [ecx + 0x10], 2
mov dword [ecx + 0x14], 0xf
movzx eax, word [0x1014c1a0]
push edx
push dword [ebp - 0x24]
mov word [ecx], ax
mov byte [ecx + 2], 0
call fcn.1001df80
movss xmm0, dword [0x101689e4]
movss xmm1, dword [0x10151e70]
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689e0]
mulss xmm0, xmm1
movzx edx, al
or edx, 0xffffff00
shl edx, 8
cvttss2si eax, xmm0
movss xmm0, dword [0x101689dc]
movzx eax, al
or edx, eax
mulss xmm0, xmm1
shl edx, 8
cvttss2si eax, xmm0
xorps xmm0, xmm0
movzx eax, al
or edx, eax
sub esp, 0x18
mov ecx, esp
push edx
push dword [ebp - 0x28]
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 2
mov dword [ecx + 0x14], 0xf
movzx eax, word [0x1014c1a4]
mov word [ecx], ax
mov byte [ecx + 2], 0
call fcn.1001df80
movss xmm0, dword [0x101689e4]
sub esp, 0x18
movss xmm1, dword [0x10151e70]
mov ecx, esp
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689e0]
mulss xmm0, xmm1
movzx edx, al
or edx, 0xffffff00
shl edx, 8
cvttss2si eax, xmm0
movss xmm0, dword [0x101689dc]
movzx eax, al
mulss xmm0, xmm1
or edx, eax
shl edx, 8
cvttss2si eax, xmm0
xorps xmm0, xmm0
movzx eax, al
movups xmmword [ecx], xmm0
or edx, eax
mov dword [ecx + 0x10], 2
mov dword [ecx + 0x14], 0xf
movzx eax, word [0x1014c1a8]
push edx
push dword [ebp - 0x2c]
mov word [ecx], ax
mov byte [ecx + 2], 0
call fcn.1001df80
movss xmm0, dword [0x101689e4]
sub esp, 0x18
movss xmm1, dword [0x10151e70]
mov ecx, esp
mulss xmm0, xmm1
cvttss2si eax, xmm0
movss xmm0, dword [0x101689e0]
mulss xmm0, xmm1
movzx edx, al
or edx, 0xffffff00
shl edx, 8
cvttss2si eax, xmm0
movss xmm0, dword [0x101689dc]
movzx eax, al
mulss xmm0, xmm1
or edx, eax
shl edx, 8
cvttss2si eax, xmm0
xorps xmm0, xmm0
movzx eax, al
movups xmmword [ecx], xmm0
or edx, eax
mov dword [ecx + 0x10], 2
mov dword [ecx + 0x14], 0xf
movzx eax, word [0x1014c1ac]
push edx
push dword [ebp - 0x30]
mov word [ecx], ax
mov byte [ecx + 2], 0
call fcn.1001df80
test bl, bl
jne 0x1001ec48
mov byte [edi + 0x1c], bl
mov edi, dword [0x10168db0]
mov dword [ebp - 4], 0
mov esi, dword [edi]
cmp esi, edi
je 0x1001ecd3
xorps xmm1, xmm1
nop
movss xmm0, dword [esi + 0x24]
comiss xmm0, xmm1
jbe 0x1001eccd
call fcn.10017110
mov ecx, dword [ebp - 4]
mov ebx, eax
mov eax, dword [ebp - 0x34]
sub ecx, dword [0x101689d8]
add ecx, dword [ebp - 0x38]
cdq
sub eax, edx
movss xmm2, dword [0x10151dd4]
sar eax, 1
movd xmm0, eax
lea eax, [esi + 8]
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x40], xmm0
movd xmm0, ecx
mov ecx, ebx
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x3c], xmm0
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [0x1016844c]
sub esp, 8
push 0
push 1
push dword [eax + 0x18]
push eax
call fcn.100932c0
add dword [ebp - 4], 0x19
xorps xmm1, xmm1
mov esi, dword [esi]
cmp esi, edi
jne 0x1001ec60
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret