Function at 0x403090
Capabilities:
Shutdown system

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x124
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 0x14]
mov dword [ebp - 0xec], eax
test byte [0x4120c4], 8
jne 0x403170
cmp ebx, 0x20
ja 0x4030d8
cmp ebx, 0xe
jbe case.0x4030cd.17
lea eax, [ebx - 0xf]
cmp eax, 0x11
ja case.0x4030cd.17
jmp dword [eax*4 + 0x4134a4]
cmp ebx, 0x203
je 0x403580
jbe 0x403110
cmp ebx, 0x210
jne case.0x4030cd.17
mov dword [esp + 4], edi
xor ebx, ebx
mov dword [esp], esi
call sym._handle_parent_notify
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
cmp ebx, 0x84
je 0x403158
cmp ebx, 0x112
jne case.0x4030cd.17
mov eax, edi
and eax, 0xfff0
cmp eax, 0xf060
je 0x403708
mov eax, dword [ebp - 0xec]
mov dword [ebp + 0x14], esi
mov dword [ebp + 0x10], edi
mov dword [ebp + 0xc], ebx
mov dword [ebp + 8], eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp dword [0x41239c]
lea esp, [ebp - 0xc]
mov ebx, 1
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], str.got_msg__04x_wp__Ix_lp__Ix_n
mov dword [esp + 8], str.desktop_wnd_proc
mov dword [esp + 4], 0x4120c4
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x4030bb
lea eax, [ebp - 0xa8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xec]
mov dword [esp], eax
call dword [sym.imp.user32.dll_BeginPaint]
mov ecx, dword [0x412720]
sub esp, 8
test ecx, ecx
jne 0x40330e
mov edx, dword [ebp - 0xa4]
test edx, edx
jne 0x403760
mov eax, dword [ebp - 0xa0]
mov esi, dword [ebp - 0xa8]
mov dword [esp + 4], 0xffffff
lea ebx, [ebp - 0x68]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xf4], esi
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x98]
mov dword [esp], esi
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0xdc], eax
mov eax, dword [sym.imp.gdi32.dll_SetTextColor]
mov dword [ebp - 0x10c], eax
call eax
mov dword [ebp - 0xf8], eax
mov eax, dword [sym.imp.gdi32.dll_SetBkMode]
sub esp, 8
mov dword [esp], esi
mov dword [esp + 4], 1
mov dword [ebp - 0x108], eax
call eax
sub esp, 8
mov dword [ebp - 0xfc], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x5c
mov dword [esp], 0x1f
call dword [sym.imp.user32.dll_SystemParametersInfoW]
sub esp, 0x10
mov dword [esp], ebx
call dword [sym.imp.gdi32.dll_CreateFontIndirectW]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [sym.imp.gdi32.dll_SelectObject]
mov dword [esp], esi
xor esi, esi
mov dword [ebp - 0x104], eax
call eax
mov dword [ebp - 0x100], eax
mov eax, dword [0x412490]
sub esp, 8
test eax, eax
jne 0x403472
lea esi, [esi]
mov esi, dword [ebp - 0xf4]
mov eax, dword [ebp - 0x100]
mov dword [esp], esi
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x104]
call eax
mov eax, dword [ebp - 0xf8]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10c]
mov dword [esp], esi
call eax
mov eax, dword [ebp - 0xfc]
sub esp, 8
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x108]
mov dword [esp], esi
call eax
sub esp, 8
lea eax, [ebp - 0xa8]
xor ebx, ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xec]
mov dword [esp], eax
call dword [sym.imp.user32.dll_EndPaint]
mov eax, ebx
sub esp, 8
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov dword [esp], 0
xor ebx, ebx
call dword [sym.imp.user32.dll_PostQuitMessage]
mov eax, ebx
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov esi, dword [0x412720]
mov ebx, 1
test esi, esi
jne 0x4030fc
mov dword [esp], edi
call dword [sym.imp.user32.dll_PaintDesktop]
sub esp, 4
jmp 0x4030fc
cmp edi, 0x14
je 0x403730
xor ebx, ebx
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov dword [esp + 4], 0x7f00
mov dword [esp], 0
call dword [sym.imp.user32.dll_LoadCursorA]
sub esp, 8
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetCursor]
mov ebx, eax
sub esp, 4
lea esp, [ebp - 0xc]
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov eax, dword [0x4123d0]
mov dword [esp + 0x20], 0xb
mov dword [esp + 0x1c], 0
mov dword [esp + 0x14], eax
mov eax, dword [0x4123c8]
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], eax
mov eax, dword [0x4123f8]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xc4]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xc8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xf4]
mov dword [esp], eax
call dword [sym.imp.user32.dll_DrawIconEx]
sub esp, 0x24
lea eax, [ebp - 0xe8]
mov dword [esp + 8], eax
lea eax, [ebp - 0xb8]
mov dword [esp + 4], eax
lea eax, [ebp - 0xd8]
mov dword [esp], eax
call dword [sym.imp.user32.dll_IntersectRect]
sub esp, 0xc
test eax, eax
jne 0x403538
inc esi
cmp esi, dword [0x412490]
jae 0x4032c0
mov eax, esi
xor edx, edx
mov ecx, dword [0x4123f4]
mov ebx, dword [0x4123e0]
div dword [0x4123fc]
mov edi, dword [0x4123c8]
imul edx, ecx
imul eax, ecx
mov ecx, dword [0x4123e4]
add ebx, edx
add edx, dword [0x412674]
add edi, ebx
mov dword [ebp - 0xc8], ebx
add ecx, eax
mov ebx, dword [0x412670]
mov dword [ebp - 0xf0], edi
mov edi, dword [0x4123d0]
add eax, dword [0x412678]
mov dword [ebp - 0xc4], ecx
add edi, ecx
mov dword [ebp - 0xb4], eax
add ebx, eax
mov ecx, dword [0x41266c]
lea eax, [ebp - 0xe8]
mov dword [ebp - 0xbc], edi
mov edi, dword [ebp - 0xf0]
mov dword [esp + 8], eax
lea eax, [ebp - 0xc8]
add ecx, edx
mov dword [esp + 4], eax
lea eax, [ebp - 0xd8]
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0xb8], edx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xac], ebx
mov dword [esp], eax
call dword [sym.imp.user32.dll_IntersectRect]
sub esp, 0xc
test eax, eax
je 0x403437
jmp 0x4033d8
lea eax, [ebp - 0xb8]
mov dword [esp + 0x10], 0xa011
mov dword [esp + 0xc], eax
mov eax, dword [0x4123f8]
mov dword [esp + 8], 0xffffffff
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0xf4]
mov dword [esp], eax
call dword [sym.imp.user32.dll_DrawTextW]
sub esp, 0x14
jmp 0x403465
mov ebx, dword [0x412720]
test ebx, ebx
jne 0x403391
mov edi, dword [0x412490]
mov edx, esi
movsx eax, si
mov dword [ebp - 0xec], eax
sar edx, 0x10
test edi, edi
je 0x4030fc
mov esi, dword [0x4123f4]
mov eax, edx
mov dword [ebp - 0xf0], edx
cdq
mov ecx, dword [0x4123fc]
idiv esi
mov edx, eax
mov eax, dword [ebp - 0xec]
imul edx, ecx
mov dword [ebp - 0xf4], edx
cdq
idiv esi
mov edx, dword [ebp - 0xf4]
add edx, eax
mov dword [ebp - 0xfc], edx
cmp edi, edx
jbe 0x4030fc
mov eax, edx
xor edx, edx
mov edi, dword [0x4123e4]
div ecx
mov ecx, dword [0x4123e0]
imul edx, esi
imul esi, eax
mov eax, dword [0x41266c]
add ecx, edx
add edx, dword [0x412674]
add eax, edx
add edi, esi
mov dword [ebp - 0xf8], eax
mov eax, dword [0x412678]
mov dword [ebp - 0x100], eax
mov eax, dword [0x412670]
mov dword [ebp - 0x104], eax
mov eax, dword [0x4123c8]
add eax, ecx
cmp dword [ebp - 0xec], eax
setg byte [ebp - 0xf4]
cmp dword [ebp - 0xec], ecx
setl al
cmp dword [ebp - 0xf0], edi
setl cl
or eax, ecx
movzx ecx, byte [ebp - 0xf4]
or cl, al
jne 0x403671
add edi, dword [0x4123d0]
cmp dword [ebp - 0xf0], edi
jle 0x4036b1
mov eax, dword [ebp - 0xec]
cmp eax, edx
jl 0x4030fc
mov edx, dword [ebp - 0xf8]
cmp eax, edx
jg 0x4030fc
mov eax, dword [ebp - 0x100]
mov edx, dword [ebp - 0xf0]
add eax, esi
cmp edx, eax
jl 0x4030fc
add eax, dword [ebp - 0x104]
cmp edx, eax
jg 0x4030fc
mov eax, dword [0x4123f8]
mov edi, dword [ebp - 0xfc]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x403391
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov eax, dword [eax]
mov dword [esp + 4], str.open
mov dword [esp + 8], eax
mov dword [esp], 0
call dword [0x41d624]
sub esp, 0x18
jmp 0x4030fc
mov dword [esp + 4], 0xffffffff
xor ebx, ebx
mov dword [esp], 0
call dword [sym.imp.user32.dll_ExitWindowsEx]
sub esp, 8
jmp 0x4030fc
mov dword [esp + 0xc], 0
xor ebx, ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x14
call dword [sym.imp.user32.dll_SystemParametersInfoW]
sub esp, 0x10
jmp 0x403393
mov eax, dword [ebp - 0xa8]
mov dword [esp], eax
call dword [sym.imp.user32.dll_PaintDesktop]
sub esp, 4
jmp 0x4031e0