Function at 0x460104
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
mov ebx, 0x57f8f2
xor eax, eax
mov dword [0x571654], eax
push 0
push 0x571658
push esi
call fcn.00516353
mov edi, eax
mov dword [0x571644], edi
test edi, edi
jne 0x46013e
push 0
call fcn.0041c2be
jmp 0x4604f6
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x460156
mov dword [0x571650], 1
jmp 0x46015d
xor eax, eax
mov dword [0x571650], eax
mov byte [0x56f1c4], 0
mov edx, dword [0x571644]
cmp byte [edx + 0x64c], 1
jne 0x4602d1
push 0x57166c
call sub.USER32.dll_GetCursorPos
push dword [0x571670]
push dword [0x57166c]
call sub.USER32.dll_WindowFromPoint
mov edi, eax
mov dword [0x571668], edi
mov eax, dword [0x571644]
cmp edi, dword [eax + 0x75c]
jne 0x460268
push 0x57166c
push dword [ebp + 0xc]
call sub.SHELL32.dll_DragQueryPoint
push 1
push 0x57166c
mov eax, dword [0x571644]
push dword [eax + 0x75c]
push dword [eax]
call sub.USER32.dll_MapWindowPoints
cmp dword [0x571650], 0
je 0x4601e3
push 0
push 0x10
call fcn.0046009d
push 0xffffffffffffffff
push 0
push 0x185
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
movzx edx, word [0x57166c]
movzx ecx, word [0x571670]
shl ecx, 0x10
or edx, ecx
push edx
push 0
push 0x201
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
movzx eax, word [0x57166c]
movzx edx, word [0x571670]
shl edx, 0x10
or eax, edx
push eax
push 0
push 0x202
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
cmp dword [0x571650], 0
je 0x460258
push 0x80
push 0x10
call fcn.0046009d
push 0x56f1c4
push esi
call fcn.004d6b24
jmp 0x46035f
push 0x57166c
push dword [ebp + 0xc]
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 [0x571644]
add ecx, 4
push esi
mov edi, ecx
mov esi, 0x56f1c4
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 0x46035f
mov eax, dword [0x571644]
cmp byte [eax + 0x64c], 2
jne 0x4602ec
push 0x56f1c4
push esi
call fcn.004d6b24
jmp 0x46035f
mov edx, dword [0x571644]
cmp byte [edx + 0x64c], 7
jne 0x46035f
push 0x57166c
push dword [ebp + 0xc]
call sub.SHELL32.dll_DragQueryPoint
movzx ecx, word [0x57166c]
movzx eax, word [0x571670]
shl eax, 0x10
or ecx, eax
push ecx
push 0
push 0x201
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
movzx edx, word [0x57166c]
movzx ecx, word [0x571670]
shl ecx, 0x10
or edx, ecx
push edx
push 0
push 0x202
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
push 0x56f1c4
push esi
call fcn.004d6b24
cmp byte [0x56f1c4], 0
jne 0x460374
push 0
call fcn.0041c2be
jmp 0x4604f6
push 0x56f1c4
call fcn.005395b8
pop ecx
add eax, 0xa
push eax
call fcn.00545a4c
pop ecx
mov edi, eax
mov dword [0x571654], edi
test edi, edi
jne 0x4603a1
push 0
call fcn.0041c2be
jmp 0x4604f6
mov eax, dword [0x571654]
push esi
mov esi, eax
mov edi, 0x56f1c4
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
push dword [ebp + 0xc]
call sub.SHELL32.dll_DragQueryFileA
mov edi, eax
mov dword [0x571648], edi
test edi, edi
jg 0x4603f2
push 0
call fcn.0041c2be
jmp 0x4604f6
xor eax, eax
mov dword [0x57164c], eax
jmp 0x4604e4
push 0x3e7
push ebx
push edi
push dword [ebp + 0xc]
call sub.SHELL32.dll_DragQueryFileA
test eax, eax
jbe 0x4604de
push 0x572713
push 0x572613
push 0x572513
push 0x572510
push ebx
call fcn.0053e8e0
add esp, 0x14
push 0x572713
push 0x572613
push 0x54ffe3
push ebx
call sub.USER32.dll_wsprintfA
add esp, 0x10
push dword [0x571650]
push 0x57c4a0
push ebx
call fcn.0045ffb3
test eax, eax
je 0x4604de
push 0x572713
push 0x572613
push 0x572513
push 0x572510
push 0x54ffe9
push ebx
call sub.USER32.dll_wsprintfA
add esp, 0x18
push 0x20
push ebx
call fcn.00539518
add esp, 8
test eax, eax
je 0x4604ab
push ebx
push dword [0x571654]
push 0x54fff3
push 0x57c887
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x4604c4
push ebx
push dword [0x571654]
push 0x54fffc
push 0x57c887
call sub.USER32.dll_wsprintfA
add esp, 0x10
push 0
push 0
push 1
push 0x57c887
push 0x57c4a0
push esi
call fcn.0049bc6c
test eax, eax
je 0x4604f6
inc dword [0x57164c]
mov edi, dword [0x57164c]
cmp edi, dword [0x571648]
jl 0x4603fe
mov eax, dword [0x571654]
test eax, eax
je 0x460506
push eax
call fcn.00545938
pop ecx
push dword [ebp + 0xc]
call sub.SHELL32.dll_DragFinish
push esi
call sub.USER32.dll_SetFocus
pop edi
pop esi
pop ebx
pop ebp
ret 8