Function at 0x1003f950
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
cmp byte [0x100aa454], 0
je 0x1003fcc2
mov eax, dword [0x100aa460]
cmp dword [eax], 1
jne 0x1003fcc2
mov eax, dword [0x100aa464]
cmp byte [eax], 0
je 0x1003fcc2
mov eax, dword [0x100aa468]
test dword [eax], 0x1000
jne 0x1003fcc2
mov eax, dword [0x100aa2ac]
push esi
mov esi, dword [eax + 0x60]
test esi, esi
je 0x1003fcc1
mov ecx, 0x100aa2b8
call fcn.1000de90
test al, al
je 0x1003f9b6
xor byte [0x100aa455], 1
mov eax, dword [0x100aa2a4]
mov ecx, dword [0x100aa6ac]
movss xmm0, dword [eax + 0x80]
mov eax, dword fs:[0x2c]
movss dword [ebp - 8], xmm0
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x100aa478]
cmp eax, dword [ecx + 4]
jg 0x1003fcc6
cmp byte [0x100aa455], 0
jne 0x1003fa3e
cmp byte [0x100aa470], 0
jne 0x1003fcc1
mov eax, dword [0x100aa458]
mov ecx, dword [0x100aa45c]
mov byte [0x100aa470], 1
and dword [eax], 0xffe6ffff
mov eax, dword [ecx + 4]
and eax, 0xfffffffd
and eax, 0xffffffdf
mov dword [ecx + 4], eax
mov eax, dword [0x100aa468]
and dword [eax], 0xfffff7ff
mov eax, 0xfffb
and word [esi + 0xa2], ax
pop esi
mov esp, ebp
pop ebp
ret
subss xmm0, dword [0x100aa474]
comiss xmm0, dword [0x10075bc4]
jbe 0x1003fcc1
movss xmm0, dword [0x100a90a4]
push ebx
mov ebx, dword [0x100aa46c]
push edi
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x10
movss dword [ebp - 4], xmm0
call edi
cwde
shr eax, 0xf
test al, 1
je 0x1003fa87
movss xmm0, dword [0x100a90a8]
movss dword [ebp - 4], xmm0
push 0x57
call edi
cwde
shr eax, 0xf
test al, 1
je 0x1003fad6
movss xmm0, dword [ebx + 0x364]
cvtps2pd xmm0, xmm0
call fcn.10055b40
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.10055980
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 4]
addss xmm0, dword [esi + 0x48]
jmp 0x1003fb31
push 0x53
call edi
cwde
shr eax, 0xf
test al, 1
je 0x1003fb36
movss xmm0, dword [ebx + 0x364]
cvtps2pd xmm0, xmm0
call fcn.10055b40
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.10055980
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 0x1003fba3
movss xmm0, dword [ebx + 0x364]
subss xmm0, dword [0x1007aa3c]
cvtps2pd xmm0, xmm0
call fcn.10055b40
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 [0x1007aa3c]
cvtps2pd xmm0, xmm0
call fcn.10055980
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esi + 0x48]
mulss xmm1, dword [ebp - 4]
subss xmm0, xmm1
jmp 0x1003fc00
push 0x44
call edi
cwde
shr eax, 0xf
test al, 1
je 0x1003fc05
movss xmm0, dword [ebx + 0x364]
subss xmm0, dword [0x1007aa3c]
cvtps2pd xmm0, xmm0
call fcn.10055b40
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 [0x1007aa3c]
cvtps2pd xmm0, xmm0
call fcn.10055980
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
test al, 1
je 0x1003fc1d
movss xmm0, dword [ebp - 4]
addss xmm0, dword [esi + 0x44]
jmp 0x1003fc33
push 0x11
call edi
cwde
shr eax, 0xf
test al, 1
je 0x1003fc38
movss xmm0, dword [esi + 0x44]
subss xmm0, dword [ebp - 4]
movss dword [esi + 0x44], xmm0
or word [esi + 0xa2], 4
mov eax, dword [0x100aa458]
mov ecx, dword [0x100aa45c]
movss xmm0, dword [ebp - 8]
pop edi
or dword [eax], 0x190000
mov eax, dword [ecx + 4]
or eax, 0x20
mov byte [0x100aa470], 0
or eax, 2
movss dword [0x100aa474], xmm0
mov dword [ecx + 4], eax
mov eax, dword [0x100aa468]
pop ebx
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 esi
mov esp, ebp
pop ebp
ret
push 0x100aa478
call fcn.10040d67
movss xmm0, dword [ebp - 8]
add esp, 4
cmp dword [0x100aa478], 0xffffffff
jne 0x1003f9e8
push 0x100aa478
movss dword [0x100aa474], xmm0
call fcn.10040d1d
movss xmm0, dword [ebp - 8]
add esp, 4
jmp 0x1003f9e8