Function at 0x1007fce0
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword fs:[0x2c]
mov edx, dword [0x10213bc0]
push ebx
push ebp
push esi
mov esi, dword [eax + edx*4]
mov ebx, ecx
mov eax, dword [0x1024c64c]
push edi
cmp eax, dword [esi + 4]
jle 0x1007fd50
push 0x1024c64c
call fcn.10177088
add esp, 4
cmp dword [0x1024c64c], 0xffffffff
jne 0x1007fd50
push 0x1017f520
mov dword [0x1024c5a8], 0
mov dword [0x1024c5a4], 0
mov dword [0x1024c5a0], 0
call fcn.10176fec
add esp, 4
push 0x1024c64c
call fcn.10177037
add esp, 4
mov eax, dword [0x1024c5e4]
cmp eax, dword [esi + 4]
jle 0x1007fdab
push 0x1024c5e4
call fcn.10177088
add esp, 4
cmp dword [0x1024c5e4], 0xffffffff
jne 0x1007fdab
push 0x1017f510
mov dword [0x1024c664], 0
mov dword [0x1024c660], 0
mov dword [0x1024c65c], 0
call fcn.10176fec
add esp, 4
push 0x1024c5e4
call fcn.10177037
add esp, 4
cmp byte [0x1024aa02], 0
lea edi, [ebx + 0x30]
mov eax, dword [edi]
mov esi, edi
mov dword [0x10245524], eax
je 0x1007ff29
push dword [0x1024a2e0]
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1007ff26
mov ebp, dword [0x10249c14]
test ebp, ebp
je 0x1007ffcb
mov eax, dword [0x10249c10]
test eax, eax
jne 0x1007fe1e
mov edx, 0xe80c2f78
mov ecx, 0x101e7481
call fcn.10004820
mov edx, 0xc10bf213
mov ecx, 0x101e73a9
mov esi, eax
call fcn.10004820
mov edx, esi
mov ecx, eax
call fcn.10113840
mov dword [0x10249c10], eax
cmp dword [eax + ebp], 0
jle 0x1007ffcb
movss xmm0, dword [0x1024c5a0]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1007feac
movss xmm0, dword [0x1024c5a4]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1007feac
movss xmm0, dword [0x1024c5a8]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jp 0x1007feac
movss xmm0, dword [ebx + 0xc]
mov eax, dword [esp + 0x1c]
movss dword [0x1024c5a0], xmm0
movss xmm0, dword [ebx + 0x10]
movss dword [0x1024c5a4], xmm0
movss xmm0, dword [ebx + 0x14]
movss dword [0x1024c5a8], xmm0
movq xmm0, qword [esp + 0x14]
movq qword [0x1024c65c], xmm0
mov dword [0x1024c664], eax
mov ecx, dword [edi]
shr ecx, 2
and cl, 1
mov byte [0x1024aa03], cl
jmp 0x1007feb2
mov cl, byte [0x1024aa03]
xor eax, eax
mov dword [ebx + 0x24], 0
mov dword [ebx + 0x28], 0
mov dword [edi], 0
test cl, cl
je 0x1007fed7
mov dword [edi], 4
mov eax, 4
cmp byte [0x1024a9b9], 0
je 0x1007fee5
or eax, 1
mov dword [edi], eax
cmp byte [0x1024a9a8], 0
je 0x1007fef3
or eax, 0x20
mov dword [edi], eax
movss xmm0, dword [0x1024c5a0]
movss dword [ebx + 0xc], xmm0
movss xmm0, dword [0x1024c5a4]
movss dword [ebx + 0x10], xmm0
movss xmm0, dword [0x1024c5a8]
movss dword [ebx + 0x14], xmm0
mov byte [0x1024a9b8], 1
pop edi
pop esi
pop ebp
pop ebx
ret
lea esi, [ebx + 0x30]
cmp byte [0x1024a9b8], 0
je 0x1007ffad
mov ecx, dword [0x10213bfc]
push 0x1024c65c
mov eax, dword [ecx]
mov eax, dword [eax + 0x4c]
call eax
cmp byte [0x1024aa03], 0
movss xmm0, dword [0x1024c5a0]
movss dword [ebx + 0xc], xmm0
movss xmm0, dword [0x1024c5a4]
movss dword [ebx + 0x10], xmm0
movss xmm0, dword [0x1024c5a8]
movss dword [ebx + 0x14], xmm0
je 0x1007ff79
or dword [edi], 4
mov edi, esi
cmp byte [0x1024a9b9], 0
je 0x1007ff85
or dword [edi], 1
cmp byte [0x1024a9a8], 0
je 0x1007ff91
or dword [edi], 0x20
mov byte [0x1024aa03], 0
mov byte [0x1024a9b9], 0
mov byte [0x1024a9a8], 0
mov byte [0x1024a9b8], 0
mov dword [0x1024c5a0], 0
mov dword [0x1024c5a4], 0
mov dword [0x1024c5a8], 0
pop edi
pop esi
pop ebp
pop ebx
ret