Function at 0x1004a1a0
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 0x1004a1e4
push dword [0x100eecf4]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1004a6b9
cvttss2si eax, dword [0x100eecf0]
mov dword [0x1010eccc], eax
mov eax, dword [0x1010ed7c]
test eax, eax
jne 0x1004a20d
mov edx, dword [ebp + 0x18]
push ecx
call fcn.10049cf0
add esp, 4
mov dword [0x10061168], eax
jmp 0x1004a22a
cmp eax, 1
jne 0x1004a225
mov edx, dword [ebp + 0x18]
push ecx
call fcn.10049a30
add esp, 4
mov dword [0x10061168], eax
jmp 0x1004a22a
mov eax, dword [0x10061168]
cmp eax, 0xffffffff
je 0x1004a6df
cmp dword [0x1010e55c], 0
je 0x1004a6df
push esi
mov esi, dword [0x1010ecd0]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
push 4
push esi
call edi
test eax, eax
jne 0x1004a6b7
test esi, esi
je 0x1004a6b7
mov eax, dword [0x1010ecd0]
push 4
mov ecx, dword [eax + 0x184]
mov eax, dword [0x10061168]
mov esi, dword [ecx + eax*4]
push esi
call edi
test eax, eax
jne 0x1004a6c7
test esi, esi
je 0x1004a6c7
mov eax, dword [esi + 0x10]
push 4
push eax
mov dword [ebp - 0x118], eax
call edi
test eax, eax
jne 0x1004a6c7
cmp dword [ebp - 0x118], eax
je 0x1004a6c7
mov eax, dword [0x1010ed70]
cmp eax, 1
jne 0x1004a2ed
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 0x1004a42d
cmp eax, 2
jne 0x1004a302
push 1
lea edx, [ebp - 0x110]
push edx
push 6
jmp 0x1004a41f
cmp eax, 3
jne 0x1004a33d
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 0x1004a42d
cmp eax, 4
jne 0x1004a352
push 1
lea edx, [ebp - 0x110]
push edx
push 0x15
jmp 0x1004a41f
cmp eax, 5
jne 0x1004a367
push 1
lea edx, [ebp - 0x110]
push edx
push 0x24
jmp 0x1004a41f
cmp eax, 6
jne 0x1004a37c
push 1
lea edx, [ebp - 0x110]
push edx
push 0x21
jmp 0x1004a41f
cmp eax, 7
jne 0x1004a391
push 1
lea edx, [ebp - 0x110]
push edx
push 0x2e
jmp 0x1004a41f
cmp eax, 8
jne 0x1004a3a3
push 1
lea edx, [ebp - 0x110]
push edx
push 0x2f
jmp 0x1004a41f
cmp eax, 9
jne 0x1004a3b5
push 1
lea edx, [ebp - 0x110]
push edx
push 0x32
jmp 0x1004a41f
cmp eax, 0xa
jne 0x1004a3c7
push 1
lea edx, [ebp - 0x110]
push edx
push 0x33
jmp 0x1004a41f
cmp eax, 0xb
jne 0x1004a3d9
push 1
lea edx, [ebp - 0x110]
push edx
push 0x36
jmp 0x1004a41f
cmp eax, 0xc
jne 0x1004a3eb
push 1
lea edx, [ebp - 0x110]
push edx
push 0x35
jmp 0x1004a41f
cmp eax, 0xd
jne 0x1004a3fd
push 1
lea edx, [ebp - 0x110]
push edx
push 0x37
jmp 0x1004a41f
cmp eax, 0xe
jne 0x1004a40f
push 1
lea edx, [ebp - 0x110]
push edx
push 0x38
jmp 0x1004a41f
cmp eax, 0xf
jne 0x1004a42d
push 1
lea edx, [ebp - 0x110]
push edx
push 0x39
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 - 0x11c], xmm1
ucomiss xmm2, xmm0
movss dword [ebp - 0x118], xmm2
lahf
test ah, 0x44
jp 0x1004a4cc
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jp 0x1004a4cc
movss xmm1, dword [0x1005daa8]
xorps xmm3, xmm3
jmp 0x1004a577
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 0x1004a513
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 0x1004a577
addss xmm1, xmm4
xorps xmm1, xmmword [0x1005e060]
comiss xmm1, xmm6
movss xmm5, dword [0x1005db2c]
jbe 0x1004a591
subss xmm1, xmm4
jmp 0x1004a59a
comiss xmm5, xmm1
jbe 0x1004a59a
addss xmm1, xmm4
comiss xmm3, xmm6
jbe 0x1004a5a5
subss xmm3, xmm4
jmp 0x1004a5ae
comiss xmm5, xmm3
jbe 0x1004a5ae
addss xmm3, xmm4
cmp dword [ebp + 0x20], 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 0x1004a680
subss xmm3, dword [ebp - 0x118]
movss xmm7, dword [0x1005d9a4]
subss xmm7, dword [ebp - 0x124]
movaps xmm2, xmm3
comiss xmm5, xmm2
jbe 0x1004a60b
addss xmm2, xmm4
comiss xmm5, xmm2
ja 0x1004a602
comiss xmm2, xmm6
jbe 0x1004a619
subss xmm2, xmm4
comiss xmm2, xmm6
ja 0x1004a610
subss xmm1, dword [ebp - 0x114]
movaps xmm0, xmm1
comiss xmm5, xmm0
jbe 0x1004a639
nop dword [eax]
addss xmm0, xmm4
comiss xmm5, xmm0
ja 0x1004a630
comiss xmm0, xmm6
jbe 0x1004a649
nop
subss xmm0, xmm4
comiss xmm0, xmm6
ja 0x1004a640
movaps xmm1, xmm7
xorps xmm1, xmmword [0x1005e060]
comiss xmm1, xmm2
jbe 0x1004a65d
movaps xmm3, xmm1
jmp 0x1004a664
movaps xmm3, xmm7
minss xmm3, xmm2
comiss xmm1, xmm0
ja 0x1004a670
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 0x1004a6b7
mov dword [0x1010e55c], 1
mov dword [0x10061168], 0xffffffff
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10054550
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x1c], 0
jne 0x1004a6a3
cmp dword [ebp + 8], 0
jne 0x1004a6a3
mov dword [0x1010e55c], 0
jmp 0x1004a6ad
mov ecx, dword [ebp - 4]
xor ecx, ebp
mov dword [0x1010e55c], 1
mov dword [0x10061168], 0xffffffff
call fcn.10054550
mov esp, ebp
pop ebp
ret