Function at 0x453ea2
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
mov ebx, 0x5584e6
xor eax, eax
mov dword [0x54ac14], eax
push 0
push 0x54ac18
push esi
call fcn.004f9e67
mov edi, eax
mov dword [0x54ac04], edi
test edi, edi
jne 0x453edc
push 0
call fcn.00415bea
jmp 0x454294
push 0x10
call sub.USER32.dll_GetKeyState
test ax, ax
jge 0x453ef4
mov dword [0x54ac10], 1
jmp 0x453efb
xor eax, eax
mov dword [0x54ac10], eax
mov byte [0x548798], 0
mov edx, dword [0x54ac04]
cmp byte [edx + 0x638], 1
jne 0x45406f
push 0x54ac2c
call sub.USER32.dll_GetCursorPos
push dword [0x54ac30]
push dword [0x54ac2c]
call sub.USER32.dll_WindowFromPoint
mov edi, eax
mov dword [0x54ac28], edi
mov eax, dword [0x54ac04]
cmp edi, dword [eax + 0x748]
jne 0x454006
push 0x54ac2c
push dword [ebp + 0xc]
call sub.SHELL32.dll_DragQueryPoint
push 1
push 0x54ac2c
mov eax, dword [0x54ac04]
push dword [eax + 0x748]
push dword [eax]
call sub.USER32.dll_MapWindowPoints
cmp dword [0x54ac10], 0
je 0x453f81
push 0
push 0x10
call fcn.00453e3b
push 0xffffffffffffffff
push 0
push 0x185
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
movzx edx, word [0x54ac2c]
movzx ecx, word [0x54ac30]
shl ecx, 0x10
or edx, ecx
push edx
push 0
push 0x201
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
movzx eax, word [0x54ac2c]
movzx edx, word [0x54ac30]
shl edx, 0x10
or eax, edx
push eax
push 0
push 0x202
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
cmp dword [0x54ac10], 0
je 0x453ff6
push 0x80
push 0x10
call fcn.00453e3b
push 0x548798
push esi
call fcn.004c082c
jmp 0x4540fd
push 0x54ac2c
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 [0x54ac04]
add ecx, 4
push esi
mov edi, ecx
mov esi, 0x548798
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 0x4540fd
mov eax, dword [0x54ac04]
cmp byte [eax + 0x638], 2
jne 0x45408a
push 0x548798
push esi
call fcn.004c082c
jmp 0x4540fd
mov edx, dword [0x54ac04]
cmp byte [edx + 0x638], 7
jne 0x4540fd
push 0x54ac2c
push dword [ebp + 0xc]
call sub.SHELL32.dll_DragQueryPoint
movzx ecx, word [0x54ac2c]
movzx eax, word [0x54ac30]
shl eax, 0x10
or ecx, eax
push ecx
push 0
push 0x201
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
movzx edx, word [0x54ac2c]
movzx ecx, word [0x54ac30]
shl ecx, 0x10
or edx, ecx
push edx
push 0
push 0x202
push 0x425
push esi
call sub.USER32.dll_SendDlgItemMessageA
push 0x548798
push esi
call fcn.004c082c
cmp byte [0x548798], 0
jne 0x454112
push 0
call fcn.00415bea
jmp 0x454294
push 0x548798
call fcn.005183dc
pop ecx
add eax, 2
push eax
call fcn.00524378
pop ecx
mov edi, eax
mov dword [0x54ac14], edi
test edi, edi
jne 0x45413f
push 0
call fcn.00415bea
jmp 0x454294
mov eax, dword [0x54ac14]
push esi
mov esi, eax
mov edi, 0x548798
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 [0x54ac08], edi
test edi, edi
jg 0x454190
push 0
call fcn.00415bea
jmp 0x454294
xor eax, eax
mov dword [0x54ac0c], eax
jmp 0x454282
push 0x3e7
push ebx
push edi
push dword [ebp + 0xc]
call sub.SHELL32.dll_DragQueryFileA
test eax, eax
jbe 0x45427c
push 0x54bcbb
push 0x54bbbb
push 0x54babb
push 0x54bab8
push ebx
call fcn.0051d600
add esp, 0x14
push 0x54bcbb
push 0x54bbbb
push 0x52cfcf
push ebx
call sub.USER32.dll_wsprintfA
add esp, 0x10
push dword [0x54ac10]
push 0x555704
push ebx
call fcn.00453d53
test eax, eax
je 0x45427c
push 0x54bcbb
push 0x54bbbb
push 0x54babb
push 0x54bab8
push 0x52cfd5
push ebx
call sub.USER32.dll_wsprintfA
add esp, 0x18
push 0x20
push ebx
call fcn.0051833c
add esp, 8
test eax, eax
je 0x454249
push ebx
push dword [0x54ac14]
push 0x52cfdf
push 0x555aeb
call sub.USER32.dll_wsprintfA
add esp, 0x10
jmp 0x454262
push ebx
push dword [0x54ac14]
push 0x52cfe8
push 0x555aeb
call sub.USER32.dll_wsprintfA
add esp, 0x10
push 0
push 0
push 1
push 0x555aeb
push 0x555704
push esi
call fcn.00489ea4
test eax, eax
je 0x454294
inc dword [0x54ac0c]
mov edi, dword [0x54ac0c]
cmp edi, dword [0x54ac08]
jl 0x45419c
mov eax, dword [0x54ac14]
test eax, eax
je 0x4542a4
push eax
call fcn.00524270
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