Function at 0x1004fc30
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10076f10
mov eax, dword fs:[0]
push eax
sub esp, 0x40
mov eax, dword [0x10089040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push dword [0x10089318]
mov ebx, dword [sym.imp.USER32.dll_GetAsyncKeyState]
call ebx
test al, 1
je 0x1004fc7e
cmp byte [0x10119e9c], 0
sete al
mov byte [0x10119e9c], al
jmp 0x1004fc83
mov al, byte [0x10119e9c]
test al, al
jne 0x1004fc98
push dword [0x10089310]
call ebx
test ax, ax
je 0x1004ff45
cmp dword [0x1011bec8], 0
je 0x1004ff61
cmp byte [0x1011bed4], 0
mov dword [0x1011becc], 0
je 0x1004fd7f
mov ecx, dword [0x10119ea0]
test ecx, ecx
je 0x1004fd7f
cmp dword [ecx + 0x448], 0
je 0x1004ff57
mov eax, dword [ecx + 8]
not eax
test al, 2
je 0x1004ff57
cmp byte [0x10119e88], 0
jne 0x1004fd11
add ecx, 0x57c
mov dword [ebp - 4], 0
jmp 0x1004fd1e
mov esi, dword [0x1011becc]
mov dword [0x10119ea0], 0
jmp 0x1004fd9a
add ecx, 0x5ac
mov dword [ebp - 4], 1
mov eax, dword [0x10119eac]
push 0
push 0x1201
push 0
push 0
push 0
add eax, 0x18
cmp byte [0x10119e94], 0
push ecx
push eax
lea eax, [ebp - 0x40]
push eax
jne 0x1004fd54
mov eax, dword [0x10119e8c]
mov eax, dword [eax + 0x88]
call eax
add esp, 0x20
jmp 0x1004fd5f
push 0x1e
call dword [0x10119e98]
add esp, 0x24
movss xmm0, dword [ebp - 0x3c]
ucomiss xmm0, dword [0x100835fc]
lahf
test ah, 0x44
jp 0x1004fcfc
mov esi, dword [0x10119ea0]
mov dword [0x1011becc], esi
jmp 0x1004fd9a
call fcn.10050350
mov esi, eax
mov dword [0x1011becc], esi
test esi, esi
je 0x1004ff61
mov dword [0x10119ea0], esi
test esi, esi
je 0x1004ff61
cmp byte [0x10119e88], 0
mov edi, dword [0x1011bec8]
jne 0x1004fdcb
movss xmm0, dword [esi + 0x57c]
movss xmm1, dword [esi + 0x580]
movss xmm2, dword [esi + 0x584]
jmp 0x1004fde3
movss xmm0, dword [esi + 0x5ac]
movss xmm1, dword [esi + 0x5b0]
movss xmm2, dword [esi + 0x5b4]
subss xmm0, dword [edi + 0x14]
subss xmm1, dword [edi + 0x18]
subss xmm2, dword [edi + 0x1c]
mulss xmm0, xmm0
mulss xmm1, xmm1
mulss xmm2, xmm2
addss xmm0, xmm1
xorps xmm1, xmm1
addss xmm0, xmm2
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x1004fe18
sqrtsd xmm0, xmm0
jmp 0x1004fe1d
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
mov eax, dword [edi + 0xb0]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
cmp eax, 4
je 0x1004fe70
cmp eax, 5
je 0x1004fe70
cmp eax, 9
je 0x1004fe70
cmp eax, 0xa
je 0x1004fe70
cmp eax, 0xb
jne 0x1004fe4d
movss xmm0, dword [0x10083720]
jmp 0x1004fe82
cmp eax, 0xf
jne 0x1004fe5c
movss xmm0, dword [0x1008372c]
jmp 0x1004fe82
cmp eax, 8
je 0x1004fe66
cmp eax, 7
jne 0x1004fe7a
movss xmm0, dword [0x10083730]
jmp 0x1004fe82
movss xmm0, dword [0x10083734]
jmp 0x1004fe82
movss xmm0, dword [0x10083738]
cmp byte [0x10119e88], 0
divss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esi + 0x28]
jne 0x1004fec3
addss xmm0, dword [esi + 0x57c]
movss dword [ebp - 0x4c], xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esi + 0x2c]
mulss xmm1, dword [esi + 0x30]
addss xmm0, dword [esi + 0x580]
addss xmm1, dword [esi + 0x584]
jmp 0x1004feed
addss xmm0, dword [esi + 0x5ac]
movss dword [ebp - 0x4c], xmm0
movaps xmm0, xmm1
mulss xmm0, dword [esi + 0x2c]
mulss xmm1, dword [esi + 0x30]
addss xmm0, dword [esi + 0x5b0]
addss xmm1, dword [esi + 0x5b4]
movss dword [ebp - 0x48], xmm0
cvtps2pd xmm0, xmm1
push ecx
lea ecx, [ebp - 0x4c]
addsd xmm0, qword [0x10083658]
cvtpd2ps xmm0, xmm0
movss dword [ebp - 0x44], xmm0
call fcn.1004ff90
mov eax, dword [0x10119ec4]
add esp, 4
mov byte [0x1011bed4], 1
movss xmm0, dword [eax + 4]
addss xmm0, dword [0x1011bed8]
movss dword [eax + 4], xmm0
mov eax, dword [0x10119ec4]
movss xmm0, dword [eax]
addss xmm0, dword [0x10119ea4]
movss dword [eax], xmm0
push dword [0x10089310]
call ebx
test ax, ax
jne 0x1004ff61
mov byte [0x1011bed4], al
mov dword [0x10119ea0], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10074ff7
mov esp, ebp
pop ebp
ret