Function at 0x41f470
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0xc
lea eax, [ecx - 9]
cmp eax, 0x6e
push ebx
push ebp
push esi
push edi
ja case.0x41f48b.25
xor ecx, ecx
mov cl, byte [eax + 0x41f80c]
jmp dword [ecx*4 + 0x41f7c8]
mov byte [0x4b64d0], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov byte [0x4b64d1], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov byte [0x4b64d2], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov byte [0x4b64d3], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov byte [0x4b64d4], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov byte [0x4b64d5], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [0x4b64d8]
mov byte [0x4b64d6], 0
test eax, eax
mov byte [0x4b64d7], 1
jne case.0x41f48b.25
mov eax, dword [0x51c070]
mov byte [0x4b64d7], 0
test eax, eax
je case.0x41f48b.25
mov eax, dword [0x4bf1c8]
test eax, eax
jne case.0x41f48b.25
push 0
mov ecx, 0x177c
call fcn.0044d8d0
mov ecx, eax
xor edx, edx
call fcn.004149a0
cmp eax, 1
jne case.0x41f48b.25
mov dword [0x496844], eax
mov al, byte [0x4b60f4]
test al, al
je case.0x41f48b.25
call fcn.00428bb0
mov cl, 1
call fcn.004281b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
inc dword [0x49e598]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [0x4b64d8]
test eax, eax
je case.0x41f48b.25
mov cl, byte [eax + 0xc]
test cl, cl
je case.0x41f48b.25
call fcn.00417270
cmp eax, 1
jl case.0x41f48b.25
cmp word [0x5164f8], 0
jne case.0x41f48b.25
mov ecx, dword [0x49e7c8]
test ecx, ecx
jne case.0x41f48b.25
mov cl, byte [0x4b60f4]
test cl, cl
jne case.0x41f48b.25
mov ebp, dword [0x4b64d8]
lea edi, [eax + eax*8]
shl edi, 5
mov ax, word [ebp + 0xe]
add edi, 0x49f7e8
test ax, ax
je 0x41f60b
xor ebx, ebx
test ax, ax
je 0x41f60b
lea esi, [ebp + 0x150]
mov ecx, esi
mov byte [esi + 0x14], 0
call fcn.00407eb0
xor edx, edx
inc ebx
mov dx, word [ebp + 0xe]
add esi, 0x28
cmp ebx, edx
jne 0x41f5f2
mov word [ebp + 0xe], 0
mov byte [edi], 0
mov byte [edi + 0x11a], 1
mov eax, dword [0x4b64d8]
mov ecx, edi
mov byte [eax + 6], 1
call dword [0x49e628]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [0x51c070]
test eax, eax
je case.0x41f48b.25
call fcn.0044b2b0
test eax, eax
je case.0x41f48b.25
mov al, byte [0x4b60f4]
test al, al
jne case.0x41f48b.25
mov ecx, 0xbb8
call fcn.0046b5e0
mov byte [0x51c094], 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, 0x80
jne 0x41f68e
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test ah, 0x80
je 0x41f69b
call fcn.0044ddf0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [0x51c070]
test eax, eax
je case.0x41f48b.25
mov al, byte [0x4b60f4]
test al, al
je 0x41f6c4
mov ecx, dword [0x4bf19c]
mov eax, dword [0x4bf1a4]
cmp ecx, eax
jne case.0x41f48b.25
cmp word [0x5164f8], 0
jne case.0x41f48b.25
mov eax, dword [0x49e7c8]
test eax, eax
jne case.0x41f48b.25
mov ecx, 2
call fcn.00438db0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
call fcn.0044e660
test al, al
je case.0x41f48b.25
call fcn.0044b370
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
call fcn.0044e730
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
call fcn.0044e380
test al, al
je case.0x41f48b.25
call fcn.0044b370
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov al, byte [0x4b60f4]
test al, al
jne case.0x41f48b.25
cmp word [0x5164f8], 0
jne case.0x41f48b.25
mov eax, dword [0x49e7c8]
test eax, eax
jne case.0x41f48b.25
mov dword [0x49e574], 0xd
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [0x51c070]
test eax, eax
je case.0x41f48b.25
mov al, byte [0x4b60f4]
test al, al
jne case.0x41f48b.25
push 0
push 0
xor edx, edx
mov ecx, str.SPOTBALLS
call fcn.004077a0
test eax, eax
je case.0x41f48b.25
mov eax, dword [0x51b7c4]
mov ecx, dword [0x51b7c8]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [0x51b7cc]
mov dword [edx + 4], ecx
mov dword [edx + 8], eax
call fcn.0044d7a0
and eax, 0xf
lea ecx, [esp + 0x1c]
push eax
push ecx
mov ecx, 0x49e570
call fcn.00410b60
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret