Function at 0x47a074
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov ebx, dword [ebp + 0xc]
mov esi, 0x4f743c
cmp dword [0x4f298c], 0
jl 0x47a30c
push 4
lea eax, [esi + 0x157]
push eax
lea edi, [ebx + 5]
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a0c6
mov eax, dword [0x4f2994]
push eax
lea edx, [esi + 0x15d]
push edx
mov ecx, dword [ebp + 0x10]
push ecx
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a570
push 2
lea eax, [esi + 0x161]
push eax
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a0fb
mov edx, dword [0x4f298c]
push edx
lea ecx, [esi + 0x165]
push ecx
mov eax, dword [ebp + 0x10]
push eax
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a570
push 2
lea edx, [esi + 0x169]
push edx
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a130
mov ecx, dword [0x4f2990]
push ecx
lea eax, [esi + 0x16d]
push eax
mov edx, dword [ebp + 0x10]
push edx
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a570
push 3
lea ecx, [esi + 0x171]
push ecx
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a193
mov eax, dword [0x4f298c]
mov dword [0x511dc8], eax
mov eax, dword [0x4f2990]
mov dword [0x511dcc], eax
push 1
push 0x511dc8
mov edx, dword [0x4fd9f0]
push edx
mov ecx, dword [ebp + 8]
push ecx
call sub.USER32.dll_MapWindowPoints
mov eax, dword [0x511dc8]
push eax
lea edx, [esi + 0x176]
push edx
mov ecx, dword [ebp + 0x10]
push ecx
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a570
push 3
lea eax, [esi + 0x17a]
push eax
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a1f7
mov edx, dword [0x4f298c]
mov dword [0x511dc8], edx
mov edx, dword [0x4f2990]
mov dword [0x511dcc], edx
push 1
push 0x511dc8
mov ecx, dword [0x4fd9f0]
push ecx
mov eax, dword [ebp + 8]
push eax
call sub.USER32.dll_MapWindowPoints
mov edx, dword [0x511dcc]
push edx
lea ecx, [esi + 0x17f]
push ecx
mov eax, dword [ebp + 0x10]
push eax
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a570
push 3
lea edx, [esi + 0x183]
push edx
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a252
mov ecx, dword [0x4f298c]
mov dword [0x511dc8], ecx
mov ecx, dword [0x4f2990]
mov dword [0x511dcc], ecx
push 0x511dc8
mov eax, dword [ebp + 8]
push eax
call sub.USER32.dll_ClientToScreen
mov edx, dword [0x511dc8]
push edx
lea ecx, [esi + 0x188]
push ecx
mov eax, dword [ebp + 0x10]
push eax
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a570
push 3
lea edx, [esi + 0x18c]
push edx
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a2ad
mov ecx, dword [0x4f298c]
mov dword [0x511dc8], ecx
mov ecx, dword [0x4f2990]
mov dword [0x511dcc], ecx
push 0x511dc8
mov eax, dword [ebp + 8]
push eax
call sub.USER32.dll_ClientToScreen
mov edx, dword [0x511dcc]
push edx
lea ecx, [esi + 0x191]
push ecx
mov eax, dword [ebp + 0x10]
push eax
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a570
push 4
lea edx, [esi + 0x195]
push edx
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a570
mov ecx, dword [ebp + 8]
push ecx
call fcn.004eae80
mov ebx, eax
mov dword [0x511dc4], ebx
test ebx, ebx
je 0x47a570
add ebx, 4
mov eax, dword [ebp + 0x10]
mov edi, ebx
mov esi, eax
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x47a570
push 4
lea eax, [esi + 0x19b]
push eax
lea edi, [ebx + 5]
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a383
xor eax, eax
mov dword [0x511dd0], eax
push 1
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x47a33e
inc dword [0x511dd0]
push 0x11
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x47a351
add dword [0x511dd0], 2
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x47a364
add dword [0x511dd0], 4
mov edx, dword [0x511dd0]
push edx
lea ecx, [esi + 0x1a1]
push ecx
mov eax, dword [ebp + 0x10]
push eax
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a570
push 0x511dc8
call sub.USER32.dll_GetCursorPos
push dword [0x511dcc]
push dword [0x511dc8]
call sub.USER32.dll_WindowFromPoint
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004eae80
mov dword [0x511dc4], eax
cmp dword [0x511dc4], 0
je 0x47a484
push 2
lea eax, [esi + 0x1a5]
push eax
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a3ff
push 0x511dc8
mov edx, dword [ebp + 8]
push edx
call sub.USER32.dll_ScreenToClient
mov ecx, dword [0x511dc8]
push ecx
lea eax, [esi + 0x1a9]
push eax
mov edx, dword [ebp + 0x10]
push edx
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a484
push 2
lea ecx, [esi + 0x1ad]
push ecx
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a43f
push 0x511dc8
mov eax, dword [ebp + 8]
push eax
call sub.USER32.dll_ScreenToClient
mov edx, dword [0x511dcc]
push edx
lea ecx, [esi + 0x1b1]
push ecx
mov eax, dword [ebp + 0x10]
push eax
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a484
push 4
lea edx, [esi + 0x1b5]
push edx
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a484
mov ecx, dword [0x511dc4]
add ecx, 4
mov eax, dword [ebp + 0x10]
push esi
mov edi, ecx
mov esi, eax
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
push 3
lea eax, [esi + 0x1bb]
push eax
lea edi, [ebx + 5]
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a4cc
push 0x511dc8
mov eax, dword [0x4fd9f0]
push eax
call sub.USER32.dll_ScreenToClient
mov edx, dword [0x511dc8]
push edx
lea ecx, [esi + 0x1c0]
push ecx
mov eax, dword [ebp + 0x10]
push eax
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a570
push 3
lea edx, [esi + 0x1c4]
push edx
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a50e
push 0x511dc8
mov ecx, dword [0x4fd9f0]
push ecx
call sub.USER32.dll_ScreenToClient
mov eax, dword [0x511dcc]
push eax
lea edx, [esi + 0x1c9]
push edx
mov ecx, dword [ebp + 0x10]
push ecx
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a570
push 3
lea eax, [esi + 0x1cd]
push eax
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a540
mov edx, dword [0x511dc8]
push edx
lea ecx, [esi + 0x1d2]
push ecx
mov eax, dword [ebp + 0x10]
push eax
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x47a570
push 3
lea edx, [esi + 0x1d6]
push edx
push edi
call fcn.00401540
add esp, 0xc
test eax, eax
jne 0x47a570
mov ecx, dword [0x511dcc]
push ecx
lea eax, [esi + 0x1db]
push eax
mov edx, dword [ebp + 0x10]
push edx
call sub.USER32.dll_wsprintfA
add esp, 0xc
pop edi
pop esi
pop ebx
pop ebp
ret 0xc