Function at 0x1005c940
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
cmp byte [0x1017de94], 0
push ebx
push esi
push edi
jne 0x1005c967
movss xmm0, dword [0x1017de8c]
comiss xmm0, dword [0x1017de88]
jbe 0x1005cac4
mov ecx, dword [0x100fc31c]
lea edx, [ebp - 0x10]
push edx
lea edx, [ebp - 0x14]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x180]
call eax
push 1
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edx, dword [0x100fb794]
mov esi, dword [ebp - 0x14]
mov edi, dword [ebp - 0x10]
movzx ebx, ax
mov eax, dword [0x100fb78c]
mov ecx, eax
shr ebx, 0xf
sub ecx, edx
and bl, 1
cmp esi, ecx
jle 0x1005c9fc
add eax, edx
cmp esi, eax
jge 0x1005c9fc
mov ecx, dword [0x100fb790]
sub ecx, edx
lea eax, [ecx - 0xa]
cmp edi, eax
jle 0x1005c9fc
cmp edi, ecx
jge 0x1005c9fc
test bl, bl
je 0x1005c9fc
cmp byte [0x1017d9d4], 0
mov byte [0x1017d9d5], 1
jne 0x1005ca05
mov eax, edx
mov byte [0x1017d9d4], 1
sub eax, dword [0x100fb790]
mov ecx, esi
sub ecx, dword [0x100fb78c]
add eax, edi
mov dword [0x1017ec30], ecx
mov dword [0x1017ec34], eax
jmp 0x1005ca10
cmp byte [0x1017d9d5], 0
je 0x1005ca22
mov eax, dword [0x1017ec34]
mov ecx, dword [0x1017ec30]
sub esi, ecx
sub edx, eax
add edx, edi
mov dword [0x100fb78c], esi
mov dword [0x100fb790], edx
test bl, bl
jne 0x1005ca32
mov byte [0x1017d9d5], bl
mov byte [0x1017d9d4], bl
mov ecx, dword [0x100fc31c]
movss xmm0, dword [0x1017de84]
push ecx
movss dword [esp], xmm0
mov eax, dword [ecx]
mov eax, dword [eax + 0x1b0]
call eax
mov edi, dword [0x100fb794]
mov eax, dword [0x100fb790]
mov ecx, dword [0x100fc31c]
sub eax, edi
mov ebx, dword [0x100fb78c]
mov dword [ebp - 0x14], eax
sub ebx, edi
movzx eax, byte [0x100f92f3]
mov esi, dword [ecx]
push eax
movzx eax, byte [0x100f92f2]
push eax
mov eax, dword [0x100f92f0]
movzx edx, ah
movzx eax, al
push edx
push eax
mov eax, dword [esi + 0x2c]
call eax
mov ecx, dword [0x100fc31c]
lea eax, [ebx + edi*2]
mov esi, dword [ebp - 0x14]
push esi
push eax
mov edx, dword [ecx]
lea eax, [esi - 0xa]
push eax
push ebx
mov eax, dword [edx + 0x30]
call eax
mov ecx, dword [0x100fc31c]
push ecx
mov dword [esp], 0x3f800000
mov eax, dword [ecx]
mov eax, dword [eax + 0x1b0]
call eax
mov eax, dword [0x100f92f0]
mov ecx, dword [0x100fc31c]
mov ebx, dword [0x100fb790]
mov esi, dword [0x100fb78c]
mov edi, dword [0x100fb798]
mov edx, dword [ecx]
sub ebx, dword [0x100fb794]
sub esi, dword [0x100fb794]
mov dword [ebp - 0x14], eax
mov al, byte [0x100f92f2]
mov byte [ebp - 2], al
mov al, byte [0x100f9868]
mov byte [ebp - 3], ah
mov byte [ebp - 1], al
movzx eax, byte [0x100f9850]
push eax
mov eax, dword [edx + 0x2c]
push 0x1e
push 0x1e
push 0x1e
call eax
mov ecx, dword [0x100fc31c]
lea eax, [edi + ebx]
push eax
lea eax, [edi + esi]
push eax
mov edx, dword [ecx]
push ebx
push esi
mov eax, dword [edx + 0x30]
call eax
movzx eax, byte [ebp - 1]
mov ecx, dword [0x100fc31c]
mov ebx, dword [0x100fb790]
mov esi, dword [0x100fb78c]
mov edi, dword [0x100fb798]
sub ebx, dword [0x100fb794]
sub esi, dword [0x100fb794]
mov dword [ebp - 8], eax
movzx eax, byte [ebp - 2]
push dword [ebp - 8]
mov dword [ebp - 0xc], eax
movzx eax, byte [ebp - 3]
push dword [ebp - 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x10]
movzx edx, al
mov eax, dword [ecx]
push edx
mov dword [ebp - 0x14], edx
mov eax, dword [eax + 0x2c]
call eax
mov ecx, dword [0x100fc31c]
lea eax, [edi + ebx]
push eax
lea eax, [edi + esi]
push eax
mov edx, dword [ecx]
push ebx
push esi
mov eax, dword [edx + 0x38]
call eax
push dword [ebp - 8]
mov ecx, dword [0x100fc31c]
push dword [ebp - 0xc]
mov esi, dword [0x100fb794]
push dword [ebp - 0x10]
mov eax, dword [ecx]
push dword [ebp - 0x14]
mov ebx, dword [0x100fb790]
mov edi, dword [0x100fb78c]
mov eax, dword [eax + 0x2c]
call eax
mov ecx, dword [0x100fc31c]
lea eax, [esi - 1]
add eax, ebx
sub ebx, esi
push eax
push edi
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
push ebx
push edi
call eax
push dword [ebp - 8]
mov ecx, dword [0x100fc31c]
push dword [ebp - 0xc]
mov esi, dword [0x100fb790]
push dword [ebp - 0x10]
mov eax, dword [ecx]
push dword [ebp - 0x14]
mov edi, dword [0x100fb794]
mov ebx, dword [0x100fb78c]
mov eax, dword [eax + 0x2c]
call eax
mov ecx, dword [0x100fc31c]
lea eax, [edi - 1]
push esi
add eax, ebx
sub ebx, edi
push eax
mov edx, dword [ecx]
push esi
push ebx
mov eax, dword [edx + 0x3c]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret