Function at 0x1000b1d0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
mov ebx, dword [0x1005b0cc]
push esi
mov esi, dword [0x1005b2f8]
push edi
mov eax, dword [esi + 0x6c]
test eax, eax
je 0x1000b454
mov edi, dword [0x1005b2f4]
cmp dword [edi + 0x2c8], 0
je 0x1000b454
mov al, byte [eax]
xor dl, dl
mov byte [ebp - 2], al
cmp byte [ebx + 2], dl
jne 0x1000b211
mov byte [ebx], dl
cmp byte [ebx + 1], dl
je 0x1000b266
mov eax, dword [esi + 0x6c]
mov dl, 1
mov byte [ebp - 1], dl
mov byte [eax], 1
mov byte [ebx + 3], dl
mov byte [ebx + 1], 0
cmp byte [edi + 0x379], 0
je 0x1000b266
mov ecx, dword [edi + 0x6c]
mov eax, dword [esi + 0x14]
cmp byte [ecx + eax], 0
jne 0x1000b266
mov ecx, dword [esi + 0x1c]
test ecx, ecx
je 0x1000b266
call fcn.1001a960
mov esi, dword [0x1005b2f8]
mov edi, dword [0x1005b2f4]
mov dl, byte [ebp - 1]
test eax, eax
jle 0x1000b266
mov eax, dword [ebp + 8]
or dword [eax + 0x30], 0x800
mov eax, dword [esi + 0x70]
cmp eax, dword [edi + 0x2c8]
mov eax, dword [esi + 0x6c]
setge cl
mov byte [eax], cl
cmp byte [ebx + 3], 0
je 0x1000b3df
test dl, dl
jne 0x1000b3df
mov eax, dword [esi + 0x70]
cmp eax, 0xf
jge 0x1000b3bc
mov eax, dword [esi + 0x1c]
mov ecx, dword [edi + 0x4f0]
movss xmm0, dword [eax + 0x130]
mulss xmm0, dword [0x10045fa8]
mov eax, dword [ecx]
subss xmm0, dword [0x1004605c]
mov eax, dword [eax + 0x30]
mov dword [ebp - 0xc], eax
movss dword [ebp - 8], xmm0
call dword [ebp - 0xc]
mov eax, dword [0x1005b358]
movss xmm0, dword [ebp - 8]
fstp dword [ebp - 0xc]
movss xmm1, dword [ebp - 0xc]
mulss xmm1, dword [0x10046060]
mulss xmm1, dword [eax + 0x20]
divss xmm0, xmm1
cvttss2si ecx, xmm0
lea eax, [ecx + 4]
movd xmm1, eax
mov eax, 0x38e38e39
imul ecx
cvtdq2ps xmm1, xmm1
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10046030]
subss xmm1, xmm0
cvttss2si ecx, xmm1
cmp ecx, 0xd
jle 0x1000b32a
mov ecx, 0xd
jmp 0x1000b331
xor eax, eax
test ecx, ecx
cmovs ecx, eax
mov edi, dword [0x1005b2f4]
mov esi, dword [0x1005b2f8]
cmp byte [edi + 0x378], 0
je 0x1000b398
mov eax, 0xf
sub eax, dword [esi + 0x70]
cmp ecx, eax
jl 0x1000b398
cmp dword [esi + 0x1c], 0
je 0x1000b398
mov eax, dword [0x1005b31c]
movss xmm1, dword [eax + 0x1fcc]
movss xmm0, dword [eax + 0x1fc8]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10001d60
comiss xmm0, dword [ebp - 8]
jb 0x1000b398
push dword [ebp + 8]
call fcn.1002dea0
mov esi, dword [0x1005b2f8]
mov edi, dword [0x1005b2f4]
cmp byte [edi + 0x326], 0
jne 0x1000b3b4
mov eax, dword [esi + 0x70]
cmp eax, dword [edi + 0x2c8]
mov eax, dword [esi + 0x6c]
setge cl
mov byte [eax], cl
jmp 0x1000b3df
mov eax, dword [esi + 0x6c]
mov byte [eax], 0
jmp 0x1000b3df
cmp byte [edi + 0x326], 0
jne 0x1000b3d5
cmp eax, dword [edi + 0x2c8]
mov eax, dword [esi + 0x6c]
setge cl
mov byte [eax], cl
jmp 0x1000b3db
mov eax, dword [esi + 0x6c]
mov byte [eax], 1
mov byte [ebx + 3], 0
cmp byte [edi + 0x339], 0
je 0x1000b43c
mov eax, dword [edi + 0x388]
mov ecx, dword [edi + 0x38c]
sub eax, 0
je 0x1000b430
sub eax, 1
je 0x1000b418
sub eax, 1
jne 0x1000b43c
push ecx
call dword [sym.imp.USER32.dll_GetKeyState]
mov esi, dword [0x1005b2f8]
test ax, ax
setne al
jmp 0x1000b42c
mov eax, dword [0x1005b304]
cmp ecx, 0x100
jae 0x1000b45d
mov al, byte [eax + ecx + 0x118]
test al, al
je 0x1000b43c
cmp dword [esi + 0x70], 1
mov eax, dword [esi + 0x6c]
setge cl
mov byte [eax], cl
cmp byte [ebx + 0x49], 0
jne 0x1000b448
cmp byte [ebx + 0x4a], 0
je 0x1000b450
mov eax, dword [esi + 0x6c]
mov cl, byte [ebp - 2]
mov byte [eax], cl
mov byte [ebx + 2], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.1001b160
int3