Function at 0x405030
Capabilities:
Shutdown system

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x14c
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov edi, dword [ebp + 0x14]
test byte [0x411024], 8
jne 0x4050f0
cmp esi, 0x20
ja 0x405070
cmp esi, 0xe
jbe case.0x405067.17
lea eax, [esi - 0xf]
cmp eax, 0x11
ja case.0x405067.17
jmp dword [eax*4 + 0x4124e0]
cmp esi, 0x203
je 0x4054e0
jbe 0x4050a8
cmp esi, 0x210
jne case.0x405067.17
mov dword [esp + 4], edx
mov dword [esp], edi
call dbg.handle_parent_notify
lea esi, [esi]
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
cmp esi, 0x84
je 0x405180
cmp esi, 0x112
jne case.0x405067.17
mov eax, edx
and eax, 0xfff0
cmp eax, 0xf060
je 0x405650
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x10], edx
mov dword [ebp + 0xc], esi
mov dword [ebp + 8], ebx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
jmp dword [0x41b208]
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edi
mov dword [ebp - 0xfc], edx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.got_msg__04x_wp__Ix_lp__Ix_n
mov dword [esp + 8], global___func__.21
mov dword [esp + 4], global___dbch
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov edx, dword [ebp - 0xfc]
jmp 0x405055
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]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov eax, dword [0x411020]
test eax, eax
je 0x4056d0
lea esi, [esi]
mov eax, 1
jmp 0x40509a
cmp edx, 0x14
jne 0x405098
mov dword [esp + 0xc], 0
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 0x405098
lea eax, [ebp - 0xb4]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_BeginPaint]
mov esi, dword [0x411020]
sub esp, 8
test esi, esi
jne 0x4054c4
mov ecx, dword [ebp - 0xb0]
test ecx, ecx
jne 0x405670
mov eax, dword [ebp - 0xac]
mov edi, dword [ebp - 0xb4]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xf0], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xec], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xe8], eax
mov eax, dword [sym.imp.gdi32.dll_SetTextColor]
mov dword [esp], edi
mov dword [esp + 4], 0xffffff
mov dword [ebp - 0x10c], eax
call eax
mov esi, dword [sym.imp.gdi32.dll_SetBkMode]
sub esp, 8
mov dword [ebp - 0x104], eax
mov dword [esp + 4], 1
mov dword [ebp - 0x100], edi
mov dword [esp], edi
lea edi, [ebp - 0x74]
call esi
sub esp, 8
mov dword [ebp - 0x108], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x5c
mov dword [esp], 0x1f
call dword [sym.imp.user32.dll_SystemParametersInfoW]
sub esp, 0x10
mov dword [esp], edi
call dword [sym.imp.gdi32.dll_CreateFontIndirectW]
sub esp, 4
mov dword [esp + 4], eax
mov eax, dword [sym.imp.gdi32.dll_SelectObject]
mov edi, dword [ebp - 0x100]
mov dword [esp], edi
mov dword [ebp - 0x110], eax
call eax
mov edx, dword [0x41b25c]
sub esp, 8
test edx, edx
je 0x405482
xor edi, edi
mov dword [ebp - 0x11c], esi
mov dword [ebp - 0x114], eax
mov esi, edi
mov dword [ebp - 0x118], ebx
jmp 0x405335
lea eax, [ebp - 0xf4]
mov dword [esp + 8], eax
lea eax, [ebp - 0xc4]
mov dword [esp + 4], eax
lea eax, [ebp - 0xe4]
mov dword [esp], eax
call dword [sym.imp.user32.dll_IntersectRect]
sub esp, 0xc
test eax, eax
jne 0x405690
add esi, 1
cmp esi, dword [0x41b25c]
jae 0x405470
mov eax, esi
xor edx, edx
mov ecx, dword [0x41b268]
mov ebx, dword [0x41b280]
div dword [0x41b264]
mov edi, dword [0x41b288]
imul edx, ecx
imul eax, ecx
mov ecx, dword [0x41b27c]
add ebx, edx
add edx, dword [0x41b270]
add edi, ebx
add ecx, eax
mov dword [ebp - 0xd4], ebx
mov ebx, dword [0x41b274]
mov dword [ebp - 0xfc], edi
mov edi, dword [0x41b284]
mov dword [ebp - 0xd0], ecx
add eax, dword [0x41b26c]
add edi, ecx
mov ecx, dword [0x41b278]
add ebx, eax
mov dword [ebp - 0xc0], eax
mov dword [ebp - 0xc8], edi
mov edi, dword [ebp - 0xfc]
lea eax, [ebp - 0xf4]
add ecx, edx
mov dword [ebp - 0xc4], edx
mov dword [ebp - 0xcc], edi
mov dword [ebp - 0xbc], ecx
mov dword [ebp - 0xb8], ebx
mov dword [esp + 8], eax
lea eax, [ebp - 0xd4]
mov dword [esp + 4], eax
lea eax, [ebp - 0xe4]
mov dword [esp], eax
call dword [sym.imp.user32.dll_IntersectRect]
sub esp, 0xc
test eax, eax
je 0x4052f8
mov dword [esp + 0x20], 0xb
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov eax, dword [0x41b284]
mov dword [esp + 0x14], eax
mov eax, dword [0x41b288]
mov dword [esp + 0x10], eax
mov eax, dword [0x41b260]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0xd0]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0xd4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x100]
mov dword [esp], eax
call dword [sym.imp.user32.dll_DrawIconEx]
sub esp, 0x24
jmp 0x4052f8
mov dword [esp], 0
call dword [sym.imp.user32.dll_PostQuitMessage]
sub esp, 4
jmp 0x405098
mov eax, dword [ebp - 0x114]
mov ebx, dword [ebp - 0x118]
mov esi, dword [ebp - 0x11c]
mov dword [esp + 4], eax
mov edi, dword [ebp - 0x100]
mov dword [esp], edi
mov eax, dword [ebp - 0x110]
call eax
mov eax, dword [ebp - 0x104]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], edi
mov eax, dword [ebp - 0x10c]
call eax
mov eax, dword [ebp - 0x108]
sub esp, 8
mov dword [esp + 4], eax
mov dword [esp], edi
call esi
sub esp, 8
lea eax, [ebp - 0xb4]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_EndPaint]
sub esp, 8
jmp 0x405098
mov eax, dword [0x411020]
test eax, eax
jne 0x405098
mov edx, edi
movsx eax, di
mov edi, dword [0x41b25c]
mov dword [ebp - 0xfc], eax
sar edx, 0x10
test edi, edi
je 0x405098
mov ecx, dword [0x41b268]
mov eax, edx
mov dword [ebp - 0x100], edx
cdq
mov esi, dword [0x41b264]
idiv ecx
mov ebx, eax
mov eax, dword [ebp - 0xfc]
imul ebx, esi
cdq
idiv ecx
add ebx, eax
mov dword [ebp - 0x108], ebx
cmp ebx, edi
jae 0x405098
mov eax, ebx
xor edx, edx
mov ebx, dword [0x41b280]
div esi
mov esi, dword [0x41b27c]
imul edx, ecx
mov edi, eax
imul edi, ecx
mov ecx, dword [0x41b278]
add ebx, edx
add edx, dword [0x41b270]
add ecx, edx
add esi, edi
cmp dword [ebp - 0x100], esi
mov dword [ebp - 0x104], ecx
mov ecx, dword [0x41b26c]
mov dword [ebp - 0x10c], ecx
mov ecx, dword [0x41b274]
mov dword [ebp - 0x110], ecx
setl cl
cmp dword [ebp - 0xfc], ebx
setl al
add ebx, dword [0x41b288]
or eax, ecx
cmp dword [ebp - 0xfc], ebx
setg cl
or cl, al
jne 0x4055bd
add esi, dword [0x41b284]
cmp dword [ebp - 0x100], esi
jle 0x4055ff
mov eax, dword [ebp - 0xfc]
cmp eax, edx
jl 0x405098
mov edx, dword [ebp - 0x104]
cmp eax, edx
jg 0x405098
mov eax, dword [ebp - 0x10c]
add eax, edi
mov edi, dword [ebp - 0x100]
cmp edi, eax
jl 0x405098
mov ecx, dword [ebp - 0x110]
add eax, ecx
cmp edi, eax
jg 0x405098
mov eax, dword [0x41b260]
mov edi, dword [ebp - 0x108]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x405098
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 [0x41c5c4]
sub esp, 0x18
jmp 0x405098
mov dword [esp + 4], 0xffffffff
mov dword [esp], 0
call dword [sym.imp.user32.dll_ExitWindowsEx]
sub esp, 8
jmp 0x405098
mov eax, dword [ebp - 0xb4]
mov dword [esp], eax
call dword [sym.imp.user32.dll_PaintDesktop]
sub esp, 4
jmp 0x405202
lea eax, [ebp - 0xc4]
mov dword [esp + 0x10], 0xa011
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0xffffffff
mov eax, dword [0x41b260]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x100]
mov dword [esp], eax
call dword [sym.imp.user32.dll_DrawTextW]
sub esp, 0x14
jmp 0x405326
mov dword [esp], edx
call dword [sym.imp.user32.dll_PaintDesktop]
sub esp, 4
jmp 0x405180