Function at 0x1005fbd0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1007f23d
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x10096018]
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
mov eax, dword [0x1009a3e0]
mov al, byte [eax + 0x44]
test al, al
je 0x10060075
cmp byte [0x1009a359], 0
xorps xmm1, xmm1
mov edi, dword [0x1009a2a4]
mov esi, dword [0x1009a2a0]
mov ebx, dword [0x1009a2ec]
je 0x1005fc63
mov ecx, ebx
mov eax, 0x6bca1af3
sub ecx, dword [0x1009a2e8]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x1005fc78
mov ecx, dword [0x1009a304]
mov eax, 0x6bca1af3
sub ecx, dword [0x1009a300]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x1005fc78
cmp byte [0x1009a2ad], 0
je 0x1005fd5a
cmp esi, edi
je 0x1005fd5a
cmp byte [0x1009a359], 0
je 0x1005fd14
sub ebx, dword [0x1009a2e8]
mov eax, 0x6bca1af3
imul ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x1005fcbd
mov ecx, dword [0x1009a304]
mov eax, 0x6bca1af3
sub ecx, dword [0x1009a300]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x1005fd14
mov ecx, dword [0x1009a304]
mov eax, 0x6bca1af3
sub ecx, dword [0x1009a300]
mov esi, 0x1009a2e8
imul ecx
mov eax, 0x6bca1af3
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, 0x1009a300
cmove edx, esi
mov ecx, dword [edx + 4]
mov esi, dword [edx]
sub ecx, esi
imul ecx
mov ecx, dword [0x1009a340]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, ecx
jbe 0x1005fd10
imul eax, ecx, 0x4c
add eax, esi
jmp 0x1005fd47
xor eax, eax
jmp 0x1005fd47
mov eax, dword [0x1009a278]
cmp esi, edi
jne 0x1005fd22
xorps xmm0, xmm0
jmp 0x1005fd6f
mov ecx, dword [esi]
cmp ecx, eax
ja 0x1005fd2d
cmp dword [esi + 4], eax
jae 0x1005fd3c
add esi, 0x3110
cmp esi, edi
jne 0x1005fd22
movaps xmm0, xmm1
jmp 0x1005fd6f
sub eax, ecx
imul eax, eax, 0x4c
add eax, dword [esi + 0x3104]
movaps xmm0, xmm1
test eax, eax
je 0x1005fd6f
movss xmm0, dword [eax + 0xc]
movss xmm1, dword [eax + 0x10]
jmp 0x1005fd6f
mov eax, dword [0x1009602c]
movss xmm0, dword [eax + 0x25680]
movss xmm1, dword [eax + 0x25684]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
call fcn.10005350
mov eax, dword fs:[0x2c]
mov ecx, dword [0x10096b1c]
cvttss2si esi, xmm0
mov edi, dword [eax + ecx*4]
mov eax, dword [0x1009d600]
cmp eax, dword [edi + 4]
jle 0x1005fdd7
push 0x1009d600
call fcn.1007a1d6
add esp, 4
cmp dword [0x1009d600], 0xffffffff
jne 0x1005fdd7
mov dword [ebp - 4], 0
mov dword [0x1009d604], esi
mov dword [ebp - 4], 0xffffffff
push 0x1009d600
call fcn.1007a18c
add esp, 4
mov eax, dword [0x1009d608]
cmp eax, dword [edi + 4]
mov edi, dword [sym.imp.WINMM.dll_timeGetTime]
jle 0x1005fe28
push 0x1009d608
call fcn.1007a1d6
add esp, 4
cmp dword [0x1009d608], 0xffffffff
jne 0x1005fe28
mov dword [ebp - 4], 1
call edi
sub eax, dword [0xcc18c84]
mov dword [0x1009d60c], eax
mov dword [ebp - 4], 0xffffffff
push 0x1009d608
call fcn.1007a18c
add esp, 4
call edi
sub eax, dword [0xcc18c84]
sub eax, dword [0x1009d60c]
movss xmm1, dword [0x1008e4f4]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1008e990]
cvtpd2ps xmm2, xmm0
movd xmm0, dword [0x79445c]
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
divss xmm1, dword [0x1008e414]
comiss xmm2, xmm1
jbe 0x1005fecd
call edi
sub eax, dword [0xcc18c84]
mov dword [0x1009d60c], eax
mov dword [0x1009a1e8], 0x437f0000
cmp esi, dword [0x1009d604]
jle 0x1005fe9d
mov dword [0x1009a1dc], 0
jmp 0x1005feb3
mov dword [0x1009a1dc], 0x437f0000
mov dword [0x1009a1e0], 0
jl 0x1005febd
mov dword [0x1009a1e0], 0x437f0000
mov dword [0x1009a1e4], 0
mov dword [0x1009d604], esi
mov eax, dword [0x1009a424]
cmp byte [eax + 0x44], 0
jne 0x1005feec
push esi
lea eax, [ebp - 0x24]
push 0x1008b440
push eax
call fcn.10064730
add esp, 0xc
jmp 0x1005ff30
push 0x20
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1005ff12
mov eax, dword [0x1009a454]
cmp byte [eax + 0x44], 0
je 0x1005ff12
cmp byte [0xcc1b704], 0
mov eax, str._hold_333_
jne 0x1005ff17
mov eax, 0x10083477
push eax
push dword [0x10099c90]
lea eax, [ebp - 0x24]
push esi
push str._i_n_i__s
push eax
call fcn.10064730
add esp, 0x14
push 4
push str.decode_characters
mov edi, 0x5f2a80
mov byte [ebp - 0x11], 0
call edi
push 4
push str.decode_characters_glow
mov esi, eax
call edi
mov ecx, dword [0x1009a3e0]
mov edi, eax
mov eax, dword [0x79760c]
add esp, 0x10
mov ebx, dword [0x1009a3e4]
movss xmm2, dword [0x1008e4f8]
add ebx, 0x28
mov ecx, dword [ecx + 0x38]
movss xmm0, dword [ecx + 0xc]
movss xmm1, dword [ecx + 8]
movss dword [ebp - 0x30], xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
comiss xmm2, xmm1
addsd xmm0, qword [eax*8 + 0x1008e990]
cvtpd2ps xmm0, xmm0
jb 0x1005ffac
divss xmm2, xmm0
divss xmm1, xmm2
movss dword [ebp - 0x28], xmm1
jmp 0x1005ffb9
divss xmm0, xmm2
mulss xmm0, xmm1
movss dword [ebp - 0x28], xmm0
mov eax, dword [0x797608]
movss xmm1, dword [ecx + 4]
movss xmm2, dword [0x1008e500]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
comiss xmm2, xmm1
addsd xmm0, qword [eax*8 + 0x1008e990]
cvtpd2ps xmm0, xmm0
jb 0x1005fff7
divss xmm2, xmm0
divss xmm1, xmm2
movss dword [ebp - 0x2c], xmm1
jmp 0x10060004
divss xmm0, xmm2
mulss xmm0, xmm1
movss dword [ebp - 0x2c], xmm0
push 4
push str.fonts_objectivefont
mov eax, 0x5f1ec0
call eax
add esp, 8
movss xmm0, dword [ebp - 0x30]
push 0x7d0
push 0x3e8
push 0x1f4
push 0
push edi
push esi
push ebx
push 3
push 0x1009a1dc
sub esp, 0x14
mov dword [esp + 0x10], 0
movss dword [esp + 0xc], xmm0
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x28]
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x2c]
movss dword [esp], xmm0
push eax
lea eax, [ebp - 0x24]
push 0x7fffffff
push eax
mov eax, 0x5f6d30
call eax
add esp, 0x44
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.1007a095
mov esp, ebp
pop ebp
ret