Function at 0x455e78
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
mov ebx, 0x5188dc
xor eax, eax
mov dword [0x50bde8], eax
push 0
push 0x50bdec
push esi
call fcn.004eb0a8
mov edi, eax
mov dword [0x50bdd8], edi
test edi, edi
jne 0x455eb2
push 0
call sub.USER32.dll_MessageBeep
jmp 0x456280
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x455eca
mov dword [0x50bde4], 1
jmp 0x455ed1
xor eax, eax
mov dword [0x50bde4], eax
mov byte [0x509f90], 0
mov edx, dword [0x50bdd8]
cmp byte [edx + 0x4cc], 1
jne 0x45604e
push 0x50be00
call sub.USER32.dll_GetCursorPos
push dword [0x50be04]
push dword [0x50be00]
call sub.USER32.dll_WindowFromPoint
mov edi, eax
mov dword [0x50bdfc], edi
mov eax, dword [0x50bdd8]
cmp edi, dword [eax + 0x5d4]
jne 0x455fe4
push 0x50be00
mov edx, dword [ebp + 0xc]
push edx
call sub.SHELL32.dll_DragQueryPoint
push 1
push 0x50be00
mov eax, dword [0x50bdd8]
mov edx, dword [eax + 0x5d4]
push edx
mov ecx, dword [eax]
push ecx
call sub.USER32.dll_MapWindowPoints
cmp dword [0x50bde4], 0
je 0x455f5a
push 0
push 0x10
call fcn.00455e3c
push 0xffffffffffffffff
push 0
push 0x185
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
movzx eax, word [0x50be00]
movzx edx, word [0x50be04]
shl edx, 0x10
or eax, edx
push eax
push 0
push 0x201
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
movzx ecx, word [0x50be00]
movzx eax, word [0x50be04]
shl eax, 0x10
or ecx, eax
push ecx
push 0
push 0x202
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
cmp dword [0x50bde4], 0
je 0x455fcf
push 0x80
push 0x10
call fcn.00455e3c
push 0x515718
push 0x509f90
push esi
call fcn.004b7ef8
jmp 0x4560e7
push 0x50be00
mov edx, dword [ebp + 0xc]
push edx
call sub.SHELL32.dll_DragQueryPoint
push 0xffffffffffffffff
push 0
push 0x201
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
push 0xffffffffffffffff
push 0
push 0x202
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
mov ecx, dword [0x50bdd8]
add ecx, 4
push esi
mov edi, ecx
mov esi, 0x509f90
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
jmp 0x4560e7
mov eax, dword [0x50bdd8]
cmp byte [eax + 0x4cc], 2
jne 0x45606e
push 0x515718
push 0x509f90
push esi
call fcn.004b7ef8
jmp 0x4560e7
mov edx, dword [0x50bdd8]
cmp byte [edx + 0x4cc], 7
jne 0x4560e7
push 0x50be00
mov ecx, dword [ebp + 0xc]
push ecx
call sub.SHELL32.dll_DragQueryPoint
movzx eax, word [0x50be00]
movzx edx, word [0x50be04]
shl edx, 0x10
or eax, edx
push eax
push 0
push 0x201
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
movzx ecx, word [0x50be00]
movzx eax, word [0x50be04]
shl eax, 0x10
or ecx, eax
push ecx
push 0
push 0x202
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
push 0x515718
push 0x509f90
push esi
call fcn.004b7ef8
cmp byte [0x509f90], 0
jne 0x4560fc
push 0
call sub.USER32.dll_MessageBeep
jmp 0x456280
push 0x509f90
call fcn.00401318
pop ecx
add eax, 2
push eax
call fcn.0040c55c
pop ecx
mov edi, eax
mov dword [0x50bde8], edi
test edi, edi
jne 0x456129
push 0
call sub.USER32.dll_MessageBeep
jmp 0x456280
mov eax, dword [0x50bde8]
push esi
mov esi, eax
mov edi, 0x509f90
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 0
push 0
push 0xffffffffffffffff
mov eax, dword [ebp + 0xc]
push eax
call sub.SHELL32.dll_DragQueryFileA
mov edi, eax
mov dword [0x50bddc], edi
test edi, edi
jg 0x45617b
push 0
call sub.USER32.dll_MessageBeep
jmp 0x456280
xor eax, eax
mov dword [0x50bde0], eax
jmp 0x45626e
push 0x3e7
push ebx
push edi
mov edx, dword [ebp + 0xc]
push edx
call sub.SHELL32.dll_DragQueryFileA
test eax, eax
jbe 0x456268
push 0x50d1f7
push 0x50d0f7
push 0x50cff7
push 0x50cff4
push ebx
call fcn.00405b58
add esp, 0x14
push 0x50d1f7
push 0x50d0f7
push 0x4f520b
push ebx
call sub.USER32.dll_wsprintfA
add esp, 0x10
mov ecx, dword [0x50bde4]
push ecx
push 0x515718
push ebx
call fcn.00455d50
test eax, eax
je 0x456268
push 0x50d1f7
push 0x50d0f7
push 0x50cff7
push 0x50cff4
push 0x4f5211
push ebx
call sub.USER32.dll_wsprintfA
add esp, 0x18
push 0x20
push ebx
call fcn.00401278
add esp, 8
test eax, eax
je 0x456236
push ebx
mov eax, dword [0x50bde8]
push eax
push 0x4f521b
push 0x515aff
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x456250
push ebx
mov edx, dword [0x50bde8]
push edx
push 0x4f5224
push 0x515aff
call sub.USER32.dll_wsprintfA
add esp, 0x10
push 0
push 1
push 0x515aff
push 0x515718
push esi
call fcn.004864e8
test eax, eax
je 0x456280
inc dword [0x50bde0]
mov edi, dword [0x50bde0]
cmp edi, dword [0x50bddc]
jl 0x456187
mov eax, dword [0x50bde8]
test eax, eax
je 0x456290
push eax
call fcn.0040c454
pop ecx
mov edx, dword [ebp + 0xc]
push edx
call sub.SHELL32.dll_DragFinish
push esi
call sub.USER32.dll_SetFocus
pop edi
pop esi
pop ebx
pop ebp
ret 8