Function at 0x47bc1f
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4bd54c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x30
mov dword [ebp - 0x34], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x38]
sub ecx, 9
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x38], 0x25
ja case.0x47bc61.5
mov eax, dword [ebp - 0x38]
xor edx, edx
mov dl, byte [eax + 0x47be70]
jmp dword [edx*4 + 0x47be58]
mov ecx, dword [ebp + 0x14]
call sub.MFC42.DLL_CWnd::GetDlgCtrlID
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 4
jae 0x47bca9
mov ecx, dword [ebp - 0x10]
imul ecx, ecx, 0x44
mov edx, dword [ebp - 0x34]
lea ecx, [edx + ecx + 0x40]
call sub.MFC42.DLL_CWnd::SetFocus
cmp dword [ebp + 8], 0x27
je 0x47bca9
push 0
push 0xffffffffffffffff
push 0
mov eax, dword [ebp - 0x10]
imul eax, eax, 0x44
mov ecx, dword [ebp - 0x34]
lea ecx, [ecx + eax + 0x40]
call fcn.0047cb40
jmp 0x47be48
mov ecx, dword [ebp + 0x14]
call sub.MFC42.DLL_CWnd::GetDlgCtrlID
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 1
jbe 0x47bcd4
mov edx, dword [ebp - 0x14]
sub edx, 2
imul edx, edx, 0x44
mov eax, dword [ebp - 0x34]
lea ecx, [eax + edx + 0x40]
call sub.MFC42.DLL_CWnd::SetFocus
jmp 0x47be48
push 0x10
call dword [sym.imp.USER32.dll_GetKeyState]
mov word [ebp - 0x1c], ax
movsx ecx, word [ebp - 0x1c]
test ecx, ecx
jge 0x47bd07
push 1
mov edx, dword [ebp - 0x34]
push edx
mov ecx, dword [ebp - 0x34]
call fcn.0044dd50
mov ecx, eax
call fcn.0047cbc0
mov dword [ebp - 0x18], eax
jmp 0x47bd1f
push 0
mov eax, dword [ebp - 0x34]
push eax
mov ecx, dword [ebp - 0x34]
call fcn.0044dd50
mov ecx, eax
call fcn.0047cbc0
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x47bd2d
mov ecx, dword [ebp - 0x18]
call sub.MFC42.DLL_CWnd::SetFocus
jmp 0x47be48
mov ecx, dword [ebp - 0x34]
call fcn.0044dd50
mov ecx, eax
call fcn.0047cbf0
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
shr ecx, 0x10
and ecx, 0xffff
and ecx, 0xffff
cmp ecx, 0x534b
jne 0x47bda4
mov edx, dword [ebp - 0x20]
and edx, 0xffff
push edx
mov ecx, dword [ebp - 0x34]
call fcn.0044dd50
mov ecx, eax
call sub.MFC42.DLL_CWnd::GetDlgItem
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
and eax, 0xffff
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x24]
mov edx, dword [ecx + 0x20]
push edx
mov eax, dword [ebp - 0x28]
push eax
push 0x111
mov ecx, dword [ebp - 0x34]
call fcn.0044dd50
mov ecx, eax
call fcn.0047cb90
jmp 0x47be48
mov ecx, dword [ebp - 0x34]
cmp dword [ecx + 0x188], 0
jne 0x47be10
lea ecx, [ebp - 0x2c]
call fcn.004b0fea
mov dword [ebp - 4], 0
lea edx, [ebp - 0x2c]
push edx
mov ecx, dword [ebp + 0x14]
call sub.MFC42.DLL_CWnd::GetWindowTextA
lea ecx, [ebp - 0x2c]
call fcn.00403780
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jl 0x47bdf4
cmp dword [ebp - 0x30], 0xff
jle 0x47be01
push 0x4ed260
mov ecx, dword [ebp + 0x14]
call sub.MFC42.DLL_CWnd::SetWindowTextA
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
push 0
push 0x2e
mov ecx, dword [ebp - 0x34]
call fcn.0047bc1f
jmp 0x47be48
mov edx, 1
test edx, edx
je 0x47be38
mov dword [ebp - 0x3c], 0
jmp 0x47be48
push str.Unexpected_call_to_CIPAddrCtl::OnChildChar__r_n
call fcn.004039b0
add esp, 4
mov dword [ebp - 0x3c], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10