Function at 0x1004a610
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x10187080]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [0x1018b24b], 0
je 0x1004a8e3
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x18], 0
call fcn.10027530
mov ecx, eax
call fcn.10041420
lea edx, [ebp - 0x18]
mov ecx, eax
call fcn.100414c0
push dword [ebp - 0x18]
lea ecx, [ebp - 0x14]
call fcn.10029d10
add esp, 4
cmp dword [ebp - 0x14], 0
je 0x1004a8e3
push esi
lea eax, [ebp - 0x24]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 0x1c]
call fcn.10042530
lea ecx, [ebp - 0x20]
call fcn.1002b1c0
lea eax, [ebp - 8]
push eax
push dword [ebp - 0x20]
lea edx, [ebp - 0xc]
lea ecx, [ebp - 0x10]
call fcn.1003cfd0
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
add esp, 0x14
push 0xa0
call esi
test ax, ax
jns 0x1004a6bd
mov byte [0x1018afa9], 0
jmp 0x1004a6d2
mov edx, 6
mov byte [0x1018afa9], 1
call fcn.10032960
test al, al
je 0x1004a6e2
push dword [ebp - 0x14]
movss xmm1, dword [ebp - 8]
call fcn.10042160
add esp, 4
push 0x57
call esi
test ax, ax
jns 0x1004a6f4
mov byte [0x1018af17], 0
jmp 0x1004a709
mov edx, 7
mov byte [0x1018af17], 1
call fcn.10032960
test al, al
je 0x1004a71c
push dword [ebp - 0x14]
movss xmm1, dword [0x1017e4d4]
call fcn.1004c410
add esp, 4
push 0x41
call esi
test ax, ax
jns 0x1004a72e
mov byte [0x1018aeeb], 0
jmp 0x1004a75a
push 0x25
mov byte [0x1018aeeb], 1
call esi
test ax, ax
jns 0x1004a747
mov byte [0x1018aeb3], 0
jmp 0x1004a75a
cmp dword [ebp - 0x1c], 0xffffff81
mov byte [0x1018aeb3], 1
jne 0x1004a79b
cmp dword [ebp - 0x18], 0
jne 0x1004a79b
movss xmm2, dword [0x1017e550]
sub esp, 8
xor edx, edx
xorps xmm3, xmm3
xor ecx, ecx
push 1
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
push dword [ebp - 0x14]
call fcn.10041f10
add esp, 0x20
push 0x44
call esi
test ax, ax
jns 0x1004a7ad
mov byte [0x1018aef1], 0
jmp 0x1004a7d9
push 0x27
mov byte [0x1018aef1], 1
call esi
test ax, ax
jns 0x1004a7c6
mov byte [0x1018aeb7], 0
jmp 0x1004a7d9
cmp dword [ebp - 0x1c], 0x7f
mov byte [0x1018aeb7], 1
jne 0x1004a81a
cmp dword [ebp - 0x18], 0
jne 0x1004a81a
movss xmm2, dword [0x1017e49c]
sub esp, 8
xor edx, edx
xorps xmm3, xmm3
xor ecx, ecx
push 1
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0
push dword [ebp - 0x14]
call fcn.10041f10
add esp, 0x20
push 0x28
call esi
test ax, ax
jns 0x1004a82c
mov byte [0x1018aeb9], 0
jmp 0x1004a83f
cmp dword [ebp - 0x1c], 0
mov byte [0x1018aeb9], 1
jne 0x1004a87e
cmp dword [ebp - 0x18], 0x7f
jne 0x1004a87e
sub esp, 8
mov edx, 1
xorps xmm3, xmm3
xorps xmm2, xmm2
xor ecx, ecx
push 1
sub esp, 0x10
mov dword [esp + 0xc], 0x42c80000
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0
mov dword [esp], 0x41200000
push dword [ebp - 0x14]
call fcn.10041f10
add esp, 0x20
push 0x26
call esi
pop esi
test ax, ax
jns 0x1004a891
mov byte [0x1018aeb5], 0
jmp 0x1004a8a4
cmp dword [ebp - 0x1c], 0
mov byte [0x1018aeb5], 1
jne 0x1004a8e3
cmp dword [ebp - 0x18], 0xffffff81
jne 0x1004a8e3
sub esp, 8
mov edx, 1
xorps xmm3, xmm3
xorps xmm2, xmm2
xor ecx, ecx
push 1
sub esp, 0x10
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x3f800000
mov dword [esp + 4], 0
mov dword [esp], 0xc1200000
push dword [ebp - 0x14]
call fcn.10041f10
add esp, 0x20
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1004ecf8
mov esp, ebp
pop ebp
ret