Function at 0x1000beda
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [0x1005f040]
xor eax, ebp
mov dword [ebp - 4], eax
movss xmm0, dword [0x1005f0d0]
push esi
push edi
mov edi, dword [ebx + 8]
mov dword [ebp - 0x48], ecx
movss dword [ebp - 0x44], xmm0
test edi, edi
jne 0x1000bf2a
push dword [0x1005f0c8]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1000c1d0
xor esi, esi
inc esi
cmp dword [0x1005f0a4], 0xffffffff
jne 0x1000bf87
cmp dword [0x1005f9b8], 0
je 0x1000c1c3
mov eax, dword [0x1005f0c4]
mov dword [0x1006043c], eax
mov eax, dword [0x100d5878]
test eax, eax
jne 0x1000bf64
mov edx, dword [ebx + 0x18]
push ecx
mov ecx, dword [ebx + 0x10]
call fcn.1000b67c
jmp 0x1000bf78
cmp eax, esi
jne 0x1000c1c3
mov edx, dword [ebx + 0x18]
push ecx
mov ecx, dword [ebx + 0x10]
call fcn.1000b9b8
mov dword [0x1005f0a4], eax
pop ecx
cmp eax, 0xffffffff
je 0x1000c1c3
cmp dword [0x1005f9b8], 0
je 0x1000c1c3
mov ecx, dword [0x100d59a0]
and dword [ebp - 0x40], 0
and dword [ebp - 0x3c], 0
and dword [ebp - 0x38], 0
mov eax, dword [ecx]
call dword [eax + 0xec]
mov esi, eax
mov ecx, esi
call fcn.10009f45
test eax, eax
je 0x1000c1d0
mov ecx, dword [esi + 0x184]
mov eax, dword [0x1005f0a4]
mov esi, dword [ecx + eax*4]
mov ecx, esi
call fcn.10009f45
test eax, eax
je 0x1000c1ac
mov ecx, dword [esi + 0x10]
call fcn.10009f45
test eax, eax
je 0x1000c1ac
mov eax, dword [0x100d5868]
xor edx, edx
inc edx
cmp eax, edx
jne 0x1000c01c
mov ecx, dword [0x100d5988]
push edx
lea edx, [ebp - 0x34]
push edx
mov eax, dword [ecx]
push 8
push dword [esi + 0x10]
call dword [eax + 0x40]
movss xmm0, dword [ebp - 0x30]
addss xmm0, dword [0x100597d0]
jmp 0x1000c07a
cmp eax, 2
jne 0x1000c02a
push edx
lea edx, [ebp - 0x34]
push edx
push 7
jmp 0x1000c09b
cmp eax, 3
jne 0x1000c053
mov ecx, dword [0x100d5988]
push edx
lea edx, [ebp - 0x34]
push edx
mov eax, dword [ecx]
push 6
push dword [esi + 0x10]
call dword [eax + 0x40]
movss xmm0, dword [ebp - 0x30]
subss xmm0, dword [0x1005978c]
jmp 0x1000c07a
cmp eax, 4
jne 0x1000c081
mov ecx, dword [0x100d5988]
push edx
lea edx, [ebp - 0x34]
push edx
mov eax, dword [ecx]
push 4
push dword [esi + 0x10]
call dword [eax + 0x40]
movss xmm0, dword [ebp - 0x30]
subss xmm0, dword [0x100597d0]
movss dword [ebp - 0x30], xmm0
jmp 0x1000c0a9
cmp eax, 5
jne 0x1000c08f
push edx
lea edx, [ebp - 0x34]
push edx
push 0x15
jmp 0x1000c09b
cmp eax, 6
jne 0x1000c0a9
push edx
lea edx, [ebp - 0x34]
push edx
push 0x24
mov ecx, dword [0x100d5988]
push dword [esi + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x40]
mov esi, dword [0x100d59fc]
lea ecx, [ebp - 0x40]
sub esp, 0xc
mov edi, esp
sub esp, 0xc
mov esi, dword [esi + 0x13c]
add esi, 0x10
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edi, esp
lea esi, [ebp - 0x34]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1000b4e2
add esp, 0x18
cmp dword [ebx + 0xc], 0
je 0x1000c0f4
mov esi, dword [sym.imp.USER32.dll_mouse_event]
xor edi, edi
push edi
push edi
push edi
push edi
push 2
call esi
push edi
push edi
push edi
push edi
push 4
call esi
cmp dword [ebx + 0x20], 0
mov eax, dword [0x100d59fc]
movss xmm3, dword [eax + 0x58]
movss xmm4, dword [eax + 0x54]
mulss xmm3, dword [0x1005982c]
mulss xmm4, dword [0x1005982c]
je 0x1000c179
movss xmm0, dword [ebp - 0x3c]
movss xmm5, dword [0x1005974c]
subss xmm0, xmm3
subss xmm5, dword [ebp - 0x44]
call fcn.1000b577
movaps xmm6, xmm0
movss xmm0, dword [ebp - 0x40]
subss xmm0, xmm4
call fcn.1000b577
movaps xmm1, xmm5
movaps xmm2, xmm0
xorps xmm1, xmmword [0x1005ab20]
comiss xmm1, xmm6
jbe 0x1000c15c
movaps xmm0, xmm1
jmp 0x1000c163
movaps xmm0, xmm5
minss xmm0, xmm6
comiss xmm1, xmm2
ja 0x1000c16f
movaps xmm1, xmm5
minss xmm1, xmm2
addss xmm3, xmm0
addss xmm4, xmm1
jmp 0x1000c183
movss xmm3, dword [ebp - 0x3c]
movss xmm4, dword [ebp - 0x40]
mulss xmm3, dword [0x100596e4]
mulss xmm4, dword [0x100596e4]
movss dword [eax + 0x58], xmm3
movss dword [eax + 0x54], xmm4
xor eax, eax
inc eax
cmp dword [ebp - 0x48], eax
jne 0x1000c1d0
mov dword [0x1005f9b8], eax
jmp 0x1000c1c9
cmp dword [ebx + 0x1c], 0
jne 0x1000c1be
test edi, edi
jne 0x1000c1be
and dword [0x1005f9b8], edi
jmp 0x1000c1c9
xor eax, eax
inc eax
jmp 0x1000c1a5
mov dword [0x1005f9b8], esi
or dword [0x1005f0a4], 0xffffffff
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.1004caf7
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret