Function at 0x45c4b0
Capabilities:
Check for time delay via gettickcount
Check for unmoving mouse cursor
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x100
mov eax, dword [0x5836e0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
mov eax, 0xffff8300
push esi
mov esi, dword [ebp + 8]
mov dword [ebp - 0xe8], ecx
push edi
cmp esi, eax
je 0x45c4e3
cmp ebx, eax
jne 0x45c5db
xor eax, eax
lea edi, [ebp - 0x94]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x94]
push eax
push dword [0x5a22a4]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [0x5a22a0]
lea eax, [ebp - 0xe0]
push eax
lea ecx, [ecx + 0x180]
call fcn.004ba2d3
mov esi, eax
lea edi, [ebp - 0x100]
push 0x38
lea eax, [ebp - 0xcc]
push 0
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xd0], 0x3c
call fcn.004f5a90
add esp, 0xc
lea eax, [ebp - 0xd0]
push eax
push dword [0x5a22a4]
call dword [sym.imp.USER32.dll_GetWindowInfo]
mov ecx, dword [0x5a22a0]
push 0
lea ecx, [ecx + 0x180]
call fcn.0043220a
test al, al
je 0x45c5a3
mov ecx, dword [0x5a22a0]
mov ecx, dword [ecx + 0x3e64]
call fcn.004bf1f7
test al, al
je 0x45c5a3
mov eax, dword [0x5a23ec]
cmp byte [eax + 0x110b2], 1
je 0x45c5a3
mov ecx, dword [0x5a22a0]
mov ecx, dword [ecx + 0x3e64]
call fcn.004bf083
jmp 0x45c5a5
xor eax, eax
mov esi, dword [ebp + 8]
mov ecx, 0xffff8300
cmp esi, ecx
jne 0x45c5c3
mov esi, dword [ebp - 0x8c]
sub esi, dword [ebp - 0xa0]
sub esi, dword [ebp - 0xf8]
cmp ebx, ecx
jne 0x45c5db
mov ebx, dword [ebp - 0x88]
sub ebx, dword [ebp - 0x9c]
sub ebx, dword [ebp - 0xf4]
add ebx, eax
mov ecx, dword [0x5a22a0]
push 0
lea ecx, [ecx + 0x180]
call fcn.00432292
mov ecx, dword [0x5a22a0]
add ecx, 0x180
mov byte [ebp - 0xe2], al
call fcn.00432465
push dword [0x5a22a4]
mov byte [ebp - 0xe3], al
call dword [sym.imp.USER32.dll_IsWindowVisible]
push 0xfffffffffffffff0
push dword [0x5a22a4]
test eax, eax
setne byte [ebp - 0xe1]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [ebp - 0xe8]
push 0
mov dword [ebp - 0x88], eax
call fcn.00459e39
mov edi, eax
test edi, edi
je 0x45c91f
mov ecx, dword [0x5a22a0]
cmp dword [ecx + 0x3e68], 0
jne 0x45c769
cmp byte [ebp - 0xe1], 0
je 0x45c67d
cmp byte [ebp - 0xe2], 0
jne 0x45c679
cmp byte [ebp - 0xe3], 0
je 0x45c67d
xor eax, eax
jmp 0x45c680
xor eax, eax
inc eax
push eax
push 0xf120
push edi
call dword [sym.imp.USER32.dll_EnableMenuItem]
cmp byte [ebp - 0xe1], 0
je 0x45c6ac
cmp byte [ebp - 0xe2], 0
jne 0x45c6ac
cmp byte [ebp - 0xe3], 0
jne 0x45c6ac
xor eax, eax
jmp 0x45c6af
xor eax, eax
inc eax
push eax
push 0xf010
push edi
call dword [sym.imp.USER32.dll_EnableMenuItem]
cmp byte [ebp - 0xe1], 0
je 0x45c6e7
cmp byte [ebp - 0xe2], 0
jne 0x45c6e7
cmp byte [ebp - 0xe3], 0
jne 0x45c6e7
test dword [ebp - 0x88], 0x40000
je 0x45c6e7
xor eax, eax
jmp 0x45c6ea
xor eax, eax
inc eax
push eax
push 0xf000
push edi
call dword [sym.imp.USER32.dll_EnableMenuItem]
cmp byte [ebp - 0xe1], 0
je 0x45c719
cmp byte [ebp - 0xe2], 0
jne 0x45c719
test dword [ebp - 0x88], 0x20000
je 0x45c719
xor eax, eax
jmp 0x45c71c
xor eax, eax
inc eax
push eax
push 0xf020
push edi
call dword [sym.imp.USER32.dll_EnableMenuItem]
cmp byte [ebp - 0xe1], 0
je 0x45c74b
cmp byte [ebp - 0xe3], 0
jne 0x45c74b
test dword [ebp - 0x88], 0x10000
je 0x45c74b
xor eax, eax
jmp 0x45c74e
xor eax, eax
inc eax
push eax
push 0xf030
push edi
call dword [sym.imp.USER32.dll_EnableMenuItem]
push 0
push 0xabcf
push edi
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov eax, dword [ebp - 0xe8]
push 0
push edi
push 0x116
mov dword [eax + 0x18], 1
push dword [0x5a22a4]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x10000
push edi
push 0x117
push dword [0x5a22a4]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [0x5a22a4]
call dword [sym.imp.USER32.dll_SetActiveWindow]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0xe8]
and dword [ebp - 0xf0], 0
and dword [ebp - 0xec], 0
mov dword [ecx + 4], eax
lea eax, [ebp - 0xf0]
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
mov eax, dword [ebp + 0x10]
push 0
push dword [0x5a22a4]
or eax, 0x102
push ebx
push esi
push eax
push edi
mov edi, dword [ebp - 0xe8]
mov ecx, edi
push 1
call fcn.0045ccbd
mov esi, eax
test esi, esi
jne 0x45c8a5
push 1
call dword [sym.imp.USER32.dll_GetKeyState]
movzx ebx, ax
shr ebx, 0xf
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 8], eax
and bl, 1
je 0x45c8a9
call dword [sym.imp.USER32.dll_GetDoubleClickTime]
mov ecx, dword [edi + 8]
sub ecx, dword [edi + 4]
cmp ecx, eax
jae 0x45c8a9
and dword [ebp - 0x8c], esi
lea eax, [ebp - 0x8c]
and dword [ebp - 0x88], esi
push eax
call dword [sym.imp.USER32.dll_GetCursorPos]
push 8
push dword [ebp - 0xec]
push dword [ebp - 0xf0]
push dword [ebp - 0x88]
push dword [ebp - 0x8c]
call fcn.004e6b6b
add esp, 0x14
test al, al
je 0x45c8a9
movzx ecx, word [ebp - 0x88]
movzx eax, word [ebp - 0x8c]
shl ecx, 0x10
or ecx, eax
push ecx
push esi
push 0x84
push dword [0x5a22a4]
call dword [sym.imp.USER32.dll_SendMessageW]
cmp eax, 3
jne 0x45c8a9
mov esi, 0xf060
jmp 0x45c8a9
and dword [edi + 8], 0
push esi
lea eax, [ebp - 0x84]
push str.ShowSysmenu_result:__i
push eax
call fcn.00409b67
push 1
lea eax, [ebp - 0x84]
push 1
push eax
call fcn.00421c79
add esp, 0x18
test esi, esi
je 0x45c91f
cmp byte [0x5a54f9], 0
je 0x45c90d
mov ecx, dword [0x5a22a0]
push 0
lea ecx, [ecx + 0x180]
call fcn.00432292
test al, al
je 0x45c90d
cmp esi, 0xf060
je 0x45c90d
mov ecx, dword [0x5a22a0]
push 3
lea ecx, [ecx + 0x180]
call fcn.0042a232
push 0
push esi
push dword [edi + 0x10]
push dword [0x5a22a4]
call dword [sym.imp.USER32.dll_PostMessageW]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004f4166
leave
ret 0xc