Function at 0x100092d0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
mov dword [esp + 8], ecx
mov ecx, dword [0x101c84fc]
push ebx
push esi
push edi
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x101c8500]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
test eax, eax
je 0x10009772
mov ecx, dword [0x101c8658]
cmp dword [ecx + eax], 0
jle 0x10009772
mov ecx, dword [0x101c870c]
mov ecx, dword [ecx + eax]
cmp ecx, 8
je 0x10009772
cmp ecx, 9
je 0x10009772
cmp byte [0x100d2530], 0
je 0x10009772
push eax
call fcn.10070f70
add esp, 4
test eax, eax
je 0x10009772
push eax
call fcn.10070fb0
add esp, 4
test al, al
je 0x1000936b
push 0
call fcn.10070a70
add esp, 4
test al, al
jne 0x10009772
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x30]
test al, 0x20
jne 0x10009772
test al, 1
je 0x1000938f
push 0
call fcn.10070a70
add esp, 4
test al, al
jne 0x10009772
test dword [esi + 0x30], 0x800
je 0x100093aa
push 1
call fcn.10070a70
add esp, 4
test al, al
jne 0x10009772
mov ecx, dword [0x101c84fc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x101c8500]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov edi, eax
test edi, edi
jne 0x100093d4
mov dword [esp + 0x10], eax
jmp 0x10009487
mov eax, dword [0x101c865c]
push dword [0x100d27c0]
push dword [0x100d27bc]
mov bl, byte [eax + edi]
not bl
and bl, 1
call fcn.10008fe0
mov ecx, dword [0x101c8660]
add esp, 8
mov bh, al
movq xmm0, qword [ecx + edi]
mov ecx, dword [ecx + edi + 8]
movq qword [esp + 0x24], xmm0
movss xmm1, dword [esp + 0x24]
movss xmm0, dword [esp + 0x28]
mulss xmm1, xmm1
mov dword [esp + 0x2c], ecx
mulss xmm0, xmm0
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1000943a
sqrtsd xmm0, xmm0
jmp 0x1000943f
call fcn.10079330
cvtsd2ss xmm0, xmm0
comiss xmm0, dword [0x100a53f0]
jbe 0x1000945c
test bl, bl
jne 0x10009460
test bh, bh
je 0x10009474
push dword [0x100d2560]
jmp 0x1000947a
test bl, bl
je 0x10009468
push dword [0x100d25b4]
jmp 0x1000947a
test bh, bh
je 0x10009474
push dword [0x100d2588]
jmp 0x1000947a
push dword [0x100d2534]
lea ecx, [esp + 0x13]
call fcn.10008de0
fstp dword [esp + 0x10]
movss xmm0, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
movss dword [esi + 0xc], xmm0
call fcn.10009980
fstp dword [esi + 0x10]
cmp byte [0x100d25e8], 0
je 0x1000965f
mov ecx, dword [0x101c84fc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x101c8500]
push eax
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
call edx
mov ecx, dword [0x101c865c]
mov edx, eax
mov eax, dword [0x100d25ec]
mov dword [esp + 0x18], eax
mov eax, dword [0x101c8660]
mov ecx, dword [edx + ecx]
mov edi, dword [0x100d25f0]
and ecx, 1
mov dword [esp + 0x10], edx
mov bl, cl
movq xmm0, qword [edx + eax]
mov eax, dword [edx + eax + 8]
movq qword [esp + 0x24], xmm0
movss xmm1, dword [esp + 0x24]
movss xmm0, dword [esp + 0x28]
mulss xmm1, xmm1
mov dword [esp + 0x14], ecx
mulss xmm0, xmm0
mov dword [esp + 0x2c], eax
addss xmm1, xmm0
cvtps2pd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x1000952f
sqrtsd xmm0, xmm0
jmp 0x10009534
call fcn.10079330
cvtsd2ss xmm0, xmm0
comiss xmm0, dword [0x100a5428]
jbe 0x10009588
mov eax, dword [esp + 0x14]
mov bl, al
test eax, eax
je 0x10009588
push dword [0x100d27bc]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x10009588
mov ecx, dword [0x101c8504]
xor bl, bl
mov eax, dword [0x101c8664]
mov edx, dword [esp + 0x10]
movss xmm0, dword [ecx]
movss dword [section..data], xmm0
movss xmm1, dword [eax + edx]
movss dword [0x100c8004], xmm1
jmp 0x1000959e
movss xmm0, dword [section..data]
mov ecx, dword [0x101c8504]
movss xmm1, dword [0x100c8004]
movss xmm2, dword [0x100a53d0]
ucomiss xmm0, xmm2
lahf
test ah, 0x44
jnp 0x1000965f
ucomiss xmm1, xmm2
lahf
test ah, 0x44
jnp 0x1000965f
test bl, bl
jne 0x100095d0
mov byte [0x100c8008], 1
jmp 0x1000965f
cmp byte [0x100d25e9], 0
jne 0x10009620
xorps xmm1, xmm1
cvtsi2ss xmm1, edi
mulss xmm1, dword [ecx]
addss xmm1, xmm1
mulss xmm1, dword [0x100a5398]
addss xmm1, dword [0x100a5398]
cvtps2pd xmm0, xmm1
call fcn.10079160
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [esp + 0x18]
mulss xmm1, xmm0
addss xmm1, dword [esi + 0x10]
movss dword [esi + 0x10], xmm1
jmp 0x1000965f
imul eax, edi, 0x64
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
mulss xmm0, dword [ecx + 0x10]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x18], xmm0
fld qword [esp + 0x18]
fld qword [0x100a5420]
call fcn.10079580
fstp qword [esp + 0x18]
movsd xmm0, qword [esp + 0x18]
cvtpd2ps xmm0, xmm0
addss xmm0, dword [esi + 0x10]
movss dword [esi + 0x10], xmm0
movq xmm0, qword [esi + 0xc]
movss xmm1, dword [0x100a53b4]
mov edi, dword [esi + 0x14]
movss xmm2, dword [0x100a53c0]
movq qword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x24]
comiss xmm0, xmm1
mov dword [esp + 0x2c], edi
jbe 0x10009699
nop dword [eax]
subss xmm0, xmm2
comiss xmm0, xmm1
ja 0x10009690
movss xmm1, dword [0x100a53d4]
comiss xmm1, xmm0
jbe 0x100096af
addss xmm0, xmm2
comiss xmm1, xmm0
ja 0x100096a6
movss xmm1, dword [esp + 0x28]
comiss xmm1, xmm2
movss dword [esp + 0x24], xmm0
movss dword [esp + 0x10], xmm1
jbe 0x100096f0
movaps xmm0, xmm1
divss xmm0, dword [0x100a53c4]
push ecx
movss dword [esp + 0x1c], xmm0
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.1007952d
fstp dword [esp + 0x1c]
movss xmm0, dword [esp + 0x1c]
jmp 0x10009725
movss xmm0, dword [0x100a53d8]
comiss xmm0, xmm1
jbe 0x1000973a
movaps xmm0, xmm1
divss xmm0, dword [0x100a53c4]
push ecx
movss dword [esp + 0x1c], xmm0
fld dword [esp + 0x1c]
fstp dword [esp]
call fcn.1007952d
fstp dword [esp + 0x1c]
movss xmm0, dword [esp + 0x1c]
mulss xmm0, dword [0x100a53c4]
add esp, 4
movss xmm1, dword [esp + 0x10]
subss xmm1, xmm0
movss xmm0, dword [esp + 0x2c]
movss dword [esp + 0x28], xmm1
movss xmm1, dword [0x100a53a8]
comiss xmm0, xmm1
ja 0x10009758
comiss xmm1, xmm0
jbe 0x10009764
mov dword [esp + 0x2c], 0
mov edi, dword [esp + 0x2c]
movq xmm0, qword [esp + 0x24]
movq qword [esi + 0xc], xmm0
mov dword [esi + 0x14], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4