Function at 0x1001fbf0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1010cc2d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x58
push esi
push edi
mov eax, dword [0x1023eaa4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14], ecx
mov edi, dword [ebx + 8]
imul esi, dword [edi + 0x64], 0x3fc
add esi, ecx
cmp byte [esi + 0x3f6], 0
je 0x1001fc5c
mov eax, dword [esi + 0x3d4]
or word [esi + 0x3d0], 8
mov dword [esi + 0x35c], eax
jmp 0x100202b8
cmp byte [esi + 0x3f7], 0
je 0x1001fc8a
movss xmm0, dword [esi + 0x3dc]
addss xmm0, dword [esi + 0x3d8]
or word [esi + 0x3d0], 0x10
movss dword [esi + 0x35c], xmm0
jmp 0x100202b8
push edi
lea eax, [ebp - 0x58]
mov ecx, 0x102f9438
push eax
call fcn.10010dc0
mov ecx, dword [ebp - 0x54]
mov eax, 0x5e6ea9af
sub ecx, dword [ebp - 0x58]
imul ecx
mov dword [ebp - 4], 0
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jb 0x1001fcee
mov eax, dword [ebp - 0x58]
cmp byte [eax + 0x2b5c], 0
jne 0x1001fcee
mov ecx, dword [ebp - 0x14]
push edi
call fcn.1001f7b0
test al, al
jne 0x1001fcee
mov eax, dword [esi + 0x368]
or word [esi + 0x3d0], 2
mov dword [esi + 0x35c], eax
jmp 0x100202b0
mov ecx, dword [0x1030fa10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x1030fa14]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov dword [ebp - 0x18], eax
test eax, eax
je 0x1001fe71
mov ecx, dword [0x10309a64]
cmp ecx, 0xffffffff
je 0x1001fe71
push ecx
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1001fe71
mov ecx, dword [0x1030fa10]
lea edx, [ebp - 0x4c]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov eax, dword [ecx]
push edx
mov eax, dword [eax + 0x48]
call eax
mov ecx, dword [0x1030fb7c]
mov eax, dword [ecx + edi + 8]
movq xmm0, qword [ecx + edi]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x18]
movq qword [ebp - 0x30], xmm0
movq xmm0, qword [ecx + eax]
mov eax, dword [ecx + eax + 8]
movq qword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x30]
subss xmm0, dword [ebp - 0x40]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x64]
mov dword [ebp - 0x24], 0
push eax
movss dword [ebp - 0x64], xmm0
movss xmm0, dword [ebp - 0x2c]
subss xmm0, dword [ebp - 0x3c]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
movss dword [ebp - 0x60], xmm0
movss xmm0, dword [ebp - 0x28]
subss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x5c], xmm0
call fcn.10037d10
movss xmm0, dword [ebp - 0x48]
add esp, 4
subss xmm0, dword [ebp - 0x20]
movss dword [esp], xmm0
call fcn.1000e360
fstp dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x18]
add esp, 4
movaps xmm0, xmm1
andps xmm0, xmmword [0x10118760]
comiss xmm0, dword [0x10119434]
ja 0x1001fe71
xorps xmm0, xmm0
comiss xmm1, xmm0
movss xmm1, dword [ebp - 0x20]
jbe 0x1001fe1f
addss xmm1, dword [0x10118734]
jmp 0x1001fe27
subss xmm1, dword [0x10118734]
mov eax, dword [0x1030fb74]
sub esp, 8
movss xmm0, dword [eax + edi]
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.1003bf10
fstp dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x18]
add esp, 8
ucomiss xmm0, dword [0x101189ac]
lahf
test ah, 0x44
jnp 0x1001fe71
or word [esi + 0x3d0], 1
movss dword [esi + 0x35c], xmm0
jmp 0x100202b0
imul ecx, dword [edi + 0x64], 0x3fc
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x18], ecx
movss xmm1, dword [ecx + eax + 0x374]
movss xmm0, dword [ecx + eax + 0x370]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x1001feae
sqrtsd xmm0, xmm0
jmp 0x1001feb3
call fcn.1006abd0
cvtsd2ss xmm0, xmm0
comiss xmm0, dword [0x101186f0]
jbe 0x1001fef4
mov eax, dword [0x1030fb6c]
test byte [eax + edi], 1
je 0x1001fef4
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x18]
cmp byte [ecx + eax + 0x3f2], 0
jne 0x1001fef4
mov eax, dword [esi + 0x3d8]
or word [esi + 0x3d0], 4
mov dword [esi + 0x35c], eax
jmp 0x100202b0
cmp byte [esi + 0x3f1], 0
je 0x1001fff9
cmp dword [esi + 0x3c8], 1
jge 0x1001fff9
mov ecx, dword [0x1030fa10]
movss xmm0, dword [esi + 0x3d8]
movss dword [ebp - 0x18], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x1030fa14]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edx, eax
test edx, edx
je 0x1001fff9
mov eax, dword [0x1030fb7c]
movq xmm0, qword [eax + edi]
mov ecx, dword [eax + edi + 8]
movq qword [ebp - 0x4c], xmm0
movq xmm0, qword [edx + eax]
mov eax, dword [edx + eax + 8]
movq qword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x4c]
subss xmm0, dword [ebp - 0x40]
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x64]
mov dword [ebp - 0x30], 0
movss dword [ebp - 0x64], xmm0
movss xmm0, dword [ebp - 0x48]
subss xmm0, dword [ebp - 0x3c]
push eax
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
movss dword [ebp - 0x60], xmm0
movss xmm0, dword [ebp - 0x44]
subss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x5c], xmm0
call fcn.10037d10
movss xmm0, dword [ebp - 0x2c]
add esp, 4
subss xmm0, dword [ebp - 0x18]
movss dword [esp], xmm0
call fcn.1000e360
fstp dword [ebp - 0x18]
movss xmm1, dword [ebp - 0x18]
add esp, 4
andps xmm1, xmmword [0x10118760]
comiss xmm1, dword [0x10118714]
jbe 0x1001fff9
movss xmm0, dword [0x1011955c]
comiss xmm0, xmm1
ja 0x10020136
imul eax, dword [edi + 0x64], 0x3fc
mov ecx, dword [ebp - 0x14]
movups xmm0, xmmword [eax + ecx + 0x348]
mov ecx, dword [0x1030fa10]
movups xmmword [ebp - 0x34], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x1030fa14]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edx, eax
test edx, edx
je 0x10020124
cmp dword [ebp - 0x30], 0x14
jl 0x10020044
cmp dword [ebp - 0x34], 0x14
jge 0x10020124
mov ecx, dword [0x1030fb7c]
movq xmm0, qword [ecx + edi]
mov eax, dword [ecx + edi + 8]
movq qword [ebp - 0x4c], xmm0
movq xmm0, qword [edx + ecx]
movq qword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x4c]
subss xmm0, dword [ebp - 0x40]
mov dword [ebp - 0x44], eax
mov eax, dword [edx + ecx + 8]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x24]
push eax
movss dword [ebp - 0x64], xmm0
lea eax, [ebp - 0x64]
movss xmm0, dword [ebp - 0x48]
subss xmm0, dword [ebp - 0x3c]
push eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
movss dword [ebp - 0x60], xmm0
movss xmm0, dword [ebp - 0x44]
subss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x5c], xmm0
call fcn.10037d10
mov ecx, dword [ebp - 0x30]
add esp, 8
mov eax, dword [ebp - 0x34]
test ecx, ecx
jg 0x100200f0
test eax, eax
jg 0x100200f0
movss xmm0, dword [ebp - 0x28]
comiss xmm0, dword [ebp - 0x2c]
movss xmm0, dword [ebp - 0x20]
jbe 0x100200e6
addss xmm0, dword [0x10119438]
jmp 0x1002010b
subss xmm0, dword [0x10119554]
jmp 0x1002010b
movss xmm0, dword [ebp - 0x20]
cmp ecx, eax
jle 0x10020103
addss xmm0, dword [0x101187dc]
jmp 0x1002010b
subss xmm0, dword [0x101187c8]
mov eax, 0x200
movss dword [esi + 0x35c], xmm0
or word [esi + 0x3d0], ax
jmp 0x100202b0
cmp byte [esi + 0x3f1], 0
je 0x1002014f
cmp dword [esi + 0x3c8], 1
jge 0x1002014f
mov eax, dword [esi + 0x3d8]
or word [esi + 0x3d0], 0x20
mov dword [esi + 0x35c], eax
jmp 0x100202b0
mov ecx, dword [0x1030fa10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x1030fa14]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edx, eax
test edx, edx
je 0x100202b0
imul eax, dword [edi + 0x64], 0x3fc
mov ecx, 0x80
mov esi, dword [ebp - 0x14]
or word [eax + esi + 0x3d0], cx
add eax, esi
mov ecx, dword [0x1030fb7c]
mov dword [ebp - 0x14], eax
movq xmm0, qword [edx + ecx]
mov eax, dword [edx + ecx + 8]
movq qword [ebp - 0x4c], xmm0
movq xmm0, qword [ecx + edi]
movq qword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x4c]
subss xmm0, dword [ebp - 0x40]
mov dword [ebp - 0x44], eax
mov eax, dword [ecx + edi + 8]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x24]
push eax
movss dword [ebp - 0x64], xmm0
lea eax, [ebp - 0x64]
movss xmm0, dword [ebp - 0x48]
subss xmm0, dword [ebp - 0x3c]
push eax
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
movss dword [ebp - 0x60], xmm0
movss xmm0, dword [ebp - 0x44]
subss xmm0, dword [ebp - 0x38]
movss dword [ebp - 0x5c], xmm0
call fcn.10037d10
mov eax, dword [ebp - 0x14]
add esp, 8
mov ecx, esi
movzx eax, word [eax + 0x3d0]
push eax
call fcn.1001f720
mov esi, dword [ebp - 0x14]
mov ecx, dword [esi + eax*4 + 0x3a8]
sub ecx, dword [esi + eax*4 + 0x388]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
sub ecx, eax
sub ecx, 0
je 0x1002027d
sub ecx, 1
je 0x10020266
sub ecx, 1
jne 0x100202b0
movss xmm0, dword [ebp - 0x20]
subss xmm0, dword [0x1011872c]
movss dword [esi + 0x35c], xmm0
jmp 0x100202b0
movss xmm0, dword [ebp - 0x20]
addss xmm0, dword [0x10119558]
movss dword [esi + 0x35c], xmm0
jmp 0x100202b0
movss xmm0, dword [ebp - 0x20]
sub esp, 8
mov eax, dword [0x1030fb74]
addss xmm0, dword [0x101187cc]
movss xmm1, dword [eax + edi]
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.1003bf10
fstp dword [esi + 0x35c]
add esp, 8
lea ecx, [ebp - 0x58]
call fcn.100040c0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4