Function at 0x4486e2
Capabilities:
Get graphical window text
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd20
mov eax, dword [ebp + 8]
xor ecx, ecx
push ebx
mov ebx, dword [ebp + 0x14]
push esi
cmp dword [eax + 8], ecx
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 8], ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 4], ecx
mov ecx, dword [sym.imp.USER32.dll_SendMessageW]
push edi
mov dword [ebp - 0x20], ecx
je 0x448752
mov esi, dword [0x531f70]
xor edi, edi
inc edi
cmp dword [eax + 4], 2
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], edi
jne 0x44899c
push 0xbe7
call fcn.00492412
push eax
push 0x400
push dword [0x531f70]
call dword [ebp - 0x20]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 4], eax
jmp 0x44899c
push esi
push ebx
call dword [sym.imp.USER32.dll_WindowFromPoint]
mov edi, eax
lea eax, [ebp - 0x70]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, esi
mov dword [ebp - 0x14], ebx
sub eax, dword [ebp - 0x6c]
mov ecx, ebx
sub ecx, dword [ebp - 0x70]
push eax
push ecx
push edi
call dword [sym.imp.USER32.dll_ChildWindowFromPoint]
cmp eax, edi
je 0x448785
test eax, eax
jne 0x44875a
and dword [ebp - 0x10], 0
mov esi, edi
test edi, edi
je 0x4487a9
push 0xffffffffffffffec
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test al, 0x10
jne 0x4487a9
push esi
call dword [sym.imp.USER32.dll_GetParent]
mov esi, eax
test esi, esi
jne 0x44878f
mov ecx, dword [0x531f70]
test esi, esi
cmove esi, edi
mov dword [ebp - 0x24], esi
cmp esi, ecx
je 0x448991
mov ebx, dword [sym.imp.USER32.dll_IsChild]
push esi
push ecx
call ebx
test eax, eax
jne 0x44898b
mov edi, dword [ebp - 0x20]
push 0x7d5
push esi
push 0x400
push dword [0x531f70]
call edi
mov ecx, dword [0x531f70]
cmp eax, ecx
je 0x448991
mov eax, dword [0x531f78]
cmp esi, eax
je 0x448973
push esi
push eax
call ebx
test eax, eax
jne 0x44896e
push dword [0x531f78]
call dword [sym.imp.USER32.dll_GetParent]
test eax, eax
je 0x44882f
push dword [0x531f78]
push esi
call ebx
test eax, eax
jne 0x44896e
push 0x7d5
push esi
push 0x400
push dword [0x531f70]
call edi
mov edi, eax
mov eax, dword [0x531f78]
mov dword [ebp - 0x10], edi
cmp edi, eax
je 0x448973
push 0x507b64
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, dword [0x507b7c]
xor edi, edi
inc edi
mov dword [ebp - 0xc], edi
test ebx, ebx
je 0x44894d
push esi
push dword [ebx]
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
jne 0x4488a8
push dword [ebx]
call dword [sym.imp.USER32.dll_GetParent]
test eax, eax
je 0x448899
push dword [ebx]
push esi
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
jne 0x4488a0
mov ebx, dword [ebx + 0x1c]
test ebx, ebx
jne 0x448873
test ebx, ebx
je 0x44894d
cmp esi, dword [ebx]
je 0x4488ca
push dword [ebx]
push esi
call dword [sym.imp.USER32.dll_IsChild]
test eax, eax
jne 0x4488ca
push 0xffffffffffffffec
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test al, 0x10
jne 0x448951
xor eax, eax
push eax
push eax
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_FindWindowExW]
mov esi, eax
push 0xffffffffffffffec
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
test al, 0x10
jne 0x4488ed
mov esi, dword [ebp - 0x24]
mov ebx, edi
jmp 0x448954
push dword [ebx]
call dword [sym.imp.USER32.dll_GetParent]
push 0x80
mov ebx, eax
lea eax, [ebp - 0xf0]
push 0
push eax
call fcn.0049a3b0
add esp, 0xc
test ebx, ebx
je 0x448951
push ebx
call dword [sym.imp.USER32.dll_GetParent]
test eax, eax
je 0x448951
push 0x80
lea ecx, [ebp - 0xf0]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowTextA]
test eax, eax
je 0x448951
lea eax, [ebp - 0xf0]
push str.Player_Window
push eax
call fcn.004a194c
pop ecx
pop ecx
test eax, eax
jne 0x448951
mov esi, dword [ebp - 0x24]
mov ebx, edi
jmp 0x448954
mov ebx, dword [ebp - 8]
push 0x507b64
mov dword [ebp - 8], ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebx, ebx
je 0x44899c
mov ecx, dword [0x531f70]
jmp 0x44899a
mov eax, dword [0x531f78]
xor edi, edi
xor ecx, ecx
inc edi
mov esi, eax
cmp dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], edi
setne cl
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], ecx
jmp 0x44899c
mov ecx, dword [0x531f70]
xor edi, edi
inc edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], edi
mov esi, ecx
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x448dd0
push str.UniformResourceLocator
call dword [sym.imp.USER32.dll_RegisterClipboardFormatW]
and dword [ebp - 0x48], 0
lea ecx, [ebp - 0x4c]
or dword [ebp - 0x40], 0xffffffff
and dword [ebp - 0x5c], 0
or dword [ebp - 0x54], 0xffffffff
push 0xf
mov word [ebp - 0x4c], ax
pop eax
mov word [ebp - 0x60], ax
mov eax, dword [ebx]
push ecx
push ebx
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x50], edi
call dword [eax + 0x14]
mov ecx, dword [ebx]
test eax, eax
jne 0x448c4c
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x4c]
push eax
push ebx
call dword [ecx + 0xc]
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov edi, eax
mov dword [ebp - 4], edi
test edi, edi
je 0x448c39
cmp dword [ebp - 0x28], 0
mov ebx, dword [ebp - 8]
jne 0x448a33
test ebx, ebx
jne 0x448a37
mov eax, dword [ebp + 8]
cmp dword [eax + 8], ebx
je 0x448c39
jmp 0x448a5f
test ebx, ebx
je 0x448a5c
push 0x10
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jb 0x448a5c
call fcn.00491a51
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 8]
mov dword [ebp + 0x18], eax
mov dword [ebp + 0xc], esi
jmp 0x448ae1
mov eax, dword [ebp + 8]
and dword [ebp - 0xc], 0
test ebx, ebx
jne 0x448ad5
cmp dword [eax + 8], ebx
jne 0x448ad5
lea eax, [ebp - 0x38]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [0x4f7c88]
cmp ecx, 0xe
je 0x448ab5
cmp dword [ebp - 0x1c], ebx
jne 0x448ab5
mov eax, dword [ebp + 0x18]
sub eax, dword [ebp - 0x34]
mov esi, dword [0x4f7df8]
sub eax, 0x14
cdq
idiv esi
mov ebx, eax
test ebx, ebx
jns 0x448aa3
xor ebx, ebx
jmp 0x448abc
lea eax, [ecx - 0x3c]
cdq
idiv esi
cmp ebx, eax
jg 0x448ab5
add ebx, dword [0x50d6f8]
jmp 0x448abc
call fcn.00492412
mov ebx, eax
call fcn.00492412
push ebx
mov dword [ebp + 0x18], eax
call fcn.00492be5
pop ecx
call fcn.00491c69
mov dword [ebp + 0xc], eax
jmp 0x448ae4
mov eax, dword [ebp + 8]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 8]
mov dword [ebp + 0xc], eax
mov ebx, dword [ebp + 8]
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsURLA]
test eax, eax
jne 0x448b87
mov esi, str.file:___
lea edi, [ebp - 0xd20]
push 0x407
lea eax, [ebp - 0xd17]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor esi, esi
push esi
push eax
call fcn.0049a3b0
mov edi, dword [ebp - 4]
lea eax, [ebp - 0xd20]
push 0x410
push edi
push eax
call fcn.004abc00
add esp, 0x18
lea eax, [ebp - 0xd20]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push esi
push eax
lea eax, [ebp - 0xd20]
push eax
push eax
call dword [sym.imp.SHLWAPI.dll_PathCreateFromUrlA]
lea ecx, [ebp - 0x910]
test eax, eax
js 0x448b74
xor eax, eax
mov word [ebp - 0x910], ax
mov eax, ecx
push eax
lea eax, [ebp - 0xd20]
push eax
call fcn.0041559c
jmp 0x448ba1
xor eax, eax
mov word [ebp - 0x910], ax
lea eax, [ebp - 0x910]
push eax
push edi
jmp 0x448b6d
xor eax, eax
mov word [ebp - 0x910], ax
lea eax, [ebp - 0x910]
push eax
push edi
mov ecx, eax
call fcn.0041559c
xor esi, esi
push esi
lea eax, [ebp - 0x910]
push esi
push eax
call fcn.00491763
add esp, 0xc
cmp dword [ebp - 0xc], 0
je 0x448bbf
call fcn.0048fb27
jmp 0x448c39
cmp dword [ebp - 8], 0
jne 0x448c39
mov eax, dword [ebp + 8]
cmp dword [eax + 8], esi
jne 0x448c39
call fcn.00492b13
call fcn.00491c69
cmp ebx, eax
jg 0x448c34
call fcn.00492412
mov ecx, dword [ebp + 0xc]
sub ecx, dword [ebp + 0x18]
add eax, ecx
push eax
call fcn.00492de2
cmp dword [0x5337d8], 0
pop ecx
jne 0x448c34
push 0x532de0
mov esi, 0x532ac0
push esi
push 0x5322a0
call fcn.00491cd5
add esp, 0xc
cmp dword [0x531f90], 0
je 0x448c20
call fcn.00489c91
jmp 0x448c25
call fcn.00491ecf
push eax
push 0x52fd30
push esi
call fcn.0041d06a
add esp, 0xc
call fcn.0045c8b5
push edi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push edi
call dword [sym.imp.KERNEL32.dll_GlobalFree]
jmp 0x448dd0
lea eax, [ebp - 0x60]
push eax
push ebx
call dword [ecx + 0x14]
test eax, eax
jne 0x448dd0
mov eax, dword [ebx]
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x60]
push ecx
push ebx
call dword [eax + 0xc]
push 0x820
lea eax, [ebp - 0x910]
push 0
push eax
call fcn.0049a3b0
mov eax, dword [ebp + 8]
add esp, 0xc
cmp dword [eax + 4], 0
je 0x448d27
mov edi, dword [ebp - 0x14]
lea eax, [ebp - 0x910]
push 0x410
push eax
push 0xffffffffffffffff
push edi
call dword [sym.imp.SHELL32.dll_DragQueryFileW]
mov dword [ebp + 0xc], eax
call fcn.00491c69
xor esi, esi
mov ebx, eax
cmp dword [ebp + 0xc], esi
jle 0x448d16
cmp dword [ebp - 4], esi
jne 0x448cea
push 0x410
lea eax, [ebp - 0x910]
push eax
push esi
push edi
call dword [sym.imp.SHELL32.dll_DragQueryFileW]
push 0
lea eax, [ebp - 0x910]
push 0
push eax
call fcn.00491763
add esp, 0xc
inc esi
cmp esi, dword [ebp + 0xc]
jl 0x448cbb
jmp 0x448d16
xor esi, esi
push 0x410
lea eax, [ebp - 0x910]
push eax
push esi
push edi
call dword [sym.imp.SHELL32.dll_DragQueryFileW]
lea eax, [ebp - 0x910]
inc ebx
push eax
push ebx
call fcn.0049270d
inc esi
pop ecx
pop ecx
cmp esi, dword [ebp + 0xc]
jl 0x448cec
push edi
call dword [sym.imp.SHELL32.dll_DragFinish]
call fcn.0045c8b5
jmp 0x448dd0
push 0xfffffffffffffffe
pop eax
mov dword [ebp + 0xc], eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x38]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowRect]
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_GlobalLock]
mov ecx, dword [ebp + 0x14]
sub ecx, dword [ebp - 0x38]
cmp dword [ebp - 0x1c], 0
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0x2c]
jne 0x448d59
mov ecx, dword [ebp + 0x18]
sub ecx, dword [ebp - 0x34]
mov dword [eax + 8], ecx
and dword [eax + 0xc], 0
push eax
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push 0x410
lea eax, [ebp - 0x910]
push eax
push 0
push dword [ebp - 0x14]
call dword [sym.imp.SHELL32.dll_DragQueryFileW]
push 0
lea eax, [ebp + 0xc]
push eax
push dword [0x531f70]
lea eax, [ebp - 0x910]
push eax
call fcn.0040f01a
push edi
lea eax, [ebp - 4]
push eax
push dword [0x531f70]
lea eax, [ebp - 0x910]
push eax
call fcn.0040f01a
add esp, 0x20
cmp dword [ebp + 0xc], 0
jne 0x448dd0
cmp dword [ebp - 4], 0
jne 0x448dd0
push 0
push dword [ebp - 0x14]
push 0x233
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
cmp dword [eax + 8], 0
je 0x448dfb
cmp dword [eax + 4], 2
jne 0x448dfb
push 0xbe8
call fcn.00492412
push eax
push 0x400
push dword [0x531f70]
call dword [ebp - 0x20]
xor eax, eax
leave
ret 0x18