Function at 0x446580
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
mov eax, dword [0x510ae0]
push ebx
mov ebx, dword [ebp + 8]
push esi
test eax, eax
push edi
mov dword [esp + 0x10], 0x3d4ccccd
mov dword [esp + 0x14], 0x41700000
je 0x4465b6
push ebx
push str.pick_command___d_
call fcn.0043bb00
add esp, 8
mov eax, dword [0x4ed8ac]
push eax
call fcn.0043b7e0
add esp, 4
test eax, eax
jne case.0x44667d.125
push 0x44
call fcn.0040d2a0
add esp, 4
test eax, eax
je case.0x44667d.125
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
push 0x10
call edi
mov si, ax
push 0x90
and si, 0xfffe
neg si
sbb esi, esi
neg esi
call dword [sym.imp.USER32.dll_GetKeyState]
test al, 1
je 0x44662c
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x446615
mov eax, dword [0x4ed8bc]
test eax, eax
jne 0x446625
call fcn.00477370
sub eax, dword [0x4ed8c0]
cmp eax, 0x14
jae 0x44662c
mov esi, 1
jmp 0x446630
test esi, esi
je 0x4466a4
test esi, esi
mov dword [0x4ed8bc], 1
je 0x446669
push 0x11
mov dword [esp + 0x14], 0x3ba3d70a
mov dword [esp + 0x18], 0x3fc00000
call edi
and al, 0xfe
test ax, ax
je 0x446669
mov dword [esp + 0x10], 0x3a83126f
mov dword [esp + 0x14], 0x3dcccccd
lea eax, [ebx - 0x6c]
cmp eax, 0x43
ja case.0x44667d.125
xor ecx, ecx
mov cl, byte [eax + 0x4468a0]
jmp dword [ecx*4 + 0x446858]
fld dword [esp + 0x10]
sub esp, 8
fstp qword [esp]
push 3
call fcn.004468f0
add esp, 0xc
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [0x4ed8bc], 0
jmp 0x446669
fld dword [esp + 0x10]
sub esp, 8
fstp qword [esp]
push 1
call fcn.004468f0
add esp, 0xc
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld dword [esp + 0x10]
sub esp, 8
fstp qword [esp]
push 2
call fcn.004468f0
add esp, 0xc
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld dword [esp + 0x10]
sub esp, 8
fstp qword [esp]
push 0
call fcn.004468f0
add esp, 0xc
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld dword [esp + 0x10]
sub esp, 8
fstp qword [esp]
call fcn.00446dd0
add esp, 8
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld dword [esp + 0x10]
sub esp, 8
fstp qword [esp]
call fcn.00446d40
add esp, 8
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00446b80
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00446ac0
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4ed8d0]
test eax, eax
je 0x44684c
mov edx, dword [esp + 0x14]
push 0x4cc060
push edx
call fcn.00446e60
add esp, 8
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4ed8d0]
test eax, eax
je 0x44684c
push 0x4cc060
jmp 0x446807
mov eax, dword [esp + 0x14]
push 0x4cc070
push eax
call fcn.00446e60
add esp, 8
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x4cc070
jmp 0x446807
mov eax, dword [0x4ed8d0]
test eax, eax
je 0x44684c
mov ecx, dword [esp + 0x14]
push 0x4cc080
push ecx
call fcn.00446e60
add esp, 8
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4ed8d0]
test eax, eax
je 0x44684c
push 0x4cc080
fld dword [esp + 0x18]
push ecx
fchs
fstp dword [esp]
call fcn.00446e60
add esp, 8
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.004472f0
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00447520
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.00447680
call fcn.00446a80
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret