Function at 0x1005a1c0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x28
cmp byte [0x100b6e14], 0
push esi
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push edi
je 0x1005a1f6
cmp byte [0x100b6e15], 1
jne 0x1005a249
mov eax, dword [0x100b6e0c]
push dword [eax*4 + 0x1007b480]
call esi
test ax, ax
jne 0x1005a249
mov eax, dword [0x1008dcf8]
mov ecx, dword [eax]
call dword [0x1008dce4]
mov edi, eax
push 4
push edi
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x1005a249
test edi, edi
je 0x1005a249
mov eax, dword [edi + 4]
movss xmm0, dword [eax + 0xc8]
movss dword [0x100b4e18], xmm0
movss xmm0, dword [eax + 0xcc]
movss dword [0x100b4e20], xmm0
movss xmm0, dword [eax + 0xd0]
movss dword [0x1008dccc], xmm0
cmp byte [0x100b6e14], 1
jne 0x1005a59c
cmp byte [0x100b6e15], 0
je 0x1005a276
mov eax, dword [0x100b6e0c]
push dword [eax*4 + 0x1007b480]
call esi
test ax, ax
jns 0x1005a59c
mov eax, dword [0x100b6d90]
movss xmm0, dword [eax + 0x54]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [eax + 0x58]
mov eax, dword [0x100b6e18]
movss dword [esp + 0xc], xmm0
test eax, eax
jne 0x1005a2e6
push 0x57
call esi
shr eax, 0xf
and eax, 0xffffff01
push 0x53
mov dword [esp + 0x1c], eax
call esi
shr eax, 0xf
and eax, 0xffffff01
push 0x41
mov dword [esp + 0x18], eax
call esi
shr eax, 0xf
and eax, 0xffffff01
push 0x44
mov dword [esp + 0x14], eax
call esi
movss xmm0, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
shr eax, 0xf
and eax, 0xffffff01
jmp 0x1005a343
cmp eax, 1
jne 0x1005a32b
push 0x26
call esi
shr eax, 0xf
and al, 1
push 0x28
mov byte [esp + 0x1c], al
call esi
shr eax, 0xf
and al, 1
push 0x25
mov byte [esp + 0x18], al
call esi
shr eax, 0xf
and al, 1
push 0x27
mov dword [esp + 0x14], eax
call esi
movss xmm0, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
shr eax, 0xf
and al, 1
jmp 0x1005a343
mov al, byte [esp + 0xb]
mov cl, byte [esp + 0xb]
mov dl, byte [esp + 0xb]
mov dword [esp + 0x18], eax
mov al, byte [esp + 0xb]
mov dword [esp + 0x10], ecx
cmp byte [esp + 0x18], 0
movss xmm1, dword [0x1008d3f4]
movss xmm3, dword [0x100896e4]
movss xmm2, dword [0x100896bc]
mov dword [esp + 0x1c], eax
jne 0x1005a389
test dl, dl
jne 0x1005a37f
test cl, cl
jne 0x1005a43f
test al, al
je 0x1005a55b
jmp 0x1005a4dd
movss xmm2, dword [0x10089834]
jmp 0x1005a391
movss xmm2, dword [0x10089698]
divss xmm1, xmm3
cvtps2pd xmm0, xmm0
mulss xmm1, xmm2
movss dword [esp + 0x18], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x18]
addss xmm0, dword [0x100b4e18]
movss dword [0x100b4e18], xmm0
movss xmm0, dword [esp + 0x20]
xorps xmm0, xmmword [0x10089c40]
cvtss2sd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [esp + 0x18]
addss xmm1, dword [0x100b4e20]
movss dword [0x100b4e20], xmm1
movss xmm1, dword [esp + 0xc]
cvtps2pd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
cmp byte [esp + 0x10], 0
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x18]
addss xmm0, dword [0x1008dccc]
movss dword [0x1008dccc], xmm0
je 0x1005a4ba
movss xmm1, dword [0x1008d3f4]
movss xmm3, dword [0x100896e4]
movss xmm2, dword [0x100896bc]
movss xmm0, dword [esp + 0xc]
divss xmm1, xmm3
subss xmm0, xmm2
movss dword [esp + 0x18], xmm1
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x20], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
xorps xmm0, xmm0
mulss xmm1, dword [esp + 0x18]
addss xmm1, dword [0x100b4e18]
movss dword [0x100b4e18], xmm1
movss xmm1, dword [0x100b4e20]
addss xmm1, xmm0
movsd xmm0, qword [esp + 0x20]
movss dword [0x100b4e20], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x18]
addss xmm0, dword [0x1008dccc]
movss dword [0x1008dccc], xmm0
cmp byte [esp + 0x1c], 0
je 0x1005a55b
movss xmm1, dword [0x1008d3f4]
movss xmm3, dword [0x100896e4]
movss xmm2, dword [0x100896bc]
movss xmm0, dword [esp + 0xc]
divss xmm1, xmm3
addss xmm0, xmm2
movss dword [esp + 0x1c], xmm1
movss dword [esp + 0xc], xmm0
cvtps2pd xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sin_precise
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
xorps xmm0, xmm0
mulss xmm1, dword [esp + 0x1c]
addss xmm1, dword [0x100b4e18]
movss dword [0x100b4e18], xmm1
movss xmm1, dword [0x100b4e20]
addss xmm1, xmm0
movss dword [0x100b4e20], xmm1
movss xmm1, dword [esp + 0xc]
cvtps2pd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_cos_precise
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [esp + 0x1c]
addss xmm0, dword [0x1008dccc]
movss dword [0x1008dccc], xmm0
movss xmm2, dword [0x100b4e18]
sub esp, 0xc
movss xmm1, dword [0x100b4e20]
mov ecx, esp
movss xmm0, dword [0x1008dccc]
unpcklps xmm2, xmm1
movss dword [esp + 0x34], xmm0
mov eax, dword [esp + 0x34]
movq qword [ecx], xmm2
mov dword [ecx + 8], eax
call fcn.10059e40
add esp, 0xc
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
pop edi
pop esi
mov esp, ebp
pop ebp
ret