Function at 0x100344f0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x50
cmp byte [0x1018a22f], 0
push esi
push edi
jne 0x10034511
cmp byte [0x1018a23b], 0
je 0x10034a53
movss xmm0, dword [0xb6f178]
mov edi, 0x56e210
movss dword [esp + 8], xmm0
movss xmm0, dword [0x10188738]
push 0xffffffffffffffff
movss dword [esp + 0x10], xmm0
call edi
add esp, 4
mov esi, dword [eax + 0x14]
push 0xffffffffffffffff
add esi, 0x30
call edi
add esp, 4
mov dword [eax + 0x4c], 0
mov eax, 0x56e0d0
push 0
push 0xffffffffffffffff
call eax
mov edi, eax
add esp, 8
test edi, edi
je 0x1003465d
mov esi, dword [edi + 0x14]
lea ecx, [esp + 0x18]
add esi, 0x30
sub esp, 0xc
mov eax, 0x420b10
movss xmm0, dword [esi + 8]
movss xmm1, dword [esi + 4]
subss xmm0, xmm0
movss xmm2, dword [esi]
subss xmm1, xmm1
subss xmm2, xmm2
movss dword [esp + 8], xmm0
movss dword [esp + 4], xmm1
movss dword [esp], xmm2
call eax
movss xmm1, dword [esp + 0x1c]
movss xmm0, dword [esp + 0x18]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
movss xmm1, dword [esp + 0x20]
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10009480
movss xmm1, dword [esp + 8]
mov eax, 0x59b020
xorps xmm1, xmmword [0x100ee450]
push ecx
mov ecx, dword [edi + 0x14]
movss dword [esp + 0x14], xmm0
movss dword [esp], xmm1
call eax
movss xmm0, dword [esp + 8]
cvtps2pd xmm0, xmm0
call fcn.100cab10
movss xmm2, dword [esi]
xorps xmm1, xmm1
mov eax, dword [edi + 0x14]
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [esp + 0x10]
subss xmm2, xmm1
movss xmm1, dword [esp + 8]
cvtps2pd xmm0, xmm1
movss dword [eax + 0x30], xmm2
call fcn.100c9b70
movss xmm1, dword [esi + 4]
mov eax, dword [edi + 0x14]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x10]
subss xmm1, xmm0
movss dword [eax + 0x34], xmm1
mov dword [edi + 0x4c], 0
mov dword [edi + 0x48], 0
mov dword [edi + 0x44], 0
jmp 0x100346a1
cmp byte [0x1018a22f], 0
push 0xffffffffffffffff
je 0x10034690
mov edi, 0x56e210
call edi
add esp, 4
or dword [eax + 0x46c], 0x200000
push 0xffffffffffffffff
call edi
add esp, 4
or dword [eax + 0x46c], 2
push 0xffffffffffffffff
call edi
jmp 0x10034697
mov eax, 0x56e210
call eax
add esp, 4
or dword [eax + 0x46c], 1
lea eax, [esi + 8]
push 0x57
mov dword [esp + 0x14], eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x10034716
movss xmm0, dword [esp + 8]
cvtps2pd xmm0, xmm0
call fcn.100c9b70
movss xmm1, dword [esp + 8]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0xc]
movss dword [esp + 0x14], xmm0
cvtps2pd xmm0, xmm1
call fcn.100cab10
cvtsd2ss xmm0, xmm0
xorps xmm1, xmm1
mulss xmm0, dword [esp + 0xc]
addss xmm0, dword [esi]
movss dword [esi], xmm0
movss xmm0, dword [esp + 0x14]
addss xmm0, dword [esi + 4]
movss dword [esi + 4], xmm0
movss xmm0, dword [esi + 8]
addss xmm0, xmm1
movss dword [esi + 8], xmm0
jmp 0x1003471d
lea eax, [esi + 8]
mov dword [esp + 0x10], eax
push 0x53
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x10034799
movss xmm0, dword [esp + 8]
cvtps2pd xmm0, xmm0
call fcn.100c9b70
movss xmm1, dword [esp + 8]
cvtsd2ss xmm0, xmm0
xorps xmm0, xmmword [0x100ee450]
mulss xmm0, dword [esp + 0xc]
movss dword [esp + 0x14], xmm0
cvtps2pd xmm0, xmm1
call fcn.100cab10
mov eax, dword [esp + 0x10]
xorps xmm1, xmm1
cvtsd2ss xmm0, xmm0
xorps xmm0, xmmword [0x100ee450]
mulss xmm0, dword [esp + 0xc]
addss xmm0, dword [esi]
movss dword [esi], xmm0
movss xmm0, dword [esp + 0x14]
addss xmm0, dword [esi + 4]
movss dword [esi + 4], xmm0
movss xmm0, dword [eax]
addss xmm0, xmm1
movss dword [eax], xmm0
push 0x44
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1003480e
movss xmm0, dword [esp + 8]
cvtps2pd xmm0, xmm0
call fcn.100cab10
movss xmm1, dword [esp + 8]
cvtsd2ss xmm0, xmm0
xorps xmm0, xmmword [0x100ee450]
mulss xmm0, dword [esp + 0xc]
movss dword [esp + 0x14], xmm0
cvtps2pd xmm0, xmm1
call fcn.100c9b70
mov eax, dword [esp + 0x10]
xorps xmm1, xmm1
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0xc]
addss xmm0, dword [esi]
movss dword [esi], xmm0
movss xmm0, dword [esp + 0x14]
addss xmm0, dword [esi + 4]
movss dword [esi + 4], xmm0
movss xmm0, dword [eax]
addss xmm0, xmm1
movss dword [eax], xmm0
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x41
call edi
test ax, ax
je 0x10034883
movss xmm0, dword [esp + 8]
cvtps2pd xmm0, xmm0
call fcn.100cab10
movss xmm1, dword [esp + 8]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0xc]
movss dword [esp + 0x14], xmm0
cvtps2pd xmm0, xmm1
call fcn.100c9b70
cvtsd2ss xmm0, xmm0
xorps xmm1, xmm1
xorps xmm0, xmmword [0x100ee450]
mulss xmm0, dword [esp + 0xc]
addss xmm0, dword [esi]
movss dword [esi], xmm0
movss xmm0, dword [esp + 0x14]
addss xmm0, dword [esi + 4]
movss dword [esi + 4], xmm0
movss xmm0, dword [esi + 8]
addss xmm0, xmm1
movss dword [esi + 8], xmm0
cmp byte [0x1018a22f], 0
je 0x100348f8
push 0x20
call edi
test ax, ax
je 0x100348c2
movss xmm0, dword [esi]
xorps xmm1, xmm1
addss xmm0, xmm1
movss dword [esi], xmm0
movss xmm0, dword [esi + 4]
addss xmm0, xmm1
movss dword [esi + 4], xmm0
movss xmm0, dword [esp + 0xc]
addss xmm0, dword [esi + 8]
movss dword [esi + 8], xmm0
push 0x11
call edi
test ax, ax
je 0x100348f8
movss xmm0, dword [esi]
xorps xmm1, xmm1
addss xmm0, xmm1
movss dword [esi], xmm0
movss xmm0, dword [esi + 4]
addss xmm0, xmm1
movss dword [esi + 4], xmm0
movss xmm0, dword [esi + 8]
subss xmm0, dword [esp + 0xc]
movss dword [esi + 8], xmm0
cmp byte [0x1018a23b], 0
je 0x10034a53
push 0xffffffffffffffff
mov eax, 0x56e210
call eax
mov edi, 0x569660
mov ecx, dword [eax + 0x14]
add eax, 4
test ecx, ecx
lea edx, [ecx + 0x30]
cmove edx, eax
movss xmm2, dword [edx]
movss dword [esp + 0x1c], xmm2
movss xmm1, dword [edx + 4]
movss dword [esp], xmm1
movss dword [esp + 0x20], xmm1
movss xmm0, dword [edx + 8]
push ecx
movss dword [esp + 0x28], xmm0
movss dword [esp], xmm2
call edi
fadd dword [0x100ede68]
push 0
push 0
push 0
push 1
push 1
push 0
push 0
push 1
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], 0
push eax
lea eax, [esp + 0x58]
push eax
lea eax, [esp + 0x48]
push eax
push esi
mov eax, 0x56ba00
fstp dword [esp + 0x48]
call eax
add esp, 0x38
test al, al
je 0x1003499e
movss xmm0, dword [esp + 0x34]
addss xmm0, dword [0x100ede68]
jmp 0x100349a4
movss xmm0, dword [esp + 0x10]
sub esp, 8
movss dword [esp + 0x14], xmm0
movss xmm0, dword [esp + 0x24]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x20]
movss dword [esp], xmm0
call edi
fstp dword [esp + 0x18]
movss xmm0, dword [esp + 0x18]
add esp, 8
comiss xmm0, dword [esp + 0xc]
jbe 0x100349e8
addss xmm0, dword [0x100ede68]
movss dword [esp + 0xc], xmm0
push 0xc
call fcn.100a1388
movss xmm0, dword [esp + 0x24]
add esp, 4
mov dword [esp + 0x10], eax
push eax
push 1
lea eax, [esp + 0x10]
push eax
sub esp, 0xc
mov eax, 0x6eb690
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x34]
movss dword [esp + 4], xmm0
movss xmm0, dword [esp + 0x30]
movss dword [esp], xmm0
call eax
movss xmm0, dword [esp + 0x24]
add esp, 0x18
test al, al
je 0x10034a4e
movss xmm1, dword [esp + 8]
comiss xmm1, xmm0
jbe 0x10034a4e
movaps xmm0, xmm1
addss xmm0, dword [0x100ede68]
movss dword [esi + 8], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret