Function at 0x409980
Capabilities:
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x38
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
cmp eax, 0x7b
je 0x409c70
jbe 0x409a70
cmp eax, 0x126
je 0x409a1a
jbe 0x409a08
cmp eax, 0x400
je 0x409af8
cmp eax, 0x401
jne 0x409cb3
mov ebx, dword [0x4123d8]
cmp ebx, 0x4123d8
je 0x4099f7
lea esi, [esi]
mov eax, dword [ebx + 0x10]
test eax, eax
je 0x4099ed
mov eax, ebx
call sym._hide_icon
mov eax, ebx
call sym._show_icon
mov ebx, dword [ebx]
cmp ebx, 0x4123d8
jne 0x4099d8
xor edi, edi
lea esp, [ebp - 0xc]
mov eax, edi
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
cmp eax, 0x111
je 0x409b10
cmp eax, 0x117
jne 0x409a38
mov dword [esp + 0xc], esi
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov dword [esp], edx
call sym._menu_wndproc
mov edi, eax
jmp 0x4099f9
cmp eax, 0x7e
jne 0x409cb3
mov edx, dword [0x4125c8]
test edx, edx
je 0x409cd0
mov eax, dword [0x4123b0]
or eax, dword [0x41248c]
je 0x409cd0
call sym._do_show_systray
xor edi, edi
jmp 0x4099f9
cmp eax, 0x21
je 0x409ae0
jbe 0x409aa0
cmp eax, 0x2b
je 0x409ba0
cmp eax, 0x4a
jne 0x409cb3
mov edx, esi
mov eax, ecx
call sym._handle_incoming
mov edi, eax
jmp 0x4099f9
cmp eax, 3
je 0x409af8
cmp eax, 0x10
jne 0x409cb3
mov dword [esp], edx
xor edi, edi
mov dword [esp + 4], 0
call dword [sym.imp.user32.dll_ShowWindow]
sub esp, 8
call sym._hide_balloon.constprop.0
mov dword [0x4125c8], 0
jmp 0x4099f9
lea esp, [ebp - 0xc]
mov edi, 3
pop ebx
mov eax, edi
pop esi
pop edi
pop ebp
ret 0x10
call sym._update_systray_balloon_position
xor edi, edi
lea esp, [ebp - 0xc]
pop ebx
mov eax, edi
pop esi
pop edi
pop ebp
ret 0x10
mov eax, ecx
shr eax, 0x10
jne 0x4099f7
cmp cx, 0x1a3
je 0x409d38
cmp cx, 0x1a0
je 0x409d38
mov dword [esp + 4], 0xfffffff4
mov dword [esp], esi
call dword [sym.imp.user32.dll_GetWindowLongW]
sub esp, 8
mov edi, eax
test eax, eax
je 0x409d74
mov dword [esp], eax
mov ebx, eax
call dword [sym.imp.user32.dll_IsIconic]
sub esp, 4
mov edi, eax
test eax, eax
jne 0x409d86
mov eax, dword [sym.imp.user32.dll_IsWindowEnabled]
mov dword [esp], ebx
mov dword [ebp - 0x20], eax
call eax
sub esp, 4
test eax, eax
je 0x409db1
call dword [sym.imp.user32.dll_GetForegroundWindow]
cmp ebx, eax
je 0x409e47
mov dword [esp], ebx
call dword [sym.imp.user32.dll_SetForegroundWindow]
sub esp, 4
jmp 0x4099f9
mov ebx, dword [0x412664]
mov eax, dword [esi + 4]
cmp ebx, 0x412664
jne 0x409bce
jmp 0x4099f7
mov ebx, dword [ebx]
cmp ebx, 0x412664
je 0x4099f7
cmp eax, dword [ebx + 8]
jne 0x409bc0
lea edi, [ebp - 0x1c]
mov dword [esp + 4], edi
mov eax, dword [esi + 0x14]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetClientRect]
mov eax, dword [esi + 0x10]
sub esp, 8
shl eax, 9
mov dword [esp + 8], 4
and eax, 0x200
mov dword [esp + 4], edi
or eax, 0x2010
mov dword [esp + 0xc], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call dword [sym.imp.user32.dll_DrawFrameControl]
mov edx, dword [ebx + 8]
sub esp, 0x10
test edx, edx
je 0x409cf0
cmp dword [ebx + 0x10], 1
mov dword [esp + 8], edi
sbb eax, eax
mov dword [esp + 0x14], 0
xor edi, edi
and eax, 0xf
mov dword [esp + 0x10], 0
add eax, 9
mov dword [esp + 0xc], 0
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x18]
mov dword [esp], edx
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_DrawCaptionTempW]
sub esp, 0x1c
jmp 0x4099f9
mov dword [esp + 4], 0xfffffff4
mov dword [esp], ecx
call dword [sym.imp.user32.dll_GetWindowLongW]
sub esp, 8
test eax, eax
je 0x4099f7
mov dword [esp + 0xc], esi
xor edi, edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x313
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendNotifyMessageW]
sub esp, 0x10
jmp 0x4099f9
mov dword [ebp + 0x14], esi
mov dword [ebp + 0x10], ecx
mov dword [ebp + 0xc], eax
mov dword [ebp + 8], edx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp dword [sym.imp.user32.dll_DefWindowProcW]
mov eax, dword [0x4126c4]
mov dword [esp + 4], 0
xor edi, edi
mov dword [esp], eax
call dword [sym.imp.user32.dll_ShowWindow]
sub esp, 8
jmp 0x4099f9
mov dword [esp + 8], edi
xor edi, edi
mov dword [esp + 0x18], 0x1c
mov dword [esp + 0x14], 0x4125e0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov eax, dword [esi + 0x18]
mov dword [esp], 0
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_DrawCaptionTempW]
sub esp, 0x1c
jmp 0x4099f9
test byte [0x412114], 1
je 0x4099f7
mov dword [esp + 0x10], ecx
xor edi, edi
mov dword [esp + 0xc], str.Shell_command__u_is_not_supported._n
mov dword [esp + 8], str.shell_traywnd_proc
mov dword [esp + 4], 0x412114
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0_4
jmp 0x4099f9
mov eax, dword [0x4126c4]
mov dword [esp], eax
call sym._do_startmenu
jmp 0x4099f9
mov dword [esp + 0xc], 0
xor edi, edi
mov dword [esp + 8], 0xf120
mov dword [esp + 4], 0x112
mov dword [esp], ebx
call dword [sym.imp.user32.dll_SendMessageW]
sub esp, 0x10
jmp 0x4099f9
call dword [sym.imp.user32.dll_GetDesktopWindow]
mov dword [esp + 4], 5
mov dword [esp], eax
mov eax, dword [sym.imp.user32.dll_GetWindow]
mov dword [ebp - 0x24], eax
call eax
sub esp, 8
mov esi, eax
test eax, eax
je 0x409e70
cmp ebx, eax
je 0x409e70
mov dword [ebp - 0x28], edi
mov edi, dword [ebp - 0x24]
jmp 0x409e0a
mov dword [esp], esi
mov dword [esp + 4], 2
call edi
sub esp, 8
mov esi, eax
test eax, eax
je 0x409e3d
cmp ebx, eax
je 0x409e3d
mov dword [esp], esi
call dword [sym.imp.user32.dll_IsWindowVisible]
sub esp, 4
test eax, eax
je 0x409df0
mov dword [esp], esi
mov eax, dword [ebp - 0x20]
call eax
sub esp, 4
test eax, eax
je 0x409df0
mov dword [esp + 4], 4
mov dword [esp], esi
call edi
sub esp, 8
cmp ebx, eax
jne 0x409df0
mov edi, dword [ebp - 0x28]
mov ebx, esi
jmp 0x409b8d
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0xf020
mov dword [esp + 4], 0x112
mov dword [esp], ebx
call dword [sym.imp.user32.dll_SendMessageW]
sub esp, 0x10
jmp 0x4099f9
mov ebx, esi
jmp 0x409b8d