Function at 0x1004a9d0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x134
mov eax, dword [0x10061040]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 0
movss xmm0, dword [0x100eecf8]
mov dword [ebp - 0x128], ecx
movss dword [ebp - 0x124], xmm0
jne 0x1004aa14
push dword [0x100eecf4]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1004adf8
call fcn.10047900
test eax, eax
je 0x1004ae35
cmp dword [0x10080154], 0xffffffff
jne 0x1004aa57
cmp dword [0x1010e55c], 0
je 0x1004adf8
cvttss2si eax, dword [0x100eecf0]
mov dword [0x1010eccc], eax
call fcn.1004a710
mov dword [0x10080154], eax
cmp eax, 0xffffffff
je 0x1004adf8
cmp dword [0x1010e55c], 0
je 0x1004adf8
mov ecx, dword [0x10184110]
push esi
mov eax, dword [ecx]
mov eax, dword [eax + 0xec]
call eax
mov esi, eax
push 4
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1004adf7
test esi, esi
je 0x1004adf7
mov ecx, dword [esi + 0x184]
mov eax, dword [0x10080154]
push 4
mov esi, dword [ecx + eax*4]
push esi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1004ae06
test esi, esi
je 0x1004ae06
mov eax, dword [0x1010ed70]
cmp eax, 1
jne 0x1004aaf4
mov ecx, dword [0x10184100]
lea edx, [ebp - 0x110]
push 1
push edx
push 8
mov eax, dword [ecx]
push dword [esi + 0x10]
call dword [eax + 0x40]
movss xmm0, dword [ebp - 0x10c]
addss xmm0, dword [0x1005da08]
movss dword [ebp - 0x10c], xmm0
jmp 0x1004ab6e
cmp eax, 2
jne 0x1004ab06
push 1
lea edx, [ebp - 0x110]
push edx
push 6
jmp 0x1004ab60
cmp eax, 3
jne 0x1004ab3e
mov ecx, dword [0x10184100]
lea edx, [ebp - 0x110]
push 1
push edx
push 4
mov eax, dword [ecx]
push dword [esi + 0x10]
call dword [eax + 0x40]
movss xmm0, dword [ebp - 0x10c]
subss xmm0, dword [0x1005da08]
movss dword [ebp - 0x10c], xmm0
jmp 0x1004ab6e
cmp eax, 4
jne 0x1004ab50
push 1
lea edx, [ebp - 0x110]
push edx
push 0x22
jmp 0x1004ab60
cmp eax, 5
jne 0x1004ab6e
push 1
lea edx, [ebp - 0x110]
push edx
push 0x15
mov ecx, dword [0x10184100]
push dword [esi + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x40]
mov esi, dword [0x1010ecc4]
movss xmm2, dword [ebp - 0x108]
movss xmm1, dword [ebp - 0x110]
movss xmm6, dword [0x1005da98]
mov eax, dword [esi + 0x13c]
movss xmm4, dword [0x1005dab4]
movq xmm0, qword [eax + 0x10]
mov eax, dword [eax + 0x18]
movq qword [ebp - 0x134], xmm0
movss xmm0, dword [ebp - 0x10c]
subss xmm0, dword [ebp - 0x130]
subss xmm1, dword [ebp - 0x134]
mov dword [ebp - 0x12c], eax
subss xmm2, dword [ebp - 0x12c]
movss dword [ebp - 0x120], xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x118], xmm1
ucomiss xmm2, xmm0
movss dword [ebp - 0x11c], xmm2
lahf
test ah, 0x44
jp 0x1004ac0d
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x1004ac0d
movss xmm1, dword [0x1005daa8]
xorps xmm3, xmm3
jmp 0x1004acb8
xorps xmm1, xmmword [0x1005e060]
movaps xmm0, xmm2
call fcn.10030910
mulss xmm0, dword [0x1005da98]
xorps xmm1, xmm1
divss xmm0, dword [0x1005d9f0]
subss xmm0, dword [0x1005da84]
comiss xmm1, xmm0
movss dword [ebp - 0x114], xmm0
jbe 0x1004ac54
addss xmm0, dword [0x1005dab4]
movss dword [ebp - 0x114], xmm0
movss xmm1, dword [ebp - 0x11c]
movss xmm0, dword [ebp - 0x118]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.10003580
movaps xmm1, xmm0
movss xmm0, dword [ebp - 0x120]
call fcn.10030910
movss xmm6, dword [0x1005da98]
movaps xmm1, xmm0
mulss xmm1, xmm6
xorps xmm0, xmm0
movss xmm4, dword [0x1005dab4]
movss xmm3, dword [ebp - 0x114]
divss xmm1, dword [0x1005d9f0]
comiss xmm0, xmm1
jbe 0x1004acb8
addss xmm1, xmm4
xorps xmm1, xmmword [0x1005e060]
comiss xmm1, xmm6
movss xmm5, dword [0x1005db2c]
jbe 0x1004acd2
subss xmm1, xmm4
jmp 0x1004acdb
comiss xmm5, xmm1
jbe 0x1004acdb
addss xmm1, xmm4
comiss xmm3, xmm6
jbe 0x1004ace6
subss xmm3, xmm4
jmp 0x1004acef
comiss xmm5, xmm3
jbe 0x1004acef
addss xmm3, xmm4
cmp dword [ebp + 0x18], 0
movss xmm2, dword [esi + 0x58]
mulss xmm2, dword [0x1005da70]
movss dword [ebp - 0x118], xmm2
movss xmm2, dword [esi + 0x54]
mulss xmm2, dword [0x1005da70]
movss dword [ebp - 0x114], xmm2
je 0x1004adc0
subss xmm3, dword [ebp - 0x118]
movss xmm7, dword [0x1005d9a4]
subss xmm7, dword [ebp - 0x124]
movaps xmm2, xmm3
comiss xmm5, xmm2
jbe 0x1004ad4c
addss xmm2, xmm4
comiss xmm5, xmm2
ja 0x1004ad43
comiss xmm2, xmm6
jbe 0x1004ad5a
subss xmm2, xmm4
comiss xmm2, xmm6
ja 0x1004ad51
subss xmm1, dword [ebp - 0x114]
movaps xmm0, xmm1
comiss xmm5, xmm0
jbe 0x1004ad79
nop word [eax + eax]
addss xmm0, xmm4
comiss xmm5, xmm0
ja 0x1004ad70
comiss xmm0, xmm6
jbe 0x1004ad89
nop
subss xmm0, xmm4
comiss xmm0, xmm6
ja 0x1004ad80
movaps xmm1, xmm7
xorps xmm1, xmmword [0x1005e060]
comiss xmm1, xmm2
jbe 0x1004ad9d
movaps xmm3, xmm1
jmp 0x1004ada4
movaps xmm3, xmm7
minss xmm3, xmm2
comiss xmm1, xmm0
ja 0x1004adb0
movaps xmm1, xmm7
minss xmm1, xmm0
addss xmm1, dword [ebp - 0x114]
addss xmm3, dword [ebp - 0x118]
cmp dword [ebp - 0x128], 1
mulss xmm3, dword [0x1005d924]
mulss xmm1, dword [0x1005d924]
movss dword [esi + 0x58], xmm3
movss dword [esi + 0x54], xmm1
jne 0x1004adf7
mov dword [0x10080154], 0xffffffff
mov dword [0x1010e55c], 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054550
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
jne 0x1004ade3
cmp dword [ebp + 8], 0
jne 0x1004ade3
mov dword [0x10080154], 0xffffffff
mov dword [0x1010e55c], 0
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054550
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor ecx, ebp
mov dword [0x10080154], 0xffffffff
mov dword [0x1010e55c], 1
call fcn.10054550
mov esp, ebp
pop ebp
ret