Function at 0x485970
Capabilities:
Log keystrokes

Disassembly:
sub esp, 0x10
push ebx
push edi
mov edi, ecx
mov byte [esp + 0xb], dl
test edi, edi
je 0x485cc4
mov ebx, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push 0
push edi
call ebx
mov dword [esp + 0x10], eax
cmp eax, dword [0x4e8f18]
je 0x485a00
mov ecx, dword [0x4ea0fc]
test cl, 1
jne 0x4859cc
push str.IsHungAppWindow
or ecx, 1
push str.user32
mov dword [0x4ea0fc], ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4ea100], eax
jmp 0x4859d1
mov eax, dword [0x4ea100]
test eax, eax
je 0x4859da
push edi
call eax
jmp 0x4859f8
lea eax, [esp + 0xc]
push eax
push 0x1388
push 2
push 0
push 0
push 0
push edi
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
neg eax
sbb eax, eax
inc eax
test eax, eax
jne 0x485cc4
push ebp
push esi
mov esi, dword [sym.imp.USER32.dll_GetForegroundWindow]
call esi
push edi
mov ebp, eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x485a27
cmp byte [esp + 0x13], 0
jne 0x485a27
push 9
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
cmp edi, ebp
jne 0x485a35
pop esi
pop ebp
mov eax, edi
pop edi
pop ebx
add esp, 0x10
ret
cmp byte [0x4e7eee], 0
jne 0x485a93
push edi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov edx, 1
mov dword [0x4e37f0], 0
lea ecx, [edx + 9]
call fcn.004015e0
mov dword [0x4e37f0], 1
call esi
mov esi, eax
cmp esi, edi
jne 0x485a7a
mov esi, edi
mov eax, esi
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x10
ret
cmp esi, ebp
je 0x485a93
push 4
push esi
call dword [sym.imp.USER32.dll_GetWindow]
cmp edi, eax
jne 0x485a93
test esi, esi
jne 0x485cba
mov byte [esp + 0x11], 0
mov byte [esp + 0x12], 0
test ebp, ebp
je 0x485b5d
push 0
push ebp
call ebx
mov esi, eax
mov dword [esp + 0x14], esi
test esi, esi
je 0x485b65
cmp dword [0x4e8f18], esi
je 0x485b3c
mov ecx, dword [0x4ea0fc]
test cl, 1
jne 0x485af2
push str.IsHungAppWindow
or ecx, 1
push str.user32
mov dword [0x4ea0fc], ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x4ea100], eax
jmp 0x485af7
mov eax, dword [0x4ea100]
test eax, eax
je 0x485b00
push ebp
call eax
jmp 0x485b1e
lea eax, [esp + 0x1c]
push eax
push 0x1388
push 2
push 0
push 0
push 0
push ebp
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
neg eax
sbb eax, eax
inc eax
mov ebx, dword [sym.imp.USER32.dll_AttachThreadInput]
test eax, eax
jne 0x485b42
push 1
push esi
push dword [0x4e8f18]
call ebx
test eax, eax
setne byte [esp + 0x11]
jmp 0x485b42
mov ebx, dword [sym.imp.USER32.dll_AttachThreadInput]
mov eax, dword [esp + 0x18]
test eax, eax
je 0x485b65
cmp esi, eax
je 0x485b65
push 1
push eax
push esi
call ebx
test eax, eax
setne byte [esp + 0x12]
jmp 0x485b65
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
xor ebx, ebx
nop word [eax + eax]
movzx eax, byte [0x4e7eee]
cmp ebx, eax
jne 0x485ba5
cmp byte [0x4e9fa2], 0
jne 0x485ba5
push 0xffc3d450
push 0
push 0
push 0
mov dl, 0x12
mov byte [0x4e9fa2], 1
mov ecx, 1
call fcn.00419a20
add esp, 0x10
push edi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov edx, 1
mov dword [0x4e37f0], 0
lea ecx, [edx + 9]
call fcn.004015e0
mov dword [0x4e37f0], 1
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
cmp esi, edi
je 0x485c7a
cmp esi, ebp
je 0x485bf6
push 4
push esi
call dword [sym.imp.USER32.dll_GetWindow]
cmp edi, eax
jne 0x485bf6
test esi, esi
jne 0x485c7c
inc ebx
cmp ebx, 5
jl 0x485b70
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
mov ecx, 2
call fcn.00419a20
push 0xffc3d44d
push 0
push 0
push 0
mov dl, 0x12
mov ecx, 2
call fcn.00419a20
add esp, 0x20
push edi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov edx, 1
mov dword [0x4e37f0], 0
lea ecx, [edx + 9]
call fcn.004015e0
mov dword [0x4e37f0], 1
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
cmp esi, edi
je 0x485c7a
cmp esi, ebp
je 0x485c76
push 4
push esi
call dword [sym.imp.USER32.dll_GetWindow]
cmp edi, eax
je 0x485c7c
xor esi, esi
jmp 0x485c7c
mov esi, edi
cmp byte [esp + 0x11], 0
mov ebx, dword [esp + 0x14]
mov ebp, dword [sym.imp.USER32.dll_AttachThreadInput]
je 0x485c98
push 0
push ebx
push dword [0x4e8f18]
call ebp
cmp byte [esp + 0x12], 0
je 0x485ca8
push 0
push dword [esp + 0x1c]
push ebx
call ebp
test esi, esi
je 0x485cba
cmp byte [esp + 0x13], 0
jne 0x485cba
push edi
call dword [sym.imp.USER32.dll_BringWindowToTop]
mov eax, esi
pop esi
pop ebp
pop edi
pop ebx
add esp, 0x10
ret
pop edi
xor eax, eax
pop ebx
add esp, 0x10
ret