Function at 0x47e220
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
mov ebx, ecx
mov eax, dword [ebx]
mov edx, dword [eax + 0x17c]
push esi
push edi
call edx
mov ecx, dword [ebp + 8]
mov esi, eax
lea eax, [ecx - 0xd]
xor edi, edi
cmp eax, 0x1b
ja case.0x47e252.14
movzx eax, byte [eax + 0x47e53c]
jmp dword [eax*4 + 0x47e520]
mov edi, dword [0x6bce84]
mov ecx, ebx
mov dword [0x6bce84], 0
call fcn.0047e5c0
mov esi, eax
test esi, esi
je 0x47e2dc
mov eax, dword [esi + 8]
cmp eax, 0xffffffff
je 0x47e292
test eax, eax
je 0x47e292
mov edx, dword [esi]
mov eax, dword [edx + 0xb8]
mov ecx, esi
call eax
test eax, eax
je 0x47e2dc
mov edx, dword [esi]
mov eax, dword [edx + 0xa8]
push 0
mov ecx, esi
call eax
test eax, eax
je 0x47e2dc
cmp dword [esi + 0x88], 0
je 0x47e332
mov ecx, ebx
call fcn.0047e5c0
cmp eax, esi
jne 0x47e332
mov ecx, dword [esi + 0x88]
push 0
push 0
push 0x24
call fcn.0047e220
mov dword [0x6bce84], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, ebx
call fcn.0047e5a0
mov esi, eax
test esi, esi
je 0x47e314
push 0x6ab340
mov ecx, esi
call fcn.0056ef57
test eax, eax
jne 0x47e314
mov edx, dword [esi]
mov eax, dword [edx + 0x1dc]
mov ecx, esi
call eax
mov dword [0x6bce84], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, ebx
call fcn.0047e560
test eax, eax
je 0x47e332
mov ecx, dword [eax + 0x20]
push 0
push 0x27
push 0x100
push ecx
call dword [sym.imp.user32.dll_SendMessageA]
mov dword [0x6bce84], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, ebx
call fcn.0047e5a0
test eax, eax
je 0x47e361
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x1d8]
call eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebx + 0xec], edi
je 0x47e515
mov ecx, dword [ebx + 0xec]
mov edx, dword [ecx]
mov eax, dword [edx + 0x68]
call eax
test eax, eax
je 0x47e515
push 0
mov eax, ebx
call fcn.0047e5e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x11
call dword [sym.imp.user32.dll_GetAsyncKeyState]
test ax, ax
jns 0x47e3b7
cmp dword [esi + 0x6f0], edi
jne 0x47e3b7
call fcn.0047ee90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ecx, dword [ebp + 8]
mov edi, 1
cmp dword [0x6bce3c], 0
jne 0x47e3d5
mov edx, dword [esi]
mov eax, dword [edx + 0x22c]
push ecx
mov ecx, esi
call eax
test edi, edi
je 0x47e515
cmp dword [ebx + 0x87c], 0
je 0x47e515
mov eax, dword [esi + 0x5bc]
test eax, eax
jl 0x47e515
mov ecx, esi
call fcn.00461d30
mov edi, eax
test edi, edi
jne 0x47e419
mov edx, dword [esi]
mov eax, dword [edx + 0x188]
mov ecx, esi
call eax
test eax, eax
je 0x47e515
mov edx, dword [esi + 0x20]
lea ecx, [esp + 0x10]
push ecx
push edx
call dword [sym.imp.user32.dll_GetClientRect]
mov ecx, dword [edi + 0x34]
cmp ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x6e4]
mov dword [esp + 0xc], eax
jge 0x47e491
mov edx, dword [esi]
mov eax, dword [edx + 0x188]
mov ecx, esi
call eax
mov ecx, eax
mov eax, dword [edi + 0x34]
sub eax, dword [esp + 0x14]
cdq
idiv ecx
mov edi, eax
sub edi, 1
jmp 0x47e4b7
push 1
mov eax, ebx
call fcn.0047e5e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [esi]
mov eax, dword [edx + 0x22c]
push ecx
mov ecx, esi
call eax
test eax, eax
jne 0x47e515
mov ecx, ebx
call fcn.00568020
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edx, dword [edi + 0x3c]
cmp edx, dword [esp + 0x1c]
jle 0x47e515
mov eax, dword [esi]
mov edx, dword [eax + 0x188]
mov ecx, esi
call edx
mov ecx, eax
mov eax, dword [edi + 0x3c]
sub eax, dword [esp + 0x1c]
cdq
idiv ecx
mov edi, eax
add edi, 1
test edi, edi
je 0x47e515
mov edx, dword [esi]
mov eax, dword [edx + 0x188]
mov ecx, esi
call eax
mov ecx, eax
mov eax, dword [ebx + 0x840]
cdq
idiv ecx
mov ecx, dword [esp + 0xc]
add ecx, edi
mov edi, dword [esi + 0x5d4]
sub eax, 2
sub edi, eax
xor eax, eax
add edi, 0xffffffff
test ecx, ecx
setl al
sub eax, 1
and eax, ecx
cmp eax, edi
jl 0x47e4f8
mov eax, edi
mov ecx, esi
call fcn.0047cf10
push 0
mov eax, ebx
call fcn.0047fd30
test eax, eax
je 0x47e515
push 0
mov eax, ebx
call fcn.0047fd30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc