Function at 0x10023560
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
cmp dword [0xb74490], 0
push edi
jne 0x10023574
xor edi, edi
jmp 0x1002357a
mov edi, dword [0xb7cd98]
cmp dword [0xb6f980], 0
jbe 0x1002386a
push esi
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x57
call esi
shr eax, 0xf
and eax, 0xffffff01
push 0x53
mov dword [ebp - 8], eax
call esi
shr eax, 0xf
and eax, 0xffffff01
push 0x41
mov dword [ebp - 0xc], eax
call esi
shr eax, 0xf
and eax, 0xffffff01
push 0x44
mov dword [ebp - 0x10], eax
call esi
shr eax, 0xf
and eax, 0xffffff01
push 0x26
mov dword [ebp - 0x14], eax
call esi
shr eax, 0xf
and eax, 0xffffff01
push 0x28
mov dword [ebp - 0x18], eax
call esi
movss xmm3, dword [0x101a0fd3]
xorps xmm2, xmm2
or dword [edi + 0x46c], 0x200003
xorps xmm1, xmm1
mov esi, dword [edi + 0x14]
xorps xmm0, xmm0
shr eax, 0xf
and al, 1
movss dword [ebp - 0x1c], xmm3
cmp byte [ebp - 8], 0
movss dword [ebp - 0x20], xmm3
movss xmm3, dword [0x100b2860]
movss dword [ebp - 0x2c], xmm0
movss dword [ebp - 4], xmm2
movss dword [ebp - 0x28], xmm2
movss dword [ebp - 0x24], xmm1
je 0x10023634
movaps xmm0, xmm3
movss dword [ebp - 0x2c], xmm0
cmp byte [ebp - 0xc], 0
je 0x10023643
subss xmm0, xmm3
movss dword [ebp - 0x2c], xmm0
cmp byte [ebp - 0x10], 0
je 0x10023656
movaps xmm2, xmm3
movss dword [ebp - 4], xmm3
movss dword [ebp - 0x28], xmm2
cmp byte [ebp - 0x14], 0
je 0x1002366a
subss xmm2, xmm3
movss dword [ebp - 4], xmm2
movss dword [ebp - 0x28], xmm2
cmp byte [ebp - 0x18], 0
je 0x10023678
movaps xmm1, xmm3
movss dword [ebp - 0x24], xmm1
test al, al
je 0x10023685
subss xmm1, xmm3
movss dword [ebp - 0x24], xmm1
lea ecx, [ebp - 0x2c]
call fcn.100233b0
test eax, eax
jne 0x100237a6
movss xmm1, dword [ebp - 4]
xorps xmm1, xmmword [0x100b2e20]
movaps xmm0, xmm1
movss dword [ebp - 4], xmm1
mulss xmm0, xmm1
movss xmm1, dword [ebp - 0x2c]
mulss xmm1, xmm1
addss xmm0, xmm1
movss xmm1, dword [ebp - 0x24]
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10005d90
movss xmm1, dword [ebp - 4]
xorps xmm2, xmm2
movss xmm6, dword [ebp - 0x2c]
movss xmm7, dword [ebp - 0x24]
divss xmm6, xmm0
divss xmm1, xmm0
divss xmm7, xmm0
movaps xmm4, xmm6
movss dword [ebp - 4], xmm1
mulss xmm4, dword [esi + 0x10]
movaps xmm0, xmm1
mulss xmm0, dword [esi]
addss xmm4, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [esi + 0x20]
addss xmm4, xmm0
movss xmm0, dword [esi + 0x30]
mulss xmm0, xmm2
movaps xmm2, xmm1
mulss xmm2, dword [esi + 4]
xorps xmm1, xmm1
addss xmm4, xmm0
movaps xmm0, xmm6
mulss xmm0, dword [esi + 0x14]
mulss xmm6, dword [esi + 0x18]
addss xmm2, xmm0
movaps xmm0, xmm7
mulss xmm0, dword [esi + 0x24]
mulss xmm7, dword [esi + 0x28]
addss xmm2, xmm0
movss xmm0, dword [esi + 0x34]
mulss xmm0, xmm1
addss xmm2, xmm0
movss xmm0, dword [ebp - 4]
mulss xmm0, dword [esi + 8]
addss xmm6, xmm0
movss xmm0, dword [esi + 0x38]
addss xmm6, xmm7
xorps xmm7, xmm7
mulss xmm0, xmm7
addss xmm6, xmm0
movss xmm0, dword [ebp - 0x1c]
mulss xmm4, xmm0
mulss xmm2, xmm0
addss xmm4, dword [esi + 0x30]
mulss xmm6, xmm0
movss dword [esi + 0x30], xmm4
addss xmm2, dword [esi + 0x34]
movss dword [esi + 0x34], xmm2
addss xmm6, dword [esi + 0x38]
movss dword [esi + 0x38], xmm6
movq xmm0, qword [esi + 0x30]
movq qword [0x10201d1c], xmm0
mov eax, dword [esi + 0x38]
mov esi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov dword [0x10201d24], eax
call esi
cdq
mov ecx, 0x3e8
idiv ecx
movss xmm1, dword [0x100b2768]
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x100b27f0]
cvtpd2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x100237f4
subss xmm0, dword [0x100b276c]
movss dword [edi + 0x44], xmm0
call esi
cdq
mov ecx, 0x3e8
idiv ecx
movss xmm1, dword [0x100b2768]
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x100b27f0]
cvtpd2ps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x1002382c
subss xmm0, dword [0x100b276c]
movss dword [edi + 0x48], xmm0
call esi
cdq
mov ecx, 0x3e8
idiv ecx
pop esi
movd xmm0, edx
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x100b27d8]
cvtpd2ps xmm1, xmm0
movss xmm0, dword [0x100b2758]
comiss xmm0, xmm1
jbe 0x10023865
subss xmm1, dword [0x100b275c]
movss dword [edi + 0x4c], xmm1
pop edi
mov esp, ebp
pop ebp
ret