Function at 0x4064d0
Capabilities:
Check if process is running under wine
Contain obfuscated stackstrings
Create process on windows
Create thread
Get number of processors
Get process heap flags
Query environment variable
Query or enumerate registry value
Set environment variable
Set registry value
Terminate process

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x620
mov edi, dword [ebp + 8]
movzx esi, word [edi]
mov dword [ebp - 0x5cc], edi
test si, si
je 0x40832e
mov word [ebp - 0x5bc], si
mov eax, esi
mov edx, edi
jmp 0x406509
test ax, ax
je 0x406f71
cmp ax, 0x20
mov esi, edx
sete bl
cmp ax, 9
movzx eax, word [edx + 2]
sete cl
add edx, 2
or bl, cl
je 0x406500
mov dword [ebp - 0x5cc], edx
mov edx, dword [ebp - 0x5cc]
mov word [esi], 0
test ax, ax
jne 0x406550
jmp 0x4078ab
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
je 0x4078ab
cmp ax, 0x20
je 0x406540
cmp ax, 9
je 0x406540
mov dword [ebp - 0x5cc], edx
movzx esi, word [edi]
cmp si, 0x3d
je 0x406571
cmp si, 0x2c
jne 0x406584
movzx eax, word [edi + 2]
test ax, ax
je 0x406584
cmp ax, 0x2c
jne 0x408069
mov dword [ebp - 0x480], 0x208
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x24]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetThreadDesktop]
sub esp, 4
test eax, eax
je 0x4065db
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x104
mov dword [esp + 8], 0x412160
mov dword [esp + 4], 2
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetUserObjectInformationW]
sub esp, 0x14
test eax, eax
jne 0x407b24
lea eax, [ebp - 0x354]
mov dword [esp + 4], str.SoftwareWineExplorer
mov esi, dword [sym.imp.advapi32.dll_RegOpenKeyW]
mov dword [ebp - 0x5bc], eax
mov dword [esp + 8], eax
mov dword [esp], 0x80000001
call esi
sub esp, 0xc
test eax, eax
lea eax, [ebp - 0x480]
mov dword [ebp - 0x5c8], eax
jne 0x406663
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x354]
mov dword [esp + 0x10], 0x412160
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.Desktop
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
sub esp, 0x18
test eax, eax
mov eax, dword [ebp - 0x354]
je 0x407944
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
push edi
lea eax, [ebp - 0x5ac]
mov dword [ebp - 0x5d0], eax
mov dword [esp], eax
call dword [sym.imp.rpcrt4.dll_UuidCreate]
test byte [0x4120c4], 8
mov dword [ebp - 0x5c4], 0
push eax
jne 0x4078b3
mov dword [ebp - 0x5d8], 0
mov eax, dword [sym.imp.ucrtbase.dll_wcschr]
mov dword [ebp - 0x5c0], eax
mov ecx, dword [ebp - 0x5bc]
xor eax, eax
lea esi, [esi]
movzx edx, word [eax + 0x4189f0]
mov word [ecx + eax], dx
add eax, 2
test dx, dx
jne 0x4066b0
lea eax, [ebp - 0x5b0]
mov dword [esp + 4], str.SoftwareWineDrivers
mov dword [ebp - 0x5d4], eax
mov dword [esp + 8], eax
mov dword [esp], 0x80000001
call esi
sub esp, 0xc
test eax, eax
je 0x408130
mov esi, dword [ebp - 0x5bc]
jmp 0x406724
mov dword [esp + 8], eax
lea eax, [ebp - 0x55c]
mov dword [esp + 4], str.Unknown_error___lu_.
mov dword [esp], eax
call sym._sprintf.constprop.0
test ebx, ebx
je 0x4067d3
mov esi, ebx
mov dword [esp + 4], 0x2c
mov eax, dword [ebp - 0x5c0]
xor ebx, ebx
mov dword [esp], esi
call eax
test eax, eax
je 0x406745
xor ecx, ecx
lea ebx, [eax + 2]
mov word [eax], cx
mov dword [esp + 4], str.null
mov dword [esp], esi
call dword [sym.imp.ucrtbase.dll_wcscmp]
test eax, eax
je 0x4070b4
lea eax, [ebp - 0x59c]
mov dword [esp + 0xc], esi
mov dword [esp + 8], str.wine_s.drv
mov dword [esp + 4], 0x20
mov dword [esp], eax
call sym._swprintf
lea eax, [ebp - 0x59c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_LoadLibraryW]
sub esp, 4
test eax, eax
jne 0x40714f
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
cmp eax, 0x7e
je 0x406ee8
cmp eax, 0x45a
jne 0x406700
lea eax, [ebp - 0x55c]
mov esi, str.Make_sure_that_your_X_server_is_running_and_that__DISPLAY_is_set_correctly.
mov ecx, 0x13
mov edi, eax
rep movsd dword es:[edi], dword [esi]
test ebx, ebx
jne 0x406722
xor edi, edi
xor esi, esi
test byte [0x4120c4], 8
jne 0x407106
mov eax, dword [ebp - 0x5d4]
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], 0
mov ebx, dword [sym.imp.advapi32.dll_RegCreateKeyExW]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.SystemCurrentControlSetControlVideo0000
mov dword [esp], 0x80000002
call ebx
sub esp, 0x24
test eax, eax
je 0x4070f1
movzx eax, byte [ebp - 0x59d]
mov dword [esp + 8], str.SystemCurrentControlSetControlVideo_08x__04x__04x__02x_02x__02x_02x_02x_02x_02x_02x0000
mov dword [esp + 4], 0x86
mov dword [esp + 0x34], eax
movzx eax, byte [ebp - 0x59e]
mov dword [esp + 0x30], eax
movzx eax, byte [ebp - 0x59f]
mov dword [esp + 0x2c], eax
movzx eax, byte [ebp - 0x5a0]
mov dword [esp + 0x28], eax
movzx eax, byte [ebp - 0x5a1]
mov dword [esp + 0x24], eax
movzx eax, byte [ebp - 0x5a2]
mov dword [esp + 0x20], eax
movzx eax, byte [ebp - 0x5a3]
mov dword [esp + 0x1c], eax
movzx eax, byte [ebp - 0x5a4]
mov dword [esp + 0x18], eax
movzx eax, word [ebp - 0x5a6]
mov dword [esp + 0x14], eax
movzx eax, word [ebp - 0x5a8]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x5ac]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x5c8]
mov dword [esp], eax
call sym._swprintf
mov ecx, dword [ebp - 0x5d4]
mov eax, dword [ebp - 0x5c8]
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], 2
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0x80000002
call ebx
sub esp, 0x24
test eax, eax
jne 0x4069a0
mov ebx, dword [ebp - 0x5b0]
test edi, edi
jne 0x40693c
test esi, esi
je 0x407a5f
cmp word [ebp - 0x59c], 0
lea eax, [ebp - 0x59c]
je 0x406959
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x406950
lea ecx, [ebp - 0x59c]
mov dword [esp + 0xc], 1
sub eax, ecx
mov dword [esp + 0x10], ecx
add eax, 2
mov dword [esp + 8], 0
mov dword [esp + 0x14], eax
mov dword [esp + 4], str.GraphicsDriver
mov dword [esp], ebx
call dword [sym.imp.advapi32.dll_RegSetValueExW]
sub esp, 0x18
mov eax, dword [ebp - 0x5b0]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
push eax
mov eax, dword [ebp - 0x5c4]
test eax, eax
je 0x407b64
mov edx, dword [ebp - 0x5b8]
test edx, edx
je 0x4069c6
mov ebx, dword [ebp - 0x5b4]
test ebx, ebx
jne 0x4081a7
mov eax, dword [ebp - 0x5d0]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov ebx, dword [sym.imp.user32.dll_CreateWindowExW]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x86000000
mov dword [esp + 8], 0
mov dword [esp + 4], 0x8001
mov dword [esp], 0
call ebx
mov dword [ebp - 0x5d0], eax
sub esp, 0x30
test eax, eax
jne 0x407158
mov dword [ebp - 0x5d0], 0
mov esi, dword [0x41d594]
mov dword [ebp - 0x5c0], 0
mov ecx, dword [ebp - 0x5cc]
test ecx, ecx
je 0x406af6
lea edx, [ebp - 0x350]
mov ecx, 0x10
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [ebp - 0x354], 0x44
test byte [0x4120c4], 8
jne 0x407cc8
mov eax, dword [ebp - 0x5c8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], eax
mov eax, dword [ebp - 0x5bc]
mov dword [esp + 0x14], 0
mov dword [esp + 0x20], eax
mov eax, dword [ebp - 0x5cc]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_CreateProcessW]
sub esp, 0x28
test eax, eax
jne 0x407ca5
mov eax, dword [ebp - 0x5bc]
mov dword [0x4123a0], 0x418ec0
mov dword [0x4123a4], 0x418b80
mov dword [0x4123a8], 0x418ba0
mov dword [esp], eax
call dword [0x41d608]
sub esp, 4
test eax, eax
js 0x406b53
mov eax, dword [ebp - 0x354]
mov edx, dword [eax]
mov dword [esp + 0xc], 0x4123ac
mov dword [esp + 8], 0x4173f8
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [edx + 0x20]
sub esp, 0x10
mov dword [esp], 0
call esi
mov dword [0x412580], 0x418c00
sub esp, 4
mov dword [esp], 0x412584
call dword [sym.imp.kernel32.dll_InitializeCriticalSection]
mov eax, dword [0x412584]
sub esp, 4
mov dword [eax + 0x18], str..._src_wine_programs_explorer_desktop.c:_shellwindows.cs
mov dword [esp + 0x10], 0x4125c4
mov dword [esp + 0xc], 1
mov dword [esp + 8], 4
mov dword [esp + 4], 0x4125c0
mov dword [esp], 0x415168
call dword [0x41d598]
sub esp, 0x14
test eax, eax
js 0x40707a
mov eax, dword [ebp - 0x5d0]
test eax, eax
je 0x407064
lea esi, [ebp - 0x350]
xor eax, eax
mov ecx, 0x10
mov edi, esi
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x5c8]
mov dword [ebp - 0x354], 0x44
mov dword [esp + 0x1c], 0
mov dword [esp + 0x24], eax
mov eax, dword [ebp - 0x5bc]
mov dword [esp + 0x18], 0
mov dword [esp + 0x20], eax
mov eax, dword [sym.imp.kernel32.dll_CreateProcessW]
mov dword [esp + 0x14], 8
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.C:windows_system32_tabtip.exe
mov dword [ebp - 0x5cc], eax
call eax
sub esp, 0x28
test eax, eax
je 0x40818d
mov eax, dword [ebp - 0x47c]
mov ebx, dword [sym.imp.kernel32.dll_CloseHandle]
mov dword [esp], eax
call ebx
push eax
mov dword [esp + 0xc], str.TABTIP_STARTED_EVENT
mov dword [esp + 8], 0
mov dword [esp + 4], 1
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_CreateEventW]
lea edx, [ebp - 0x55c]
mov dword [ebp - 0x55c], eax
mov eax, dword [ebp - 0x480]
sub esp, 0x10
mov dword [esp + 4], edx
mov dword [ebp - 0x5c4], edx
mov dword [ebp - 0x558], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0
mov dword [esp], 2
call dword [sym.imp.kernel32.dll_WaitForMultipleObjects]
mov edx, dword [ebp - 0x5c4]
sub esp, 0x10
dec eax
je 0x408280
mov eax, dword [ebp - 0x55c]
mov dword [ebp - 0x5c4], edx
mov dword [esp], eax
call ebx
mov ebx, dword [ebp - 0x480]
mov edx, dword [ebp - 0x5c4]
push eax
xor eax, eax
mov edi, esi
mov ecx, 0x10
mov dword [ebp - 0x5c4], edx
rep stosd dword es:[edi], eax
mov esi, dword [sym.imp.kernel32.dll_GetEnvironmentVariableW]
mov dword [esp + 4], edx
mov dword [ebp - 0x354], 0x44
mov dword [esp + 8], 2
mov dword [esp], str.PROTON_USE_XALIA
call esi
mov edx, dword [ebp - 0x5c4]
sub esp, 0xc
test eax, eax
je 0x406fa5
cmp eax, 2
ja 0x406d5f
mov dword [esp + 4], 0x413f4e
mov dword [esp], edx
call dword [sym.imp.kernel32.dll_lstrcmpW]
push edi
push edi
test eax, eax
je 0x406fa5
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], str.WINEDATADIR
call esi
mov edx, eax
sub esp, 0xc
mov eax, str._.._xalia_xalia.exe
test edx, edx
je 0x406fa5
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x406d90
sub eax, str._.._xalia_xalia.exe
mov dword [esp + 4], 0
sar eax, 1
mov dword [ebp - 0x5c4], edx
add eax, edx
add eax, eax
mov ecx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov edx, dword [ebp - 0x5c4]
sub esp, 0xc
mov edi, eax
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], str.WINEDATADIR
call esi
sub esp, 0xc
mov dword [esp + 8], 8
mov dword [esp + 4], str.___
mov dword [esp], edi
call sym._memcmp
test eax, eax
jne 0x406e0d
mov word [edi + 2], 0x5c
mov dword [esp + 4], str._.._xalia_xalia.exe
mov dword [esp], edi
call sym._lstrcatW_8
push ecx
push ecx
mov dword [esp + 4], 0x413f5c
mov dword [esp], 0x413f60
call dword [sym.imp.kernel32.dll_SetEnvironmentVariableW]
mov eax, dword [ebp - 0x5c8]
push esi
push esi
mov dword [esp + 0x24], eax
mov eax, dword [ebp - 0x5bc]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], eax
mov eax, dword [ebp - 0x5cc]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 8
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], edi
call eax
sub esp, 0x28
test eax, eax
jne 0x406f87
movzx eax, byte [0x4120c4]
test al, 2
je 0x406fac
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], str.Couldnt_start_xalia.exe:_error__lu_n
mov dword [esp + 8], str.start_xalia_process
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x4120c4
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
movzx eax, byte [0x4120c4]
jmp 0x406fac
mov dword [ebp - 0x55c], 0x20656854
mov edx, 0x21
mov dword [ebp - 0x558], 0x70617267
mov dword [ebp - 0x554], 0x73636968
mov dword [ebp - 0x550], 0x69726420
mov dword [ebp - 0x54c], 0x20726576
mov dword [ebp - 0x548], 0x6d207369
mov dword [ebp - 0x544], 0x69737369
mov dword [ebp - 0x540], 0x202e676e
mov dword [ebp - 0x53c], 0x63656843
mov dword [ebp - 0x538], 0x6f79206b
mov dword [ebp - 0x534], 0x62207275
mov dword [ebp - 0x530], 0x646c6975
mov word [ebp - 0x52c], dx
jmp 0x40671a
movzx esi, word [ebp - 0x5bc]
mov dword [ebp - 0x5cc], 0
jmp 0x406565
mov eax, dword [ebp - 0x47c]
mov esi, dword [sym.imp.kernel32.dll_CloseHandle]
mov dword [esp], eax
call esi
push eax
mov eax, dword [ebp - 0x480]
mov dword [esp], eax
call esi
push edx
movzx eax, byte [0x4120c4]
test al, 8
jne 0x408036
mov dword [ebp - 0x5c4], ebx
mov esi, dword [sym.imp.user32.dll_GetMessageW]
mov edi, dword [sym.imp.user32.dll_DispatchMessageW]
mov ebx, dword [ebp - 0x5bc]
jmp 0x406fd8
mov dword [esp], ebx
call edi
sub esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call esi
sub esp, 0x10
test eax, eax
jne 0x406fd0
mov ebx, dword [ebp - 0x5c4]
test byte [0x4120c4], 8
jne 0x408003
mov eax, dword [ebp - 0x5c0]
test eax, eax
je 0x407023
mov dword [esp], 0
call eax
push eax
test ebx, ebx
je 0x407057
mov dword [esp + 4], 0
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_TerminateProcess]
push eax
push eax
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
push eax
push eax
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_CloseHandle]
push eax
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_ExitProcess]
mov eax, dword [ebp - 0x5c0]
test eax, eax
je 0x407057
mov dword [esp], 0
call eax
push edi
jmp 0x407057
test byte [0x4120c4], 4
je 0x406bbd
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Failed_to_register_ShellWindows_object:__08lx_n
mov dword [esp + 8], str.shellwindows_init
mov dword [esp + 4], 0x4120c4
mov dword [esp], 2
call sym._wine_dbg_log.constprop.0_1
jmp 0x406bbd
mov edi, dword [ebp - 0x5d0]
mov ecx, 4
rep stosd dword es:[edi], eax
test byte [0x4120c4], 8
jne 0x408237
lea eax, [ebp - 0x59c]
mov dword [esp + 4], str.null
xor edi, edi
mov esi, 1
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcscpy]
jmp 0x4067d7
mov eax, dword [ebp - 0x5b0]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
push eax
jmp 0x406840
lea eax, [ebp - 0x59c]
call sym._wine_dbgstr_wn.constprop.0
mov ebx, eax
mov eax, dword [ebp - 0x5d0]
call sym._wine_dbgstr_guid
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.display__s_driver__s_n
mov dword [esp + 8], str.load_graphics_driver
mov dword [esp + 4], 0x4120c4
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x4067e4
mov edi, eax
xor esi, esi
jmp 0x4067d7
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x64
mov dword [esp + 0x18], 0x64
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x86000000
mov dword [esp + 8], 0
mov dword [esp + 4], str.Message
mov dword [esp], 0
call ebx
mov edi, dword [ebp - 0x5d0]
sub esp, 0x30
mov dword [esp + 8], sym._desktop_wnd_proc_16
mov dword [esp + 4], 0xfffffffc
mov dword [esp], edi
call dword [sym.imp.user32.dll_SetWindowLongW]
sub esp, 0xc
mov dword [0x41239c], eax
mov dword [esp + 4], 0x7f05
mov dword [esp], 0
call dword [sym.imp.user32.dll_LoadIconW]
push esi
push esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], edi
call dword [sym.imp.user32.dll_SendMessageW]
mov eax, dword [ebp - 0x5c4]
sub esp, 0x10
cmp word [eax], 0
je 0x40833d
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x407230
sub eax, dword [ebp - 0x5c4]
add eax, 0x22
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov ecx, dword [ebp - 0x5c4]
mov ebx, eax
xor eax, eax
test ebx, ebx
je 0x40833d
lea esi, [esi]
movzx edx, word [ecx + eax]
mov word [ebx + eax], dx
add eax, 2
test dx, dx
jne 0x407260
mov dword [esp + 4], 0x418a1c
mov dword [esp], ebx
call sym._lstrcatW_8
push ecx
push ecx
mov dword [esp + 4], str.Wine_desktop
mov dword [esp], ebx
call sym._lstrcatW_8
mov eax, dword [ebp - 0x5d0]
push esi
push esi
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowTextW]
push edi
push edi
mov dword [esp], ebx
call dword [sym.imp.ucrtbase.dll_free]
mov ebx, dword [sym.imp.user32.dll_GetSystemMetrics]
mov dword [esp], 0x4f
call ebx
push edx
mov edi, eax
mov dword [esp], 0x4e
call ebx
mov dword [ebp - 0x5e0], ebx
push ecx
mov esi, eax
mov dword [esp], 0x4d
call ebx
push ebx
mov ebx, eax
mov eax, dword [ebp - 0x5e0]
mov dword [esp], 0x4c
call eax
push edx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x5d0]
mov dword [esp + 0x18], 0x40
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowPos]
mov eax, dword [ebp - 0x5d4]
sub esp, 0x1c
mov dword [esp + 0x14], eax
mov eax, dword [sym.imp.kernel32.dll_CreateThread]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], sym._clipboard_thread_4
mov dword [esp + 4], 0
mov dword [esp], 0
mov dword [ebp - 0x5f4], eax
call eax
sub esp, 0x18
test eax, eax
je 0x407373
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_CloseHandle]
push eax
mov eax, dword [sym.imp.user32.dll_SystemParametersInfoW]
mov dword [esp + 0xc], 0
lea esi, [ebp - 0x350]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x14
mov dword [ebp - 0x5f0], eax
call eax
sub esp, 0x10
mov dword [esp], 0
call dword [sym.imp.user32.dll_ClipCursor]
mov edi, dword [ebp - 0x5bc]
mov ecx, 0xd2
mov dword [ebp - 0x5c0], esi
push eax
mov eax, dword [ebp - 0x5b4]
mov dword [ebp - 0x5e8], eax
mov eax, dword [ebp - 0x5b8]
mov dword [ebp - 0x5ec], eax
xor eax, eax
rep stosd dword es:[edi], eax
mov eax, esi
mov dword [ebp - 0x354], 0x348
shr eax, 0x10
mov dword [ebp - 0x5dc], eax
xor eax, eax
jmp 0x407452
test byte [0x4120c4], 8
jne 0x407520
mov eax, dword [ebp - 0x5c0]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x10000009
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.user32.dll_ChangeDisplaySettingsExW]
sub esp, 0x14
test eax, eax
je 0x40744c
test byte [0x4120c4], 2
jne 0x4077b5
mov eax, dword [ebp - 0x5c4]
lea edi, [eax + 1]
mov dword [esp + 0xc], 0
mov dword [ebp - 0x5c4], edi
mov edi, dword [ebp - 0x5bc]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp], 0
call dword [sym.imp.user32.dll_EnumDisplayDevicesW]
sub esp, 0x10
test eax, eax
je 0x407721
xor eax, eax
lea edi, [ebp - 0x55c]
mov ecx, 0x37
rep stosd dword es:[edi], eax
mov eax, 0xdc
lea ebx, [ebp - 0x55c]
mov dword [esp + 0xc], 0
mov word [ebp - 0x518], ax
mov eax, dword [ebp - 0x5c0]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.user32.dll_EnumDisplaySettingsExW]
sub esp, 0x10
test eax, eax
jne 0x407400
test byte [0x4120c4], 2
je 0x40744c
mov eax, dword [ebp - 0x5c0]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Failed_to_query_current_display_settings_for__s._n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.initialize_display_settings
mov dword [esp + 4], 0x4120c4
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x40744c
mov dword [ebp - 0x480], 0
mov dword [ebp - 0x47c], 0
mov dword [ebp - 0x478], 0
mov dword [ebp - 0x474], 0
mov dword [ebp - 0x470], 0
mov dword [ebp - 0x46c], 0
mov dword [ebp - 0x468], 0
mov dword [ebp - 0x464], 0
test byte [ebp - 0x514], 0x20
jne 0x40786c
mov eax, dword [ebp - 0x5c8]
mov dword [esp], str._ux_u__ubits__uHz_rotated__u_degrees_s
mov dword [esp + 0x18], eax
imul eax, dword [ebp - 0x508], 0x5a
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x4a4]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x4b4]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x4ac]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x4b0]
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf_1
mov edi, dword [ebp - 0x5dc]
mov dword [ebp - 0x5d4], eax
test edi, edi
je 0x407853
mov eax, dword [ebp - 0x5c0]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
push esi
push esi
test eax, eax
jne 0x407a55
cmp word [ebp - 0x350], 0
je 0x408112
mov ecx, dword [ebp - 0x5bc]
nop
mov edx, eax
lea eax, [eax + 1]
cmp word [ecx + edx*2 + 6], 0
jne 0x407610
mov word [ebp - 0x480], 0x224c
mov esi, dword [ebp - 0x5c0]
lea ecx, [ebp - 0x47e]
mov dword [ebp - 0x5e4], ebx
jmp 0x40767b
cmp ax, 9
je 0x407714
cmp ax, 0xa
jne 0x4076b6
mov word [ecx], 0x6e5c
add ecx, 2
lea esi, cs:[esi]
lea eax, [edx - 1]
test edx, edx
jle 0x4077ed
lea edi, [ebp - 0x35e]
cmp ecx, edi
ja 0x4077ed
mov edx, eax
movzx eax, word [esi]
add esi, 2
cmp ax, 0xd
je 0x40769f
jbe 0x407640
cmp ax, 0x22
je 0x407707
cmp ax, 0x5c
jne 0x4076a9
mov word [ecx], 0x5c5c
add ecx, 2
jmp 0x407660
mov word [ecx], 0x725c
add ecx, 2
jmp 0x407660
lea edi, [eax - 0x20]
cmp di, 0x5e
jbe 0x4078a3
mov edi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr di, 0xc
movzx edi, di
movzx ebx, byte [edi + 0x418b10]
mov edi, eax
shr di, 8
and edi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [edi + 0x418b10]
mov edi, eax
and eax, 0xf
shr di, 4
movzx eax, byte [eax + 0x418b10]
and edi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [edi + 0x418b10]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x407660
mov word [ecx], 0x225c
add ecx, 2
jmp 0x407660
mov word [ecx], 0x745c
add ecx, 2
jmp 0x407660
cmp dword [0x412720], 0
je 0x407f55
call sym._initialize_appbar
mov eax, dword [0x412720]
mov edx, 0
test eax, eax
cmove edx, dword [ebp - 0x5d8]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._initialize_systray
cmp dword [0x412720], 0
mov esi, dword [0x41d594]
je 0x407d00
mov dword [esp], str.shell32.dll
call dword [sym.imp.kernel32.dll_LoadLibraryW]
mov dword [ebp - 0x5c0], 0
push edx
test eax, eax
je 0x406a5a
mov dword [esp + 4], 0xbc
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetProcAddress]
mov dword [ebp - 0x5c0], eax
push edi
push edi
test eax, eax
je 0x406a5a
mov dword [esp], 1
call eax
push ebx
jmp 0x406a5a
mov eax, dword [ebp - 0x5c0]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Failed_to_initialize_registry_display_settings_for__s._n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.initialize_display_settings
mov dword [esp + 4], 0x4120c4
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x40744c
mov byte [ecx], 0x22
mov ebx, dword [ebp - 0x5e4]
test eax, eax
jle 0x408128
mov word [ecx + 1], 0x2e2e
lea eax, [ecx + 4]
mov byte [ecx + 3], 0x2e
mov byte [eax], 0
mov eax, dword [ebp - 0x5c8]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edi, dword [ebp - 0x5d4]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.Device__s_current_display_mode__s._n
mov dword [esp + 0x14], edi
mov dword [esp + 8], str.initialize_display_settings
mov dword [esp + 4], 0x4120c4
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x40740d
movzx eax, word [ebp - 0x5c0]
mov dword [esp], 0x413319
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf_1
jmp 0x40781c
mov eax, dword [ebp - 0x50c]
mov dword [esp + 8], str._at___d__d_
mov dword [esp + 4], 0x20
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x510]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x5c8]
mov dword [esp], eax
call sym._snprintf.constprop.0
jmp 0x40757d
mov byte [ecx], al
inc ecx
jmp 0x407660
movzx esi, word [edi]
jmp 0x406f78
mov eax, dword [sym.imp.ucrtbase.dll_wcschr]
xor ebx, ebx
mov dword [ebp - 0x5d8], 0
mov dword [ebp - 0x5c0], eax
mov eax, dword [ebp - 0x5d0]
call sym._wine_dbgstr_guid
mov dword [esp + 0xc], str.display_guid__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.manage_desktop
mov dword [esp + 4], 0x4120c4
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
mov eax, dword [ebp - 0x5bc]
lea ecx, [ebp - 0x14e]
test ebx, ebx
je 0x4066a5
lea esi, [esi]
movzx edx, word [ebx]
test dx, dx
je 0x40792e
add eax, 2
add ebx, 2
mov word [eax - 2], dx
cmp eax, ecx
jne 0x407918
mov word [eax], 0
lea eax, [ebp - 0x5b0]
mov dword [ebp - 0x5d4], eax
jmp 0x4066ef
cmp word [0x412160], 0
mov dword [esp], eax
je 0x407aac
call dword [sym.imp.advapi32.dll_RegCloseKey]
push ecx
lea ecx, [ebp - 0x5b4]
lea edx, [ebp - 0x5b8]
mov eax, 0x412160
call sym._get_default_desktop_size
test eax, eax
je 0x407af4
mov eax, dword [sym.imp.ucrtbase.dll_wcschr]
xor ebx, ebx
mov dword [ebp - 0x5c4], 0x412160
mov dword [ebp - 0x5c0], eax
lea edx, [ebp - 0x55c]
mov dword [esp + 4], str.SoftwareWineExplorerDesktops
mov dword [ebp - 0x354], 4
mov dword [esp + 8], edx
mov dword [esp], 0x80000001
call esi
sub esp, 0xc
test eax, eax
jne 0x407ac8
mov eax, dword [ebp - 0x5bc]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x10
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x5c8]
mov dword [esp + 8], str.EnableShell
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x5c4]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x55c]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegGetValueW]
sub esp, 0x1c
test eax, eax
jne 0x407ab8
mov eax, dword [ebp - 0x55c]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
push edx
mov eax, dword [ebp - 0x480]
mov dword [ebp - 0x5d8], eax
lea eax, [ebp - 0x5ac]
mov dword [ebp - 0x5d0], eax
mov dword [esp], eax
call dword [sym.imp.rpcrt4.dll_UuidCreate]
push edi
test byte [0x4120c4], 8
je 0x4078fd
jmp 0x4078ca
mov eax, 0x41330f
jmp 0x40781c
lea edx, [ebp - 0x55c]
mov dword [esp], edx
mov dword [ebp - 0x5c0], edx
call dword [sym.imp.ucrtbase.dll_strlen]
mov edx, dword [ebp - 0x5c0]
mov dword [esp], ebx
inc eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov dword [esp + 8], 0
mov dword [esp + 4], str.DriverError
call dword [sym.imp.advapi32.dll_RegSetValueExA]
sub esp, 0x18
jmp 0x406990
call dword [sym.imp.advapi32.dll_RegCloseKey]
push ebx
jmp 0x406663
mov eax, dword [ebp - 0x55c]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
push ecx
mov eax, dword [ebp - 0x5c4]
mov dword [esp + 4], str.shell
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_lstrcmpiW]
test eax, eax
push edx
sete al
push edx
movzx eax, al
mov dword [ebp - 0x480], eax
jmp 0x407a21
mov eax, dword [sym.imp.ucrtbase.dll_wcschr]
xor ebx, ebx
mov dword [ebp - 0x5b4], 0
mov dword [ebp - 0x5b8], 0
mov dword [ebp - 0x5c4], 0x412160
mov dword [ebp - 0x5c0], eax
jmp 0x407991
mov dword [esp + 4], str.Default
mov dword [esp], 0x412160
call dword [sym.imp.ucrtbase.dll__wcsicmp]
test eax, eax
je 0x4065db
lea eax, [ebp - 0x354]
mov esi, dword [sym.imp.advapi32.dll_RegOpenKeyW]
mov dword [ebp - 0x5bc], eax
lea eax, [ebp - 0x480]
mov dword [ebp - 0x5c8], eax
jmp 0x40795c
mov eax, dword [ebp - 0x5d0]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov ebx, dword [sym.imp.user32.dll_CreateWindowExW]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x86000000
mov dword [esp + 8], 0
mov dword [esp + 4], 0x8001
mov dword [esp], 0
call ebx
mov dword [ebp - 0x5d0], eax
sub esp, 0x30
test eax, eax
je 0x406a40
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0x64
mov dword [esp + 0x18], 0x64
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0x86000000
mov dword [esp + 8], 0
mov dword [esp + 4], str.Message
mov dword [esp], 0
call ebx
mov edi, dword [ebp - 0x5d0]
sub esp, 0x30
mov dword [esp + 8], sym._desktop_wnd_proc_16
mov dword [esp + 4], 0xfffffffc
mov dword [esp], edi
call dword [sym.imp.user32.dll_SetWindowLongW]
sub esp, 0xc
mov dword [0x41239c], eax
mov dword [esp + 4], 0x7f05
mov dword [esp], 0
call dword [sym.imp.user32.dll_LoadIconW]
push ebx
push ebx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], pe_nt_image_headers32
mov dword [esp], edi
call dword [sym.imp.user32.dll_SendMessageW]
sub esp, 0x10
jmp 0x4072b2
mov eax, dword [ebp - 0x47c]
mov ebx, dword [sym.imp.kernel32.dll_CloseHandle]
mov dword [esp], eax
call ebx
push eax
mov eax, dword [ebp - 0x480]
mov dword [esp], eax
call ebx
push edx
jmp 0x406af6
mov eax, dword [ebp - 0x5cc]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.starting__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.manage_desktop
mov dword [esp + 4], 0x4120c4
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x406a90
mov eax, dword [ebp - 0x5d0]
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetDC]
mov ebx, dword [ebp - 0x5bc]
mov edx, dword [ebp - 0x5f0]
push edi
mov edi, eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x5c
mov dword [esp], 0x1f
call edx
sub esp, 0x10
mov dword [esp], ebx
call dword [sym.imp.gdi32.dll_CreateFontIndirectW]
mov ebx, dword [sym.imp.gdi32.dll_SelectObject]
push edx
mov dword [esp + 4], eax
mov dword [esp], edi
call ebx
mov edx, dword [ebp - 0x5c8]
push ecx
push ecx
mov dword [ebp - 0x5c0], eax
mov dword [esp + 4], edx
mov dword [esp], edi
call dword [sym.imp.gdi32.dll_GetTextMetricsW]
push edx
push edx
mov edx, dword [ebp - 0x5c0]
mov dword [ebp - 0x5c4], eax
mov dword [esp + 4], edx
mov dword [esp], edi
call ebx
push ecx
push ecx
mov ecx, dword [ebp - 0x5d0]
mov dword [esp + 4], edi
mov dword [esp], ecx
call dword [sym.imp.user32.dll_ReleaseDC]
cmp dword [ebp - 0x5c4], 0
push ebx
push ebx
je 0x407765
mov edi, dword [ebp - 0x5e0]
mov dword [esp], 0xb
call edi
push edx
mov dword [ebp - 0x5e0], edi
mov dword [0x4123c8], eax
mov dword [esp], 0xc
call edi
mov ebx, dword [0x4123c8]
mov dword [0x412674], 4
push ecx
mov ecx, eax
cmp eax, ebx
mov dword [0x4123d0], eax
mov eax, ebx
cmovge eax, ecx
imul edx, dword [ebp - 0x46c], 0xe
mov dword [esp], 0
mov edi, eax
mov eax, dword [ebp - 0x480]
add eax, eax
mov dword [0x412670], eax
lea eax, [edi + eax + 4]
cmp eax, edx
cmovl eax, edx
mov dword [0x41266c], eax
add eax, 8
mov dword [0x4123f4], eax
sub eax, ebx
mov ebx, 2
cdq
idiv ebx
mov dword [0x4123e0], eax
mov eax, edi
sub eax, ecx
cdq
idiv ebx
add eax, 4
mov dword [0x4123e4], eax
lea eax, [edi + 8]
mov edi, dword [ebp - 0x5e0]
mov dword [0x412678], eax
call edi
cdq
push ebx
mov ebx, dword [0x41d614]
idiv dword [0x4123f4]
mov dword [esp + 0xc], 0x412394
mov dword [esp + 8], 0
mov dword [esp + 4], 0x8000
mov dword [esp], 0x415518
mov edx, 1
test eax, eax
cmove eax, edx
mov dword [0x4123fc], eax
call ebx
sub esp, 0x10
test eax, eax
js 0x40835b
mov dword [esp + 0xc], 0x412398
mov dword [esp + 8], 0
mov dword [esp + 4], 0x8000
mov dword [esp], 0x415838
call ebx
sub esp, 0x10
test eax, eax
js 0x408414
mov dword [esp], 8
call dword [sym.imp.ucrtbase.dll_malloc]
mov dword [0x4123f8], eax
test eax, eax
je 0x407765
mov dword [0x412484], 2
mov dword [esp], 0
call esi
push ecx
mov ebx, eax
mov eax, dword [0x412394]
call sym._add_folder
mov eax, dword [0x412398]
call sym._add_folder
test ebx, ebx
js 0x407f14
call dword [0x41d5a4]
mov eax, dword [ebp - 0x5d0]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x5f4]
mov dword [esp + 8], sym._watch_desktop_folders_4
mov dword [esp + 4], 0
mov dword [esp], 0
call eax
sub esp, 0x18
jmp 0x407765
mov edi, dword [ebp - 0x5c8]
mov ecx, 0x37
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x5ec]
mov word [ebp - 0x43c], 0xdc
mov dword [ebp - 0x438], 0x180000
mov dword [ebp - 0x3d4], eax
mov eax, dword [ebp - 0x5e8]
mov dword [esp + 0x10], 0
mov dword [ebp - 0x3d0], eax
lea eax, [ebp - 0x480]
mov dword [esp + 0xc], 9
mov dword [esp + 8], 0
mov dword [ebp - 0x5c8], eax
mov dword [esp + 4], eax
mov dword [esp], 0
call dword [sym.imp.user32.dll_ChangeDisplaySettingsExW]
sub esp, 0x14
test eax, eax
je 0x40772e
test byte [0x4120c4], 2
je 0x40772e
mov dword [esp + 0xc], str.Failed_to_set_primary_display_settings._n
mov dword [esp + 8], str.initialize_display_settings
mov dword [esp + 4], 0x4120c4
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x40772e
mov eax, dword [ebp - 0x5d0]
mov dword [esp + 0xc], str.desktop_message_loop_exiting_for_hwnd__p_n
mov dword [esp + 8], str.manage_desktop
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x4120c4
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x40700f
mov eax, dword [ebp - 0x5d0]
mov dword [esp + 0xc], str.desktop_message_loop_starting_on_hwnd__p_n
mov dword [esp + 8], str.manage_desktop
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x4120c4
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x406fb4
lea eax, [edi + 2]
mov dword [esp + 4], 0x2c
mov dword [ebp - 0x5c4], eax
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_wcschr]
mov dword [ebp - 0x5c0], eax
call eax
mov ebx, eax
test eax, eax
je 0x40826f
lea esi, [eax + 2]
mov word [eax], 0
mov eax, dword [ebp - 0x5c0]
mov dword [esp + 4], 0x2c
mov dword [esp], esi
call eax
mov ebx, eax
test eax, eax
je 0x4080bd
mov word [eax], 0
add ebx, 2
lea edi, [ebp - 0x5b4]
lea edx, [ebp - 0x5b8]
mov eax, esi
mov ecx, edi
mov dword [ebp - 0x5bc], edx
call sym._parse_size
mov edx, dword [ebp - 0x5bc]
test eax, eax
jne 0x4080ef
mov eax, dword [ebp - 0x5c4]
mov ecx, edi
call sym._get_default_desktop_size
lea eax, [ebp - 0x354]
mov esi, dword [sym.imp.advapi32.dll_RegOpenKeyW]
mov dword [ebp - 0x5bc], eax
lea eax, [ebp - 0x480]
mov dword [ebp - 0x5c8], eax
jmp 0x407991
mov word [ebp - 0x480], 0x224c
lea ecx, [ebp - 0x47e]
mov byte [ebp - 0x47e], 0x22
lea eax, [ecx + 1]
jmp 0x40780b
mov eax, dword [ebp - 0x5c8]
mov dword [esp + 0xc], 0
mov dword [ebp - 0x480], 0x208
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x5bc]
mov dword [esp + 8], 0
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x5b0]
mov dword [esp + 4], str.Graphics
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegQueryValueExW]
mov eax, dword [ebp - 0x5b0]
sub esp, 0x18
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
push ebx
jmp 0x4066ef
test byte [0x4120c4], 2
jne 0x4083d6
xor ebx, ebx
lea edx, [ebp - 0x55c]
jmp 0x406cf8
mov edi, dword [ebp - 0x5bc]
xor eax, eax
mov ecx, 0x37
rep stosd dword es:[edi], eax
mov edi, dword [ebp - 0x5c4]
mov dword [ebp - 0x2a8], edx
mov dword [ebp - 0x2a4], ebx
mov dword [esp + 4], str.root
mov dword [esp], edi
call dword [sym.imp.ucrtbase.dll__wcsicmp]
mov dword [esp + 0x14], 0
test eax, eax
mov dword [esp + 0x10], 0x1ff
sete al
movzx eax, al
mov dword [0x412720], eax
jne 0x4082e7
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], edi
call dword [sym.imp.user32.dll_CreateDesktopW]
sub esp, 0x18
test eax, eax
je 0x408318
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetThreadDesktop]
push eax
jmp 0x4069c6
mov eax, dword [ebp - 0x5d0]
call sym._wine_dbgstr_guid
mov dword [esp + 0xc], str.display__s_using_null_driver_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.load_graphics_driver
mov dword [esp + 4], 0x4120c4
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_1
jmp 0x4070ce
lea edi, [ebp - 0x5b4]
lea edx, [ebp - 0x5b8]
jmp 0x4080e2
lea eax, [ebp - 0x59c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x480]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetExitCodeProcess]
test byte [0x4120c4], 2
mov edx, dword [ebp - 0x5c4]
push eax
push eax
je 0x406cda
mov eax, dword [ebp - 0x59c]
mov dword [esp + 0xc], str.Unexpected_termination_of_tabtip.exe___exit_code__ld_n
mov dword [esp + 8], str.start_tabtip_process
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x4120c4
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
mov edx, dword [ebp - 0x5c4]
jmp 0x406cda
mov eax, dword [ebp - 0x5bc]
mov dword [esp + 0xc], 0x80000000
mov dword [esp + 4], 0
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x5c4]
mov dword [esp], eax
call dword [sym.imp.user32.dll_CreateDesktopW]
sub esp, 0x18
jmp 0x408220
test byte [0x4120c4], 2
jne 0x408391
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [ebp - 0x5cc], 0
jmp 0x406584
mov eax, dword [ebp - 0x5d0]
mov dword [esp + 4], str.Wine_desktop
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowTextW]
push eax
push eax
jmp 0x4072b2
test byte [0x4120c4], 2
je 0x407765
mov dword [esp + 0xc], str.Could_not_get_user_desktop_folder_n
mov dword [esp + 8], str.initialize_launchers
mov dword [esp + 4], 0x4120c4
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x407765
mov eax, dword fs:[0x18]
mov ebx, dword [eax + 0x34]
mov eax, dword [ebp - 0x5c4]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.failed_to_create_desktop__s_error__ld_n
mov dword [esp + 8], str.manage_desktop
mov dword [esp + 4], 0x4120c4
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x408321
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], str.Couldnt_start_tabtip.exe:_error__lu_n
xor ebx, ebx
mov dword [esp + 8], str.start_tabtip_process
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x4120c4
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
lea edx, [ebp - 0x55c]
jmp 0x406cf8
test byte [0x4120c4], 2
jne 0x408437
mov eax, dword [0x412394]
mov dword [esp], eax
call dword [0x41d5a0]
mov esi, dword [0x41d594]
push ebx
jmp 0x407765
mov dword [esp + 0xc], str.Could_not_get_public_desktop_folder_n
mov dword [esp + 8], str.initialize_launchers
mov dword [esp + 4], 0x4120c4
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_1
jmp 0x40841d