Function at 0x10053b00
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
cmp byte [0x100c08fc], 0
je 0x10053ebf
mov eax, dword [0x100c07c8]
cmp dword [eax], 1
jne 0x10053ebf
mov eax, dword [0x100c0904]
cmp byte [eax], 0
je 0x10053ebf
mov eax, dword [0x100c07c4]
test dword [eax], 0x1000
jne 0x10053ebf
mov eax, dword [0x100c07cc]
push esi
mov esi, dword [eax + 0x60]
test esi, esi
je 0x10053ebe
push edi
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0xa1
call edi
shr eax, 0xf
and al, 1
mov byte [0x100c0028], al
cmp byte [0x100c0428], al
je 0x10053b81
mov byte [0x100c0428], al
test al, al
je 0x10053b81
xor byte [0x100c2f29], 1
mov eax, dword [0x100c07b4]
mov ecx, dword [0x100c3144]
movss xmm0, dword [eax + 0x80]
mov eax, dword fs:[0x2c]
movss dword [ebp - 8], xmm0
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x100c2f30]
cmp eax, dword [ecx + 4]
jg 0x10053ec3
cmp byte [0x100c2f29], 0
jne 0x10053c26
cmp byte [0x100c2f2a], 0
jne 0x10053ebd
mov eax, dword [0x100c07c0]
pop edi
mov byte [0x100c2f2a], 1
and dword [eax], 0xffefffff
mov eax, dword [0x100c07c0]
mov ecx, dword [eax]
and ecx, 0xfff7ffff
mov dword [eax], ecx
and ecx, 0xfffeffff
mov eax, dword [0x100c07c0]
mov dword [eax], ecx
mov eax, dword [0x100c07bc]
and dword [eax + 4], 0xfffffffd
mov eax, dword [0x100c07bc]
and dword [eax + 4], 0xffffffdf
mov eax, dword [0x100c07c4]
and dword [eax], 0xfffff7ff
mov eax, 0xfffb
and word [esi + 0xa2], ax
pop esi
mov esp, ebp
pop ebp
ret
subss xmm0, dword [0x100c2f2c]
comiss xmm0, dword [0x1008ac0c]
jbe 0x10053ebd
movss xmm0, dword [0x100be9dc]
push ebx
mov ebx, dword [0x100c07d4]
push 0x10
movss dword [ebp - 4], xmm0
call edi
cwde
shr eax, 0xf
test al, 1
je 0x10053c68
movss xmm0, dword [0x100be9e0]
movss dword [ebp - 4], xmm0
push 0x57
call edi
cwde
shr eax, 0xf
test al, 1
je 0x10053cb7
movss xmm0, dword [ebx + 0x364]
cvtps2pd xmm0, xmm0
call fcn.10069250
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 4]
addss xmm0, dword [esi + 0x40]
movss dword [esi + 0x40], xmm0
movss xmm0, dword [ebx + 0x364]
cvtps2pd xmm0, xmm0
call fcn.10069090
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 4]
addss xmm0, dword [esi + 0x48]
jmp 0x10053d12
push 0x53
call edi
cwde
shr eax, 0xf
test al, 1
je 0x10053d17
movss xmm0, dword [ebx + 0x364]
cvtps2pd xmm0, xmm0
call fcn.10069250
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esi + 0x40]
mulss xmm1, dword [ebp - 4]
subss xmm0, xmm1
movss dword [esi + 0x40], xmm0
movss xmm0, dword [ebx + 0x364]
cvtps2pd xmm0, xmm0
call fcn.10069090
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esi + 0x48]
mulss xmm1, dword [ebp - 4]
subss xmm0, xmm1
movss dword [esi + 0x48], xmm0
push 0x41
call edi
cwde
shr eax, 0xf
test al, 1
je 0x10053d84
movss xmm0, dword [ebx + 0x364]
subss xmm0, dword [0x1009083c]
cvtps2pd xmm0, xmm0
call fcn.10069250
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esi + 0x40]
mulss xmm1, dword [ebp - 4]
subss xmm0, xmm1
movss dword [esi + 0x40], xmm0
movss xmm0, dword [ebx + 0x364]
subss xmm0, dword [0x1009083c]
cvtps2pd xmm0, xmm0
call fcn.10069090
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esi + 0x48]
mulss xmm1, dword [ebp - 4]
subss xmm0, xmm1
jmp 0x10053de1
push 0x44
call edi
cwde
shr eax, 0xf
test al, 1
je 0x10053de6
movss xmm0, dword [ebx + 0x364]
subss xmm0, dword [0x1009083c]
cvtps2pd xmm0, xmm0
call fcn.10069250
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 4]
addss xmm0, dword [esi + 0x40]
movss dword [esi + 0x40], xmm0
movss xmm0, dword [ebx + 0x364]
subss xmm0, dword [0x1009083c]
cvtps2pd xmm0, xmm0
call fcn.10069090
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 4]
addss xmm0, dword [esi + 0x48]
movss dword [esi + 0x48], xmm0
push 0x20
call edi
cwde
shr eax, 0xf
pop ebx
test al, 1
je 0x10053dff
movss xmm0, dword [ebp - 4]
addss xmm0, dword [esi + 0x44]
jmp 0x10053e15
push 0x11
call edi
cwde
shr eax, 0xf
test al, 1
je 0x10053e1a
movss xmm0, dword [esi + 0x44]
subss xmm0, dword [ebp - 4]
movss dword [esi + 0x44], xmm0
or word [esi + 0xa2], 4
mov eax, dword [0x100c07c0]
movss xmm0, dword [ebp - 8]
mov byte [0x100c2f2a], 0
movss dword [0x100c2f2c], xmm0
or dword [eax], 0x80000
mov eax, dword [0x100c07c0]
mov ecx, dword [eax]
or ecx, 0x100000
mov dword [eax], ecx
or ecx, 0x10000
mov eax, dword [0x100c07c0]
mov dword [eax], ecx
mov eax, dword [0x100c07bc]
or dword [eax + 4], 0x20
mov eax, dword [0x100c07bc]
or dword [eax + 4], 2
mov eax, dword [0x100c07c4]
or dword [eax], 0x800
mov eax, dword [esi + 0x40]
mov dword [esi + 0x50], eax
mov eax, dword [esi + 0x44]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x48]
mov dword [esi + 0x58], eax
mov eax, dword [esi + 0x4c]
mov dword [esi + 0x5c], eax
mov eax, dword [esi + 0x764]
mov dword [esi + 0x890], 0
mov dword [esi + 0x894], 0
mov dword [esi + 0x898], 0
mov dword [eax + 0x10], 2
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x100c2f30
call fcn.10054e92
movss xmm0, dword [ebp - 8]
add esp, 4
cmp dword [0x100c2f30], 0xffffffff
jne 0x10053bb3
push 0x100c2f30
movss dword [0x100c2f2c], xmm0
call fcn.10054e41
movss xmm0, dword [ebp - 8]
add esp, 4
jmp 0x10053bb3