Function at 0x4014c0
Capabilities:
Hide graphical window
Log keystrokes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
mov eax, dword [ebp + 8]
push ebx
push esi
xor ebx, ebx
push edi
mov esi, ecx
mov dword [esp + 0xc], ebx
cmp eax, 0x216
ja 0x40155a
je 0x401544
sub eax, 2
je 0x401523
sub eax, 0x9f
je 0x40150f
sub eax, 0x72
jne 0x4016b3
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
push eax
push ecx
mov ecx, esi
call fcn.00401b10
mov dword [esp + 0xc], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [ebp + 0x14]
mov dword [edx], ebx
mov dword [esp + 0xc], ebx
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esi + 4]
push 0x56425c
push eax
call dword [sym.imp.USER32.dll_RemovePropW]
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0xc]
mov dword [ecx], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [ebp + 0x14]
push edx
call fcn.00401d90
mov dword [esp + 0xc], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
sub eax, 0x46a
je 0x40169c
sub eax, 0xf
je 0x401628
sub eax, 0x370
jne 0x4016b3
cmp dword [ebp + 0xc], 0x80
je 0x401590
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0x10]
sub eax, 0x201
je 0x4015b6
sub eax, 4
jne 0x4016b3
push esi
call fcn.00401e30
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [esi + 4]
push 1
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [esi + 4]
push 1
push ecx
call dword [sym.imp.USER32.dll_SwitchToThisWindow]
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 1
call edi
push eax
push ebx
mov ebx, dword [sym.imp.USER32.dll_GetForegroundWindow]
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov edx, dword [esi + 4]
push edx
call dword [sym.imp.USER32.dll_SetForegroundWindow]
mov eax, dword [esi + 4]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
push 0
call edi
push eax
push 0
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push eax
call dword [sym.imp.USER32.dll_AttachThreadInput]
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
mov edx, str.taryMenu_show
mov di, word [ecx]
cmp di, word [edx]
jne 0x401658
cmp di, bx
je 0x401654
mov di, word [ecx + 2]
cmp di, word [edx + 2]
jne 0x401658
add ecx, 4
add edx, 4
cmp di, bx
jne 0x401632
xor ecx, ecx
jmp 0x40165d
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x40167a
mov ecx, dword [esi + 4]
push 8
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, str.taryMenu_quit
call fcn.0040a9b0
test al, al
je 0x4016b3
push ebx
call dword [sym.imp.USER32.dll_PostQuitMessage]
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [ebp + 0xc]
mov eax, dword [esi + 4]
imul edx, edx, 0x3e8
push ebx
push edx
push 0xa
push eax
call dword [sym.imp.USER32.dll_SetTimer]
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10