Function at 0x1000b360
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100cc92d
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x100f9080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x1018a1c2], 0
je 0x1000b498
push dword [0x100f9b18]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1000b498
cmp dword [0x100f9b34], 0xffffffff
je 0x1000b498
mov ecx, dword [0x1018a250]
mov eax, dword [0x10188744]
mov eax, dword [eax + ecx]
test eax, eax
je 0x1000b498
mov ecx, dword [eax + 0xc]
test ecx, ecx
je 0x1000b498
cmp ecx, 0x7d0
ja 0x1000b498
mov esi, dword [eax + 0x10]
test esi, esi
je 0x1000b498
push 0xffffffffffffffff
mov eax, 0x56e210
call eax
mov ecx, dword [0x100f9b34]
add esp, 4
mov edi, eax
mov esi, dword [esi + ecx*4]
test esi, esi
je 0x1000b498
lea ecx, [esi + 0x608]
push ecx
lea ecx, [ebp - 0x28]
call fcn.1000b850
mov dword [ebp - 4], 0
cmp byte [0x1018a1c0], 0
jne 0x1000b441
mov edx, dword [0x100f9b34]
lea ecx, [ebp - 0x28]
call fcn.10021a00
test al, al
jne 0x1000b464
cmp byte [0x100f9b05], 0
je 0x1000b45b
movss xmm0, dword [esi + 0x318]
comiss xmm0, dword [0x100edda0]
jbe 0x1000b464
cmp byte [esi + 0x154], 0
jne 0x1000b4b3
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x1000b498
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000b48e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1000b7f1
push ecx
push edx
call fcn.100a16d2
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100a137a
mov esp, ebp
pop ebp
ret
mov eax, dword [0x1018a7bc]
mov ecx, dword [0x1018a7c4]
call eax
movss xmm0, dword [eax]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0x34], xmm0
movss xmm0, dword [eax + 8]
lea eax, [ebp - 0x58]
push eax
push dword [0x1018a1c4]
movss dword [ebp - 0x2c], xmm0
push esi
call dword [0x1018a240]
movss xmm0, dword [ebp - 0x2c]
lea ecx, [ebp - 0x4c]
subss xmm0, dword [ebp - 0x50]
mov eax, 0x420b10
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x34]
subss xmm0, dword [ebp - 0x54]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x30]
subss xmm0, dword [ebp - 0x58]
movss dword [esp], xmm0
call eax
mov esi, dword [0x1018a7c4]
xorps xmm0, xmm0
movss dword [ebp - 0x30], xmm0
movss dword [ebp - 0x34], xmm0
movzx eax, word [esi + 0x180]
cmp eax, 0x35
je 0x1000b558
cmp eax, 0x37
je 0x1000b558
movss xmm0, dword [0x100ede8c]
jmp 0x1000b5ee
mov eax, dword [0x1018a7b8]
mov ecx, esi
mov dword [ebp - 0x2c], eax
call dword [ebp - 0x2c]
fmul dword [0x100ede24]
mov esi, dword [0x1018a7c8]
fmul dword [0x100eddd4]
fstp dword [ebp - 0x2c]
movss xmm0, dword [ebp - 0x2c]
cvtps2pd xmm0, xmm0
call fcn.100cade0
movss xmm3, dword [esi]
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
movss xmm0, dword [0x100ede68]
addss xmm3, xmm3
movaps xmm1, xmm0
divss xmm0, dword [0xc3efa4]
subss xmm1, xmm3
mulss xmm1, xmm0
mulss xmm2, xmm1
cvtps2pd xmm0, xmm2
movsd qword [ebp - 0x40], xmm0
fld qword [ebp - 0x40]
fld1
fxch st(1)
call fcn.100c9620
movsd xmm1, qword [0x100edec0]
mov esi, dword [0x1018a7c4]
fstp qword [ebp - 0x40]
movsd xmm0, qword [ebp - 0x40]
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
subsd xmm1, xmm0
cvtpd2ps xmm0, xmm1
movss dword [ebp - 0x2c], xmm0
test edi, edi
jne 0x1000b5fb
xor eax, eax
jmp 0x1000b613
movzx ecx, byte [edi + 0x718]
lea eax, [ecx*8]
sub eax, ecx
movzx eax, word [edi + eax*4 + 0x5a0]
cmp al, 0x16
jb 0x1000b61b
cmp al, 0x1d
jbe 0x1000b61f
cmp al, 0x20
jne 0x1000b629
movss xmm0, dword [0x100edde8]
jmp 0x1000b647
cmp al, 0x1e
je 0x1000b63f
cmp al, 0x1f
je 0x1000b63f
cmp al, 0x21
jne 0x1000b64c
movss xmm0, dword [0x100eddd8]
jmp 0x1000b647
movss xmm0, dword [0x100edde0]
movss dword [ebp - 0x30], xmm0
movss xmm1, dword [ebp - 0x4c]
movss xmm0, dword [ebp - 0x48]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10009480
movss xmm2, dword [ebp - 0x4c]
movaps xmm3, xmm0
movss xmm1, dword [ebp - 0x48]
xorps xmm0, xmm0
comiss xmm0, xmm2
movss dword [ebp - 0x3c], xmm3
jb 0x1000b686
comiss xmm1, xmm0
jae 0x1000b690
comiss xmm2, xmm0
jb 0x1000b6d1
comiss xmm1, xmm0
jb 0x1000b6c7
movaps xmm0, xmm2
divss xmm0, xmm3
cvtps2pd xmm0, xmm0
call fcn.100c9650
movss xmm2, dword [ebp - 0x4c]
movss xmm1, dword [ebp - 0x48]
movss xmm3, dword [ebp - 0x3c]
cvtsd2ss xmm0, xmm0
addss xmm0, dword [ebp - 0x30]
subss xmm0, dword [esi + 0x230]
movss dword [ebp - 0x34], xmm0
xorps xmm0, xmm0
comiss xmm2, xmm0
jb 0x1000b6d1
comiss xmm0, xmm1
jae 0x1000b6db
comiss xmm0, xmm2
jb 0x1000b706
comiss xmm0, xmm1
jb 0x1000b706
movaps xmm0, xmm2
divss xmm0, xmm3
cvtps2pd xmm0, xmm0
call fcn.100c9650
movss xmm1, dword [ebp - 0x30]
movss xmm2, dword [ebp - 0x4c]
cvtsd2ss xmm0, xmm0
subss xmm1, xmm0
subss xmm1, dword [esi + 0x230]
jmp 0x1000b70b
movss xmm1, dword [ebp - 0x34]
movaps xmm3, xmm1
divss xmm3, dword [0x100f9b1c]
comiss xmm3, dword [0x100edfd8]
jbe 0x1000b757
movss xmm0, dword [0x100ede24]
comiss xmm0, xmm3
jbe 0x1000b757
comiss xmm1, dword [0x100edfdc]
jbe 0x1000b757
movss xmm0, dword [0x100edeb0]
comiss xmm0, xmm1
jbe 0x1000b757
addss xmm3, dword [esi + 0x230]
movss dword [esi + 0x230], xmm3
movss xmm2, dword [ebp - 0x4c]
movss xmm0, dword [ebp - 0x48]
mulss xmm0, xmm0
mulss xmm2, xmm2
addss xmm0, xmm2
call fcn.10009480
cvtss2sd xmm0, xmm0
movsd qword [ebp - 0x40], xmm0
movss xmm0, dword [ebp - 0x44]
fld qword [ebp - 0x40]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x40], xmm0
fld qword [ebp - 0x40]
call fcn.100c9620
movss xmm1, dword [esi + 0x220]
fstp qword [ebp - 0x40]
movsd xmm0, qword [ebp - 0x40]
cvtpd2ps xmm0, xmm0
subss xmm0, dword [ebp - 0x2c]
subss xmm0, xmm1
divss xmm0, dword [0x100f9b1c]
addss xmm0, xmm1
movss dword [esi + 0x220], xmm0
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x1000b498
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1000b48e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x1000b48e
call fcn.100a682f
int3