Function at 0x10009140
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x1868
call fcn.100d7610
cmp byte [0x10132abc], 0
push esi
push edi
je 0x10009642
mov ecx, dword [0x10131144]
mov eax, dword [0x10132b0c]
cmp ecx, 3
ja case.0x1000916f.0
jmp dword [ecx*4 + 0x10009674]
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
setne al
jmp 0x100091a7
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
jmp 0x100091a7
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
sete al
test al, al
je 0x10009642
mov ecx, dword [0x10132a7c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x10009642
mov ecx, dword [0x10132a7c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x10009642
mov edi, dword [0x10132ac8]
test edi, edi
je 0x10009642
mov eax, edi
mov dword [esp + 0x10], eax
test eax, eax
je 0x10009642
mov eax, dword [0x10132ac4]
test eax, eax
jne 0x10009232
mov edx, 0xe80c2f78
mov ecx, 0x101114a5
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov edi, dword [0x10132ac8]
mov dword [0x10132ac4], eax
mov ecx, dword [esp + 0x10]
cmp dword [ecx + eax], 0
jle 0x10009642
mov esi, dword [ebp + 8]
test byte [esi + 0x30], 1
je 0x1000966c
mov edx, 0xe80c2f78
mov ecx, 0x101114dd
call fcn.10004930
mov edx, 0xc10bf213
mov ecx, 0x101113bd
mov esi, eax
call fcn.10004930
mov edx, esi
mov ecx, eax
call fcn.1007b050
mov ecx, dword [0x10132a94]
mov edx, dword [eax + edi]
mov eax, dword [ecx]
and edx, 0xfff
push edx
mov eax, dword [eax + 0xc]
call eax
test eax, eax
je 0x10009642
movss xmm0, dword [0x10132a50]
sub esp, 8
divss xmm0, dword [0x10132a74]
movss dword [esp + 4], xmm0
movss xmm0, dword [0x10132a70]
movss dword [esp], xmm0
call dword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_fmaxf]
mov ecx, dword [0x10132a7c]
add esp, 8
fstp dword [0x10132ee0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x138]
call eax
mov esi, eax
mov ecx, dword [esi]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, dword [0x10132a7c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x138]
call edx
push 0
mov ecx, dword [eax]
mov ecx, dword [ecx + 0x24]
mov dword [esp + 0x14], ecx
mov ecx, eax
call dword [esp + 0x14]
fstp dword [esp + 0x10]
push 1
mov ecx, esi
call dword [esp + 0x18]
fadd dword [esp + 0x10]
mov ecx, dword [0x10132ac8]
lea eax, [esp + 0x4c]
push eax
fstp dword [esp + 0x14]
movss xmm0, dword [esp + 0x14]
movss dword [0x10132edc], xmm0
addss xmm0, dword [0x10132ee0]
movss dword [0x10132ed8], xmm0
call fcn.10004950
mov esi, dword [0x10132eec]
or eax, 0xffffffff
movss xmm0, dword [0x1012c990]
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov esi, dword [esi]
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], eax
movss dword [esp + 0x24], xmm0
cmp byte [esi + 0xd], 0
mov dword [esp + 0x14], esi
jne 0x1000966c
nop dword [eax + eax]
mov eax, dword [esi + 0x24]
test eax, eax
je 0x10009614
xor edi, edi
test eax, eax
je 0x10009614
mov dword [esp + 0x28], edi
nop dword [eax]
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
add ecx, edi
dec eax
and ecx, eax
mov eax, dword [esi + 0x18]
push 0x1818
push dword [eax + ecx*4]
lea eax, [esp + 0x60]
push eax
call sub.VCRUNTIME140.dll_memcpy
movss xmm1, dword [0x10132ed8]
lea ecx, [esp + 0x34]
movss xmm0, dword [0x10132a60]
add esp, 0xc
xorps xmm4, xmm4
mov eax, 0x10132ed8
comiss xmm1, xmm4
cmovae ecx, eax
mov eax, 0x10132a60
comiss xmm0, xmm1
movss xmm0, dword [esp + 0x5c]
movss dword [esp + 0x30], xmm0
cmovae eax, ecx
mov ecx, dword [0x10132a9c]
movss xmm1, dword [ecx + 0x10]
subss xmm1, xmm0
movss xmm0, dword [eax]
subss xmm0, xmm1
andps xmm0, xmmword [0x1012cb60]
comiss xmm0, dword [0x1012c7cc]
ja 0x1000960a
movss xmm0, dword [esp + 0x68]
subss xmm0, dword [esp + 0x50]
movss xmm2, dword [esp + 0x64]
subss xmm2, dword [esp + 0x4c]
movss xmm3, dword [esp + 0x6c]
subss xmm3, dword [esp + 0x54]
ucomiss xmm0, xmm4
movss dword [esp + 0xc], xmm2
movss dword [esp + 0x2c], xmm0
lahf
test ah, 0x44
jp 0x10009495
ucomiss xmm2, xmm4
lahf
test ah, 0x44
jp 0x10009495
comiss xmm3, xmm4
xorps xmm1, xmm1
jbe 0x1000948b
movss xmm0, dword [0x1012c994]
jmp 0x1000950a
movss xmm0, dword [0x1012c950]
jmp 0x1000950a
fld dword [esp + 0x2c]
fld dword [esp + 0xc]
fpatan
movss xmm6, dword [0x1012c938]
movss xmm5, dword [0x1012c998]
fstp dword [esp + 0xc]
movss xmm1, dword [esp + 0xc]
mulss xmm1, xmm6
comiss xmm4, xmm1
jbe 0x100094c6
addss xmm1, xmm5
mulss xmm0, xmm0
mulss xmm2, xmm2
xorps xmm3, xmmword [0x1012cb90]
movss dword [esp + 0xc], xmm3
addss xmm0, xmm2
fld dword [esp + 0xc]
sqrtss xmm0, xmm0
movss dword [esp + 0xc], xmm0
fld dword [esp + 0xc]
fpatan
fstp dword [esp + 0xc]
movss xmm0, dword [esp + 0xc]
mulss xmm0, xmm6
comiss xmm4, xmm0
jbe 0x1000950a
addss xmm0, xmm5
lea ecx, [esp + 0x18]
movss dword [esp + 0x18], xmm0
movss dword [esp + 0x1c], xmm1
mov dword [esp + 0x20], 0
call fcn.100087b0
mov eax, dword [ebp + 8]
lea ecx, [esp + 0x34]
movq xmm0, qword [eax + 0xc]
mov eax, dword [eax + 0x14]
movq qword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x18]
subss xmm0, dword [esp + 0x40]
mov dword [esp + 0x48], eax
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x1c]
subss xmm0, dword [esp + 0x44]
movss dword [esp + 0x38], xmm0
movss xmm0, dword [esp + 0x20]
subss xmm0, dword [esp + 0x48]
movss dword [esp + 0x3c], xmm0
call fcn.100087b0
movss xmm0, dword [esp + 0x38]
movss xmm1, dword [0x1012c890]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_powf
movss xmm1, dword [0x1012c890]
movss dword [esp + 0xc], xmm0
movss xmm0, dword [esp + 0x34]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_powf
movss xmm1, dword [esp + 0xc]
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
movss xmm1, dword [esp + 0x24]
comiss xmm1, xmm0
jbe 0x1000960a
mov eax, dword [0x10132a9c]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [esp + 0x30]
addss xmm0, dword [0x10132ee0]
mov ecx, dword [esp + 0x58]
add ecx, 8
divss xmm0, dword [eax + 0x20]
mov dword [0x10132ee4], edi
addss xmm0, dword [0x1012c800]
cvttss2si eax, xmm0
mov dword [esp + 0x10], eax
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
mov dword [0x10132ee8], eax
inc edi
cmp edi, dword [esi + 0x24]
jb 0x100093b0
lea ecx, [esp + 0x14]
call fcn.10009860
mov esi, dword [esp + 0x14]
cmp byte [esi + 0xd], 0
je 0x10009390
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x1000966c
mov esi, dword [ebp + 8]
mov dword [esi + 8], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4
mov esi, dword [0x10132eec]
mov ecx, 0x10132eec
push dword [esi + 4]
push 0x10132eec
call fcn.10009d90
mov dword [esi + 4], esi
mov dword [esi], esi
mov dword [esi + 8], esi
mov dword [0x10132ef0], 0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4