Function at 0x47c0b8
Capabilities:
Log keystrokes via polling

Disassembly:
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
push eax
push edx
push esi
push edi
call dword [sym.imp.USER32.dll_DefMDIChildProcA]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret 0x10
mov ebx, 0x3ec
jmp 0x47a0c8
call fcn.0046b9bc
test ebx, ebx
je 0x47a0ea
mov eax, dword [0x4cafa8]
test eax, eax
je 0x47a11e
push ebx
push 1
push eax
push edi
call dword [sym.imp.USER32.dll_WinHelpA]
jmp 0x4797d7
push 0
push dword [0x4cafa4]
push dword [0x44d4c54]
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
push eax
push edx
push esi
push edi
call dword [sym.imp.USER32.dll_DefWindowProcA]
mov ebx, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 4]
mov esp, ebp
pop ebp
ret 0x10
call fcn.0046b6dc
test eax, eax
je 0x47a12e
mov dword [0x4cafa8], eax
jmp 0x47a0da
mov eax, str.FQWIN.HLP
mov dword [0x4cafa8], eax
jmp 0x47a0da
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 8], edi
mov dword [ebp - 4], esi
mov dword [ebp - 0xc], ebx
mov esi, ecx
mov edi, edx
mov ebx, eax
mov byte [0x4cb018], 0
cmp edi, 0x2d
jne 0x47c0f2
movzx eax, si
cmp eax, 1
je 0x47c42c
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
and eax, 0x8000
push 0x11
xor edx, edx
cmp eax, 0x8000
sete dl
mov dword [ebp - 0x10], edx
call dword [sym.imp.USER32.dll_GetKeyState]
and eax, 0x8000
xor edx, edx
cmp eax, 0x8000
sete dl
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], edx
cmp eax, 1
je 0x47c13f
mov eax, edx
cmp eax, 1
je 0x47c13f
mov eax, 1
mov dword [ebp - 0x18], eax
jmp 0x47c144
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x15c]
test eax, eax
je 0x47c1dc
cmp edi, 0x7a
jl 0x47c187
cmp edi, 0x7b
jg 0x47c2a4
mov eax, dword [ebp - 0x18]
cmp eax, 1
je 0x47c4de
mov eax, dword [ebp - 0x10]
cmp eax, 1
je 0x47c182
mov eax, edx
lea edx, [edi + 0xf]
cmp eax, 1
je 0x47c1be
mov edx, edi
jmp 0x47c1be
lea edx, [edi + 0xd]
jmp 0x47c1be
cmp edi, 0x70
jl 0x47c2a4
cmp edi, 0x79
jg 0x47c2a4
mov eax, dword [ebp - 0x18]
cmp eax, 1
je 0x47c4e6
mov eax, dword [ebp - 0x10]
cmp eax, 1
je 0x47c1bb
mov eax, edx
lea edx, [edi - 0x12]
cmp eax, 1
je 0x47c1be
mov edx, edi
jmp 0x47c1be
lea edx, [edi - 0x1c]
mov dword [ebx + 0x15c], 0
movzx edx, dl
or edx, 0xe000
mov dword [ebx + 0x160], edx
jmp 0x47c297
call fcn.0046b904
cmp eax, 1
je 0x47c2aa
mov eax, dword [ebx + 0x1ec]
test eax, eax
je 0x47c2aa
cmp edi, 0x7a
jl 0x47c239
cmp edi, 0x7b
jg 0x47c2a4
mov edx, dword [ebp - 0x18]
cmp edx, 1
je 0x47c4fc
mov edx, dword [ebp - 0x10]
cmp edx, 1
je 0x47c4ee
mov edx, dword [ebp - 0x14]
cmp edx, 1
je 0x47c22e
mov dword [ebx + 0x160], edi
jmp 0x47c274
add edi, 0xf
mov dword [ebx + 0x160], edi
jmp 0x47c274
cmp edi, 0x70
jl 0x47c2a4
cmp edi, 0x79
jg 0x47c2a4
mov edx, dword [ebp - 0x18]
cmp edx, 1
je 0x47c518
mov edx, dword [ebp - 0x10]
cmp edx, 1
je 0x47c50a
mov edx, dword [ebp - 0x14]
cmp edx, 1
je 0x47c26b
mov dword [ebx + 0x160], edi
jmp 0x47c274
add edi, 0xffffffee
mov dword [ebx + 0x160], edi
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
movzx eax, byte [ebx + 0x160]
mov dword [ebx + 0x15c], 0
or eax, 0xe000
mov dword [ebx + 0x160], eax
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x160], edi
mov eax, dword [ebx + 0x48]
cmp eax, 1
je case.default.0x47c2e7
movsx eax, byte [ebx + 0x215]
test eax, eax
jne 0x47c414
movsx eax, byte [ebx + 0x214]
test eax, eax
jne 0x47c414
lea eax, [edi - 0x21]
cmp eax, 7
ja case.default.0x47c2e7
mov eax, dword [edi*4 + 0x4bebbc]
jmp eax
push esi
push edi
push ebx
call fcn.004707d0
add esp, 0xc
mov ebx, dword [ebp - 0xc]
mov esi, dword [ebp - 4]
mov edi, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test eax, 0x8000
je 0x47c483
mov eax, dword [0x4cafd4]
test eax, eax
je 0x47c0e5
call fcn.0046ba1c
push eax
call dword [sym.imp.USER32.dll_GetMenu]
push 0
push 0x3ec
push eax
call dword [sym.imp.USER32.dll_GetMenuState]
test eax, eax
jne 0x47c0e5
push 0
push 0x3ec
push 0x111
push dword [ebx]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x47c0e5
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
test eax, 0x8000
je 0x47c0e5
mov eax, dword [0x4cafd8]
test eax, eax
je 0x47c0e5
call fcn.0046ba1c
push eax
call dword [sym.imp.USER32.dll_GetMenu]
push 0
push 0x3fd
push eax
call dword [sym.imp.USER32.dll_GetMenuState]
test eax, eax
jne 0x47c0e5
push 0
push 0x3fd
push 0x111
push dword [ebx]
call dword [sym.imp.USER32.dll_SendMessageA]
jmp 0x47c0e5
lea edx, [edi + 0xb]
jmp 0x47c1be
lea edx, [edi - 0x35]
jmp 0x47c1be
add edi, 0xd
mov dword [ebx + 0x160], edi
jmp 0x47c274
add edi, 0xb
mov dword [ebx + 0x160], edi
jmp 0x47c274
add edi, 0xffffffe4
mov dword [ebx + 0x160], edi
jmp 0x47c274
add edi, 0xffffffcb
mov dword [ebx + 0x160], edi
jmp 0x47c274