Function at 0x479fec
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
push esi
xor ebx, ebx
cmp dword [ebp + 0x1c], ebx
push edi
mov edi, eax
je 0x47a051
cmp dword [ebp + 0x1c], 0x6a
jne 0x47a1bb
cmp dword [ebp + 0xc], 0x100
jne 0x47a1bb
movzx eax, word [ebp + 0x10]
cmp eax, 0x61
mov dword [edi + 0x40c], ebx
je 0x47a02a
cmp eax, 0x41
jne 0x47a041
push 0x11
call dword [sym.imp.USER32.dll_GetKeyState]
test al, al
jns 0x47a041
lea esi, [edi + 0x3e0]
call fcn.0047cbca
mov eax, dword [ebp + 0x18]
mov dword [eax], ebx
cmp dword [edi + 0x40c], ebx
jmp 0x47a1b5
mov eax, dword [ebp + 0xc]
cmp eax, 0x113
jne 0x47a0b1
mov eax, dword [ebp + 0x10]
dec eax
mov dword [edi + 0x40c], 1
je 0x47a091
dec eax
je 0x47a088
dec eax
jne 0x47a098
push ebx
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
push 3
push dword [edi + 4]
call dword [sym.imp.USER32.dll_KillTimer]
jmp 0x47a098
mov esi, edi
call fcn.0047bd7d
jmp 0x47a098
mov esi, edi
call fcn.0047b7c7
mov eax, dword [ebp + 0x18]
mov dword [eax], ebx
cmp dword [edi + 0x40c], ebx
je 0x47a19c
xor eax, eax
inc eax
jmp 0x47a1bd
cmp eax, 0x4e
jne 0x47a0df
mov eax, dword [ebp + 0x14]
cmp dword [eax + 4], 0xffffffff
jne 0x47a19c
lea esi, [edi + 0x40c]
mov ecx, edi
mov dword [esi], 1
call fcn.00479e8d
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
cmp dword [esi], ebx
jmp 0x47a0a3
cmp eax, 0x110
jne 0x47a0fb
lea esi, [edi + 0x40c]
mov ecx, edi
mov dword [esi], 1
call fcn.0047aaf0
jmp 0x47a0d6
cmp eax, 0x10
jne 0x47a124
push ebx
push 2
push 0x111
push dword [edi + 4]
lea esi, [edi + 0x40c]
mov dword [esi], 1
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp + 0x18]
mov dword [eax], ebx
jmp 0x47a0db
push 2
pop ecx
cmp eax, ecx
jne 0x47a15f
lea eax, [edi + 0x48c]
push eax
push ecx
mov dword [edi + 0x40c], 1
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
cmp dword [edi + 0x2e4], ebx
je 0x47a098
lea eax, [edi + 0x2e0]
call fcn.00415f0e
jmp 0x47a098
cmp eax, 0x112
jne 0x47a1c6
mov eax, dword [ebp + 0x10]
lea ebx, [edi + 0x40c]
and dword [ebx], 0
and eax, 0xfff0
cmp eax, 0xf060
jne 0x47a18b
mov esi, edi
mov dword [ebx], 1
call fcn.0047b2d0
mov eax, dword [ebp + 0x18]
and dword [eax], 0
cmp dword [ebx], 0
jne 0x47a0a9
xor ebx, ebx
push ebx
push dword [ebp + 0x18]
mov ecx, edi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0040b9de
test eax, eax
jne 0x47a0a9
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
cmp eax, 0x111
jne 0x47a1f3
mov eax, dword [ebp + 0x10]
shr eax, 0x10
cmp ax, 0x300
lea esi, [edi + 0x40c]
mov dword [esi], ebx
jne 0x47a11d
mov ebx, edi
call fcn.0047c2e7
xor ebx, ebx
jmp 0x47a11d
cmp eax, 0x133
jne 0x47a22d
push ecx
mov ecx, dword [ebp + 0x14]
mov eax, esp
mov dword [esp + 0x10], esp
push ecx
mov dword [edi + 0x40c], 1
mov dword [eax], ecx
mov ecx, dword [ebp + 0x10]
mov eax, esp
mov dword [eax], ecx
mov ecx, edi
mov dword [esp + 0x14], esp
call fcn.0047c16d
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
jmp 0x47a09d
cmp eax, 0x467
jne 0x47a262
mov ebx, dword [ebp + 0x10]
push ebx
lea esi, [edi + 0x40c]
push edi
mov dword [esi], 1
call fcn.0047b875
xor ecx, ecx
inc ecx
mov edx, edi
call fcn.0047b687
mov eax, dword [ebp + 0x18]
and dword [eax], 0
cmp dword [esi], 0
jmp 0x47a194
cmp eax, 0x46b
jne 0x47a289
push dword [ebp + 0x10]
lea ebx, [edi + 0x40c]
mov esi, edi
mov dword [ebx], 1
call fcn.0047ae35
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
jmp 0x47a191
cmp eax, 0x46e
jne 0x47a2c5
xor esi, esi
inc esi
mov dword [edi + 0x40c], esi
mov dword [edi + 0x46c], 0x14
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.0049f4d0
pop ecx
push ebx
push 0x96
push esi
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x47a098
cmp eax, 0x46d
jne 0x47a2eb
push ebx
lea esi, [edi + 0x40c]
push 0xc8
lea eax, [edi + 0x24]
mov dword [esi], 1
call fcn.0040bab6
jmp 0x47a11d
cmp eax, 0x470
jne 0x47a31d
push 5
lea esi, [edi + 0x40c]
xor ebx, ebx
pop ecx
mov edx, edi
mov dword [esi], 1
call fcn.0047b687
mov eax, edi
call fcn.0047b8e2
mov eax, dword [ebp + 0x18]
and dword [eax], ebx
cmp dword [esi], ebx
jmp 0x47a194
cmp eax, 0x471
jne 0x47a33c
lea ebx, [edi + 0x40c]
mov esi, edi
mov dword [ebx], 1
call fcn.0047aecb
jmp 0x47a27f
cmp eax, 0x46c
jne 0x47a35e
mov eax, dword [ebp + 0x10]
lea esi, [edi + 0x40c]
mov edx, edi
mov dword [esi], 1
call fcn.0047b041
jmp 0x47a0d6
cmp eax, 0x468
jne 0x47a3a7
cmp dword [ebp + 0x10], ecx
jne 0x47a39d
cmp dword [ebp + 0x14], 0x204
je 0x47a37c
cmp dword [ebp + 0x14], 0x201
jne 0x47a39d
lea eax, [edi + 0x448]
cmp byte [eax], bl
jne 0x47a389
mov byte [eax], 1
push 9
push dword [edi + 4]
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [edi + 4]
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [ebp + 0x18]
mov dword [eax], ebx
jmp 0x47a0a9
cmp eax, 0x46a
jne 0x47a3c6
lea esi, [edi + 0x40c]
mov eax, edi
mov dword [esi], 1
call fcn.0040b941
jmp 0x47a11d
cmp eax, 0x472
jne 0x47a3e3
lea esi, [edi + 0x40c]
mov dword [esi], 1
call fcn.0047b36d
jmp 0x47a11d
cmp eax, 0x474
jne 0x47a41a
mov eax, dword [edi + 0x41c]
xor edx, edx
inc edx
cmp eax, edx
mov dword [edi + 0x40c], edx
jne 0x47a408
push edi
call fcn.0047c7f5
jmp 0x47a098
cmp eax, ecx
jne 0x47a098
call fcn.0047ca57
jmp 0x47a098
cmp eax, 0x476
jne 0x47a19c
push dword [ebp + 0x10]
mov ebx, dword [ebp + 0x14]
lea esi, [edi + 0x40c]
mov ecx, edi
mov dword [esi], 1
call fcn.0047b090
mov ecx, dword [ebp + 0x18]
mov dword [ecx], eax
jmp 0x47a25a