Function at 0x470a80
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e56c8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x38
push ebx
push esi
push edi
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0xc]
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp dword [eax - 8], ebx
je 0x470ce4
mov eax, dword [0x52251c]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov eax, dword [0x52700c]
mov byte [ebp - 4], 3
cmp eax, ebx
push 0xef7b
lea ecx, [ebp - 0x14]
je 0x470ae0
push ecx
call fcn.00417b10
add esp, 8
jmp 0x470ae5
call fcn.004c681c
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
push 0x11
call esi
test ax, ax
jge 0x470b04
push 0x10
call esi
test ax, ax
mov dword [ebp - 0x1c], 1
jl 0x470b07
mov dword [ebp - 0x1c], ebx
mov edi, dword [ebp + 8]
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [0x527980], ebx
push 0x20
lea ecx, [ebp + 0xc]
call fcn.004c5c4e
mov esi, eax
cmp esi, ebx
mov dword [ebp - 0x2c], esi
jl 0x470b8d
cmp dword [ebp - 0x1c], ebx
jne 0x470b8d
lea edx, [ebp + 8]
push esi
push edx
lea ecx, [ebp + 0xc]
call fcn.004bd709
push eax
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 4
call fcn.004c58c0
lea ecx, [ebp + 8]
mov byte [ebp - 4], 3
call fcn.004c5787
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x28]
mov eax, dword [eax - 8]
sub eax, esi
dec eax
push eax
push ecx
lea ecx, [ebp + 0xc]
call fcn.004bd68d
push eax
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 5
call fcn.004c58c0
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.004c5787
lea ecx, [ebp + 0xc]
call fcn.004bdc60
jmp 0x470b99
lea edx, [ebp + 0xc]
lea ecx, [ebp - 0x18]
push edx
call fcn.004c58c0
mov ecx, edi
call fcn.00413440
lea ecx, [ebp - 0x18]
mov esi, eax
mov eax, dword [ebp + 0x10]
push ecx
mov ecx, 0x52729c
mov dword [0x527978], ebx
mov dword [0x52797c], eax
call fcn.004c58c0
push 0x470890
push esi
mov dword [0x527984], edi
mov dword [0x52796c], ebx
call fcn.0043adf0
mov edx, dword [esi]
add esp, 8
push esi
call dword [edx + 8]
cmp dword [0x527978], ebx
je 0x470c0b
mov eax, dword [ebp + 0x10]
mov dword [0x527980], 1
cmp eax, ebx
mov eax, dword [edi + 0x1a0]
je 0x470c00
inc eax
jmp 0x470c05
cmp eax, ebx
jle 0x470c0b
dec eax
mov dword [edi + 0x1a0], eax
mov ecx, dword [0x527978]
lea eax, [ebp - 0x44]
push 0xa
push eax
push ecx
call fcn.004b0136
mov eax, dword [ebp + 0x10]
add esp, 0xc
cmp eax, ebx
jne 0x470c3c
cmp dword [0x527978], ebx
je 0x470c3c
push 0x520ecc
lea ecx, [ebp - 0x14]
call fcn.004c5b63
lea edx, [ebp - 0x44]
lea ecx, [ebp - 0x14]
push edx
call fcn.004c5b63
push 0x51da78
lea ecx, [ebp - 0x14]
call fcn.004c5b63
mov esi, dword [ebp - 0x20]
mov ecx, dword [0x527978]
mov eax, dword [ebp - 0x2c]
add esi, ecx
cmp eax, ebx
mov dword [ebp - 0x20], esi
jl 0x470c7b
cmp dword [ebp - 0x1c], ebx
jne 0x470c7b
mov dword [ebp - 0x24], 1
jmp 0x470b16
cmp dword [ebp - 0x24], ebx
je 0x470cbe
lea eax, [ebp - 0x44]
push 0xa
push eax
push esi
call fcn.004b0136
add esp, 0xc
lea ecx, [ebp - 0x14]
push 0x51fee0
call fcn.004c5b63
cmp dword [ebp + 0x10], ebx
jne 0x470cb2
cmp esi, ebx
je 0x470cb2
push 0x520ecc
lea ecx, [ebp - 0x14]
call fcn.004c5b63
lea ecx, [ebp - 0x44]
push ecx
lea ecx, [ebp - 0x14]
call fcn.004c5b63
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x30]
push 1
push edx
call fcn.0046cf50
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 2
call fcn.004c5787
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.004c5787
lea ecx, [ebp + 0xc]
mov dword [ebp - 4], 0xffffffff
call fcn.004c5787
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc