Function at 0x45b4f8
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov esi, 0x50c360
call sub.USER32.dll_GetFocus
mov edi, eax
mov dword [0x50c364], edi
test edi, edi
jne 0x45b525
push 0
call sub.USER32.dll_MessageBeep
xor eax, eax
jmp 0x45b985
push 0x14
push 0x50c378
mov edx, dword [0x50c364]
push edx
call sub.USER32.dll_GetClassNameA
push 0x4f53ac
push 0x50c378
call fcn.004014a8
add esp, 8
test eax, eax
je 0x45b572
push 0x4f53b2
push 0x50c378
call fcn.004014a8
add esp, 8
test eax, eax
je 0x45b572
push 0
call sub.USER32.dll_MessageBeep
xor eax, eax
jmp 0x45b985
push 0xfffffffffffffff0
mov edx, dword [0x50c364]
push edx
call sub.USER32.dll_GetWindowLongA
mov edi, eax
mov dword [0x50c38c], edi
test edi, 0x800
je 0x45b597
xor eax, eax
jmp 0x45b985
mov edx, dword [0x50c364]
push edx
call sub.USER32.dll_GetParent
mov edi, eax
mov dword [0x50c368], edi
push edi
call fcn.004eae80
test eax, eax
je 0x45b5c4
mov dword [0x50c374], 1
jmp 0x45b64b
mov eax, dword [0x50c368]
cmp eax, dword [0x4fc118]
je 0x45b5f1
cmp eax, dword [0x4f20e4]
je 0x45b5f1
cmp eax, dword [0x4f4f30]
je 0x45b5f1
cmp eax, dword [0x4f6254]
je 0x45b5f1
cmp eax, dword [0x4f626c]
jne 0x45b5fd
mov dword [0x50c374], 2
jmp 0x45b64b
mov edx, dword [0x4f40a4]
mov dword [esi], edx
jmp 0x45b630
mov ecx, dword [esi]
mov edi, dword [ecx + 0xc8]
cmp edi, dword [0x50c368]
je 0x45b635
mov eax, dword [0x50c368]
push eax
call sub.USER32.dll_GetParent
cmp edi, eax
je 0x45b635
mov edx, dword [esi]
mov ecx, dword [edx + 0x28dc]
mov dword [esi], ecx
cmp dword [esi], 0
jne 0x45b607
cmp dword [esi], 0
jne 0x45b641
xor eax, eax
jmp 0x45b985
mov dword [0x50c374], 2
cmp bl, 3
jne 0x45b66c
cmp dword [0x4f29c0], 0
je 0x45b66c
mov edx, dword [0x50c374]
push edx
mov ecx, dword [0x50c364]
push ecx
call fcn.0042caa0
push 0
push 0
push 0xb0
mov eax, dword [0x50c364]
push eax
call sub.USER32.dll_SendMessageA
mov esi, eax
mov dword [0x50c38c], esi
movzx edx, word [0x50c38c]
mov dword [0x50c36c], edx
mov eax, esi
shr eax, 0x10
and ax, 0xffff
movzx eax, ax
mov dword [0x50c370], eax
cmp edx, eax
jne 0x45b7b0
cmp bl, 3
jne 0x45b6f2
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x45b6d9
xor eax, eax
mov al, bl
push eax
push eax
push 0x4f53bc
push 0x50c378
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x45b72f
xor edx, edx
mov dl, bl
push edx
push 0x4f53c2
push 0x50c378
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x45b72f
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x45b718
xor eax, eax
mov al, bl
push eax
push eax
push 0x4f53c6
push 0x50c378
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x45b72f
xor edx, edx
mov dl, bl
push edx
push 0x4f53cc
push 0x50c378
call sub.USER32.dll_wsprintfA
add esp, 0xc
mov eax, dword [0x50c36c]
push eax
push eax
push 0xb1
mov edx, dword [0x50c364]
push edx
call sub.USER32.dll_SendMessageA
push 0
push 0
push 0xb7
mov ecx, dword [0x50c364]
push ecx
call sub.USER32.dll_SendMessageA
push 0x50c378
push 0
push 0xc2
mov eax, dword [0x50c364]
push eax
call sub.USER32.dll_SendMessageA
inc dword [0x50c36c]
mov eax, dword [0x50c36c]
push eax
push eax
push 0xb1
mov edx, dword [0x50c364]
push edx
call sub.USER32.dll_SendMessageA
push 0
push 0
push 0xb7
mov ecx, dword [0x50c364]
push ecx
call sub.USER32.dll_SendMessageA
mov eax, 1
jmp 0x45b985
cmp bl, 3
jne 0x45b8b4
mov esi, ebx
and esi, 0xff
push esi
push 0x4f53d0
push 0x50c378
call sub.USER32.dll_wsprintfA
add esp, 0xc
mov eax, dword [0x50c370]
push eax
push eax
push 0xb1
mov edx, dword [0x50c364]
push edx
call sub.USER32.dll_SendMessageA
push 0
push 0
push 0xb7
mov ecx, dword [0x50c364]
push ecx
call sub.USER32.dll_SendMessageA
push 0x50c378
push 0
push 0xc2
mov eax, dword [0x50c364]
push eax
call sub.USER32.dll_SendMessageA
push esi
push 0x4f53d4
push 0x50c378
call sub.USER32.dll_wsprintfA
add esp, 0xc
mov eax, dword [0x50c36c]
push eax
push eax
push 0xb1
mov edx, dword [0x50c364]
push edx
call sub.USER32.dll_SendMessageA
push 0
push 0
push 0xb7
mov ecx, dword [0x50c364]
push ecx
call sub.USER32.dll_SendMessageA
push 0x50c378
push 0
push 0xc2
mov eax, dword [0x50c364]
push eax
call sub.USER32.dll_SendMessageA
push 0x50c378
call fcn.00401318
pop ecx
mov ebx, eax
add ebx, dword [0x50c36c]
mov dword [0x50c36c], ebx
push ebx
push ebx
push 0xb1
mov eax, dword [0x50c364]
push eax
call sub.USER32.dll_SendMessageA
push 0
push 0
push 0xb7
mov edx, dword [0x50c364]
push edx
call sub.USER32.dll_SendMessageA
jmp 0x45b980
mov esi, ebx
and esi, 0xff
push esi
push 0x4f53d8
push 0x50c378
call sub.USER32.dll_wsprintfA
add esp, 0xc
mov eax, dword [0x50c36c]
push eax
push eax
push 0xb1
mov edx, dword [0x50c364]
push edx
call sub.USER32.dll_SendMessageA
push 0
push 0
push 0xb7
mov ecx, dword [0x50c364]
push ecx
call sub.USER32.dll_SendMessageA
push 0x50c378
push 0
push 0xc2
mov eax, dword [0x50c364]
push eax
call sub.USER32.dll_SendMessageA
push 0x50c378
call fcn.00401318
pop ecx
add eax, dword [0x50c370]
mov dword [0x50c370], eax
push esi
push 0x4f53dc
push 0x50c378
call sub.USER32.dll_wsprintfA
add esp, 0xc
mov eax, dword [0x50c370]
push eax
push eax
push 0xb1
mov edx, dword [0x50c364]
push edx
call sub.USER32.dll_SendMessageA
push 0
push 0
push 0xb7
mov ecx, dword [0x50c364]
push ecx
call sub.USER32.dll_SendMessageA
push 0x50c378
push 0
push 0xc2
mov eax, dword [0x50c364]
push eax
call sub.USER32.dll_SendMessageA
mov eax, 1
pop edi
pop esi
pop ebx
pop ebp
ret 4