Function at 0x403660
Capabilities:
Get graphical window text
Hide graphical window

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x298
mov eax, dword [ecx + 4]
mov edi, dword [ecx]
mov esi, dword [ecx + 8]
mov edx, dword [ecx + 0xc]
cmp eax, 0x110
je 0x403740
ja 0x4036d0
cmp eax, 0x18
je 0x403720
cmp eax, 0x4e
jne case.0x403dd2.1046
mov eax, dword [edx + 8]
cmp eax, 0xffffff37
je 0x403de0
cmp eax, 0xffffff9b
je 0x403a80
cmp eax, 0xffffff36
je 0x403a48
lea esp, [ebp - 0x10]
xor eax, eax
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
cmp eax, 0x111
jne case.0x403dd2.1046
mov ebx, esi
shr ebx, 0x10
cmp ebx, 1
je 0x403d90
cmp ebx, 0x300
je 0x403aa0
test ebx, ebx
je 0x403d68
movzx eax, si
mov dword [ebp - 0x26c], eax
mov ecx, dword [ebp - 0x26c]
sub ecx, 0x413
cmp ecx, 0x21
ja case.0x403dd2.1046
jmp dword [ecx*4 + 0x417de4]
mov dword [esp], edi
call sym._set_window_title
lea esp, [ebp - 0x10]
xor eax, eax
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
mov dword [esp], edi
mov ebx, dword [sym.imp.user32.dll_GetDlgItem]
lea esi, [ebp - 0x220]
mov dword [esp + 4], 0x412
call ebx
lea edx, [ebp - 0x25c]
sub esp, 8
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetClientRect]
mov ecx, dword [ebp - 0x254]
mov edx, 0x2aaaaaab
sub ecx, dword [ebp - 0x25c]
mov eax, ecx
sar ecx, 0x1f
sub esp, 8
imul edx
mov dword [esp], 0
sub edx, ecx
lea eax, [edx - 5]
mov dword [ebp - 0x26c], eax
mov eax, dword [sym.imp.kernel32.dll_GetModuleHandleW]
mov dword [ebp - 0x274], eax
call eax
sub esp, 4
mov dword [esp], eax
mov eax, dword [sym.imp.user32.dll_LoadStringW]
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], esi
mov dword [esp + 4], 0x2010
mov dword [ebp - 0x270], eax
call eax
mov dword [ebp - 0x240], esi
mov dword [ebp - 0x24c], 0xe
sub esp, 0x10
cmp word [ebp - 0x220], 0
je 0x403eb0
mov eax, esi
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x4037f8
sub eax, esi
sar eax, 1
mov edx, dword [sym.imp.user32.dll_SendDlgItemMessageW]
mov dword [ebp - 0x23c], eax
lea ecx, [ebp - 0x24c]
mov eax, dword [ebp - 0x26c]
mov dword [esp + 0x10], ecx
mov dword [ebp - 0x278], edx
mov dword [ebp - 0x244], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x1061
mov dword [esp + 4], 0x412
mov dword [esp], edi
call edx
mov edx, dword [ebp - 0x274]
sub esp, 0x14
mov dword [esp], 0
call edx
mov edx, dword [ebp - 0x270]
sub esp, 4
mov dword [esp + 0xc], 0x40
mov dword [esp + 8], esi
mov dword [esp + 4], 0x2011
mov dword [esp], eax
call edx
mov eax, dword [ebp - 0x254]
sub eax, dword [ebp - 0x25c]
mov dword [ebp - 0x240], esi
sub eax, dword [ebp - 0x26c]
sub esp, 0x10
cmp word [ebp - 0x220], 0
mov dword [ebp - 0x244], eax
mov edx, dword [ebp - 0x278]
lea ecx, [ebp - 0x24c]
je 0x4043c8
mov eax, esi
lea esi, [esi]
nop
add eax, 2
cmp word [eax], 0
jne 0x4038c0
sub eax, esi
sar eax, 1
mov dword [esp + 0x10], ecx
mov dword [ebp - 0x23c], eax
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x1061
mov dword [esp + 4], 0x412
mov dword [esp], edi
call edx
sub esp, 0x14
call sym._load_drives
mov dword [esp + 4], 0x411
mov dword [esp], edi
test eax, eax
jne 0x403e20
call ebx
mov esi, dword [sym.imp.user32.dll_ShowWindow]
sub esp, 8
mov dword [esp + 4], 5
mov dword [esp], eax
call esi
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], 0x412
call ebx
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call esi
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], 0x413
call ebx
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call esi
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], 0x414
call ebx
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call esi
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], 0x427
call ebx
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call esi
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], 0x425
call ebx
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call esi
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], 0x42b
call ebx
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call esi
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], 0x429
call ebx
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call esi
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], 0x434
call ebx
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call esi
mov eax, edi
sub esp, 8
call sym._set_advanced
lea esp, [ebp - 0x10]
xor eax, eax
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
call sym._apply_drive_changes
mov dword [esp], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [sym.imp.user32.dll_SetWindowLongW]
xor eax, eax
sub esp, 0xc
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
test byte [edx + 0x18], 2
jne case.0x403dd2.1046
test byte [edx + 0x14], 2
je case.0x403dd2.1046
mov eax, edi
call sym._update_controls
jmp case.0x403dd2.1046
mov edx, dword [0x416ed4]
movzx eax, si
mov dword [ebp - 0x26c], eax
test edx, edx
jne 0x403702
test byte [0x415060], 8
jne 0x4043eb
cmp si, 0x426
je 0x404418
ja 0x4042ed
cmp si, 0x424
je 0x404516
cmp si, 0x425
jne 0x403702
mov eax, dword [ebp - 0x26c]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
mov esi, eax
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextLengthW]
sub esp, 4
inc eax
mov edx, eax
je 0x40477f
add eax, eax
mov dword [ebp - 0x270], edx
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x278], eax
call eax
mov dword [ebp - 0x274], eax
test eax, eax
je 0x40478a
mov edx, dword [ebp - 0x270]
mov dword [esp + 4], eax
mov dword [esp], esi
mov dword [esp + 8], edx
call dword [sym.imp.user32.dll_GetWindowTextW]
mov edx, dword [sym.imp.ucrtbase.dll_free]
sub esp, 0xc
mov dword [ebp - 0x270], edx
test eax, eax
je 0x404b63
mov eax, dword [ebp - 0x274]
mov edx, dword [sym.imp.kernel32.dll_WideCharToMultiByte]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0xfdf2
mov dword [ebp - 0x27c], edx
call edx
sub esp, 0x20
mov esi, eax
test eax, eax
je 0x404659
mov ecx, dword [ebp - 0x278]
mov dword [esp], eax
call ecx
mov edx, dword [ebp - 0x27c]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov dword [ebp - 0x278], eax
mov eax, dword [ebp - 0x274]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0xfdf2
call edx
mov esi, dword [0x415a4c]
sub esp, 0x20
mov eax, dword [esi + 4]
mov dword [esp], eax
mov eax, dword [ebp - 0x270]
call eax
mov edx, dword [ebp - 0x278]
test edx, edx
je 0x4046f7
mov dword [esi + 4], edx
mov dword [esi + 0x1c], 1
test byte [0x415060], 8
jne 0x404752
mov edx, dword [sym.imp.user32.dll_SendDlgItemMessageW]
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0x100c
mov dword [esp + 4], 0x412
mov dword [esp], edi
mov dword [ebp - 0x278], edx
call edx
sub esp, 0x14
test eax, eax
js 0x403d09
mov dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x274]
mov dword [ebp - 0x220], 1
mov edx, dword [ebp - 0x278]
cmp word [eax], 0
mov dword [ebp - 0x20c], eax
mov dword [ebp - 0x218], 1
je 0x404b3a
lea esi, [esi]
add eax, 2
cmp word [eax], 0
jne 0x403cc8
sub eax, dword [ebp - 0x274]
mov dword [esp + 0xc], 0
sar eax, 1
mov dword [esp + 8], 0x104c
mov dword [ebp - 0x208], eax
lea eax, [ebp - 0x220]
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x412
mov dword [esp], edi
call edx
sub esp, 0x14
mov eax, dword [ebp - 0x274]
mov dword [esp], eax
mov eax, dword [ebp - 0x270]
call eax
mov dword [esp], edi
call dword [sym.imp.user32.dll_GetParent]
sub esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 0x468
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendMessageW]
mov ecx, dword [ebp - 0x26c]
sub esp, 0x10
sub ecx, 0x414
cmp ecx, 0x20
ja case.0x403dd2.1046
jmp dword [ecx*4 + 0x417e6c]
cmp esi, 0x438
je 0x403eb7
sub esi, 0x413
cmp esi, 0x21
ja case.0x403dd2.1046
jmp dword [esi*4 + 0x417ef0]
mov dword [esp], edi
movzx esi, si
call dword [sym.imp.user32.dll_GetParent]
sub esi, 0x413
sub esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x468
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendMessageW]
sub esp, 0x10
cmp esi, 0x21
ja case.0x403dd2.1046
jmp dword [esi*4 + 0x417f78]
test byte [0x415060], 8
je 0x403a4d
mov dword [esp + 0xc], str.PSN_KILLACTIVE_n
mov dword [esp + 8], str.DriveDlgProc
mov dword [esp + 4], 0x415060
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_3
jmp 0x403a4d
call ebx
sub esp, 8
mov dword [esp + 4], 0
mov dword [esp], eax
call dword [sym.imp.user32.dll_ShowWindow]
mov eax, dword [0x415a44]
sub esp, 8
mov dword [esp + 0xc], 0x417d28
mov dword [esp + 8], 0x417d2c
mov dword [esp + 4], 0x417d46
mov dword [esp], eax
call sym._get_reg_key
mov dword [esp + 4], 0x417d48
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcscmp]
test eax, eax
je 0x4043a0
mov ecx, dword [0x415ab8]
test ecx, ecx
je 0x4042a0
mov eax, edi
call sym._fill_drives_list
mov eax, edi
call sym._update_controls
mov eax, edi
call sym._set_advanced
lea esp, [ebp - 0x10]
xor eax, eax
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
xor eax, eax
jmp 0x403805
mov dword [esp + 4], 0x438
mov dword [esp], edi
call dword [sym.imp.user32.dll_IsDlgButtonChecked]
sub esp, 8
cmp eax, 1
je 0x40464c
mov dword [esp + 0xc], 0x417d28
mov eax, dword [0x415a44]
mov dword [esp + 8], 0x417d2c
mov dword [esp + 4], 0x417d46
mov dword [esp], eax
call sym._set_reg_key
mov dword [esp], edi
call dword [sym.imp.user32.dll_GetParent]
sub esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x468
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendMessageW]
sub esp, 0x10
jmp case.0x403dd2.1046
lea ebx, [ebp - 0x220]
mov dword [esp], edi
mov dword [esp + 4], ebx
call sym._browse_for_unix_folder
test eax, eax
je case.0x403dd2.1046
mov dword [esp + 4], 0x425
mov dword [esp], edi
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetWindowTextW]
sub esp, 8
jmp case.0x403dd2.1046
mov edx, dword [0x4150c0]
xor eax, eax
test edx, edx
sete al
mov dword [0x4150c0], eax
mov eax, edi
call sym._set_advanced
jmp case.0x403dd2.1046
test ebx, ebx
jne case.0x403dd2.1046
mov dword [esp + 0x10], 2
mov esi, dword [sym.imp.user32.dll_SendDlgItemMessageW]
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], 0x100c
mov dword [esp + 4], 0x412
mov dword [esp], edi
call esi
sub esp, 0x14
mov ebx, eax
cmp eax, 0xffffffff
je case.0x403dd2.1046
mov dword [ebp - 0x21c], eax
lea eax, [ebp - 0x220]
mov dword [ebp - 0x220], 4
mov dword [ebp - 0x218], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x104b
mov dword [esp + 4], 0x412
mov dword [esp], edi
call esi
mov edx, dword [ebp - 0x200]
sub esp, 0x14
test byte [0x415060], 8
jne 0x40481a
cmp byte [edx], 0x43
je 0x4047a4
mov dword [esp], edx
call sym._delete_drive
mov eax, edi
call sym._fill_drives_list
dec ebx
mov edx, 0
cmovns edx, ebx
mov eax, edi
call sym._lv_set_curr_select
mov dword [esp + 4], 0x412
mov dword [esp], edi
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetFocus]
mov eax, edi
sub esp, 4
call sym._update_controls
mov dword [esp], edi
call dword [sym.imp.user32.dll_GetParent]
sub esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 0x468
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendMessageW]
sub esp, 0x10
jmp case.0x403dd2.1046
test ebx, ebx
jne case.0x403dd2.1046
mov dword [esp], 0
mov ebx, 1
call sym._drive_available_mask
mov ecx, 2
not eax
jmp 0x4040da
inc ecx
cmp ecx, 0x1a
je 0x4045ff
mov esi, ebx
lea edx, [ecx + 0x41]
shl esi, cl
test esi, eax
jne 0x4040d0
movsx edx, dl
mov dword [esp + 0xc], sym._drivechoose_dlgproc_16
mov dword [esp + 0x10], edx
mov dword [esp + 8], edi
mov dword [esp + 4], 0x2013
mov dword [esp], 0
call dword [sym.imp.user32.dll_DialogBoxParamW]
sub esp, 0x14
mov ebx, eax
cmp eax, 0xffffffff
je case.0x403dd2.1046
movsx esi, al
test byte [0x415060], 8
jne 0x404a3e
cmp bl, 0x43
je 0x4049d3
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x417dc3
mov dword [esp], esi
call sym._add_drive
mov eax, edi
call sym._fill_drives_list
mov dword [esp], 0
call sym._drive_available_mask
xor edx, edx
xor ecx, ecx
not eax
mov ebx, eax
lea eax, [esi - 0x41]
jmp 0x4041a1
mov esi, 1
shl esi, cl
and esi, ebx
cmp esi, 1
sbb edx, 0xffffffff
inc ecx
cmp ecx, 0x1a
je 0x404048
cmp eax, ecx
jne 0x404188
jmp 0x404048
test ebx, ebx
jne case.0x403dd2.1046
mov ebx, dword [sym.imp.user32.dll_GetDlgItem]
mov dword [esp + 4], 0x412
mov dword [esp], edi
call ebx
mov esi, dword [sym.imp.user32.dll_SendMessageW]
sub esp, 8
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x188
mov dword [esp], eax
call esi
sub esp, 0x10
mov dword [ebp - 0x26c], eax
mov dword [esp + 4], 0x412
mov dword [esp], edi
call ebx
mov ebx, dword [ebp - 0x26c]
sub esp, 8
mov dword [esp + 0xc], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], 0x199
mov dword [esp], eax
call esi
sub esp, 0x10
jmp case.0x403dd2.1046
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x147
mov dword [esp + 4], 0x429
mov dword [esp], edi
call dword [sym.imp.user32.dll_SendDlgItemMessageW]
sub esp, 0x14
test eax, eax
js 0x404711
mov ebx, dword [eax*8 + 0x423460]
cmp ebx, 5
je 0x4049c9
mov edx, 2
cmp ebx, 2
je 0x4049c9
mov eax, edi
call sym._enable_labelserial_box
mov eax, dword [0x415a4c]
mov dword [eax + 0x14], ebx
mov dword [eax + 0x1c], 1
jmp case.0x403dd2.1046
mov dword [esp], 0xd
call sym._load_string
mov dword [esp], 0x2012
mov esi, eax
call sym._load_string
mov dword [esp + 8], esi
mov ebx, eax
mov dword [esp], edi
mov dword [esp + 0xc], 0x30
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_MessageBoxW]
sub esp, 0x10
mov dword [esp], esi
mov esi, dword [sym.imp.ucrtbase.dll_free]
call esi
mov dword [esp], ebx
call esi
jmp 0x403e85
cmp si, 0x42a
jne 0x4043cf
mov eax, dword [ebp - 0x26c]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
mov esi, eax
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextLengthW]
sub esp, 4
inc eax
mov edx, eax
je 0x4048c2
add eax, eax
mov dword [ebp - 0x270], edx
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
test eax, eax
je 0x4048c2
mov edx, dword [ebp - 0x270]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [ebp - 0x274], eax
call dword [sym.imp.user32.dll_GetWindowTextW]
mov esi, dword [sym.imp.ucrtbase.dll_free]
mov ecx, dword [ebp - 0x274]
sub esp, 0xc
test eax, eax
mov dword [ebp - 0x270], esi
je 0x404b98
mov dword [esp], ecx
mov eax, dword [ebp - 0x270]
call eax
mov ecx, dword [ebp - 0x26c]
sub ecx, 0x414
cmp ecx, 0x20
ja case.0x403dd2.1046
jmp dword [ecx*4 + 0x418000]
mov dword [esp + 8], 1
mov dword [esp + 4], 0x438
mov dword [esp], edi
call dword [sym.imp.user32.dll_CheckDlgButton]
sub esp, 0xc
jmp 0x403e77
xor eax, eax
jmp 0x4038cd
mov ecx, dword [ebp - 0x26c]
sub ecx, 0x413
cmp ecx, 0x21
ja case.0x403dd2.1046
jmp dword [ecx*4 + 0x418084]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.edit_id__d_changed_n
mov dword [esp + 8], str.on_edit_changed
mov dword [esp + 4], 0x415060
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_3
jmp 0x403ac4
mov eax, dword [ebp - 0x26c]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
mov esi, eax
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextLengthW]
sub esp, 4
inc eax
mov edx, eax
je 0x4048d4
add eax, eax
mov dword [ebp - 0x270], edx
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
test eax, eax
je 0x4048d4
mov edx, dword [ebp - 0x270]
mov dword [esp + 4], eax
mov dword [ebp - 0x270], eax
mov dword [esp + 8], edx
mov dword [esp], esi
call dword [sym.imp.user32.dll_GetWindowTextW]
mov ecx, dword [ebp - 0x270]
sub esp, 0xc
test eax, eax
je 0x404ba4
mov dword [esp], ecx
mov dword [ebp - 0x274], ecx
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0
call dword [sym.imp.ucrtbase.dll_wcstoul]
mov edx, dword [sym.imp.ucrtbase.dll_free]
mov ecx, dword [ebp - 0x274]
mov dword [ebp - 0x270], edx
mov esi, dword [0x415a4c]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 0x270]
mov dword [esp], ecx
call eax
mov dword [esi + 0x1c], 1
test byte [0x415060], 8
jne 0x404722
mov dword [esp], edi
call dword [sym.imp.user32.dll_GetParent]
sub esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 0x468
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendMessageW]
sub esp, 0x10
jmp 0x404383
mov eax, dword [ebp - 0x26c]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_GetDlgItem]
sub esp, 8
mov esi, eax
mov dword [esp], eax
call dword [sym.imp.user32.dll_GetWindowTextLengthW]
sub esp, 4
inc eax
mov edx, eax
je 0x404856
add eax, eax
mov dword [ebp - 0x274], edx
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_malloc]
mov edx, dword [ebp - 0x274]
test eax, eax
mov dword [ebp - 0x270], eax
je 0x404856
mov eax, dword [ebp - 0x270]
mov dword [esp + 8], edx
mov dword [esp], esi
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_GetWindowTextW]
sub esp, 0xc
test eax, eax
je 0x404b7d
mov esi, dword [0x415a4c]
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_free]
mov eax, dword [ebp - 0x270]
mov dword [esi + 0x1c], 1
mov dword [esi + 0xc], eax
test byte [0x415060], 8
jne 0x4048e9
mov dword [esp], edi
call dword [sym.imp.user32.dll_GetParent]
sub esp, 4
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 0x468
mov dword [esp], eax
call dword [sym.imp.user32.dll_SendMessageW]
mov ecx, dword [ebp - 0x26c]
sub esp, 0x10
sub ecx, 0x413
cmp ecx, 0x21
jbe switch.0x004043e4
jmp case.0x403dd2.1046
mov dword [esp], 0xd
call sym._load_string
mov dword [esp], 0x200d
mov esi, eax
call sym._load_string
mov dword [esp + 8], esi
mov ebx, eax
mov dword [esp], edi
mov dword [esp + 0xc], 0x30
mov dword [esp + 4], eax
call dword [sym.imp.user32.dll_MessageBoxW]
sub esp, 0x10
mov dword [esp], esi
mov esi, dword [sym.imp.ucrtbase.dll_free]
call esi
mov dword [esp], ebx
call esi
jmp case.0x403dd2.1046
mov dword [esp + 0xc], 0x417d48
jmp 0x403edc
mov dword [esp + 0x14], 0
mov esi, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], str.drive_c
mov dword [esp + 4], 0
mov dword [esp], 0xfdf2
call esi
mov edx, eax
sub esp, 0x18
add eax, eax
mov dword [esp], eax
mov eax, dword [ebp - 0x278]
mov dword [ebp - 0x27c], edx
call eax
mov dword [ebp - 0x274], eax
test eax, eax
je 0x4046e4
mov edx, dword [ebp - 0x27c]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x14], edx
mov dword [esp + 8], str.drive_c
mov dword [esp + 4], 0
mov dword [esp], 0xfdf2
call esi
sub esp, 0x18
mov eax, dword [0x415a4c]
mov eax, dword [eax + 4]
mov dword [esp], eax
mov eax, dword [ebp - 0x270]
call eax
mov dword [esp], str.drive_c
call dword [sym.imp.ucrtbase.dll__strdup]
mov esi, dword [0x415a4c]
mov edx, eax
jmp 0x403c3f
mov ebx, dword [eax*8 + 0x423460]
mov edx, 2
jmp 0x40427d
mov eax, dword [esi + 0x10]
mov dword [esp + 0xc], str.set_serial_to__08lX_n
mov dword [esp + 8], str.on_edit_changed
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x415060
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_3
jmp 0x4044e5
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.set_path_to__s_n
mov dword [esp + 8], str.on_edit_changed
mov dword [esp + 4], 0x415060
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_3
jmp 0x403c56
mov eax, dword [sym.imp.ucrtbase.dll_malloc]
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x274], 0
mov eax, dword [sym.imp.ucrtbase.dll_free]
mov dword [ebp - 0x270], eax
jmp 0x403b6c
mov dword [esp], 0xd
mov dword [ebp - 0x274], edx
call sym._load_string
mov dword [esp], 0x200f
mov esi, eax
call sym._load_string
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0x34
mov dword [esp + 4], eax
mov dword [ebp - 0x270], eax
mov dword [esp], edi
call dword [sym.imp.user32.dll_MessageBoxW]
sub esp, 0x10
mov dword [ebp - 0x26c], eax
mov dword [esp], esi
mov esi, dword [sym.imp.ucrtbase.dll_free]
call esi
mov ecx, dword [ebp - 0x270]
mov dword [esp], ecx
call esi
cmp dword [ebp - 0x26c], 7
mov edx, dword [ebp - 0x274]
jne 0x404030
jmp case.0x403dd2.1046
mov eax, dword [edx + 4]
mov dword [esp + 0xc], str.unixpath:__s_n
mov dword [esp + 8], str.on_remove_click
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x415060
mov dword [esp], 3
mov dword [ebp - 0x26c], edx
call sym._wine_dbg_log.constprop.0_3
mov edx, dword [ebp - 0x26c]
jmp 0x404027
mov eax, dword [sym.imp.ucrtbase.dll_free]
mov dword [ebp - 0x270], eax
mov esi, dword [0x415a4c]
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov eax, dword [ebp - 0x270]
call eax
mov dword [esi + 0xc], 0
mov dword [esi + 0x1c], 1
test byte [0x415060], 8
je 0x4045b9
mov edx, 0x417d21
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.set_label_to__s_n
mov dword [esp + 8], str.on_edit_changed
mov dword [esp + 4], 0x415060
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_3
jmp 0x4045b9
mov eax, dword [sym.imp.ucrtbase.dll_free]
xor ecx, ecx
mov dword [ebp - 0x270], eax
jmp 0x404378
mov edx, dword [sym.imp.ucrtbase.dll_free]
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x270], edx
jmp 0x4044bd
mov eax, dword [ebp - 0x270]
shr eax, 0x10
je 0x404b45
mov esi, dword [ebp - 0x270]
mov dword [esp + 4], 0xffffffff
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x417d17
sub esp, 8
test eax, eax
jne 0x404895
cmp word [esi], 0
mov edx, esi
je 0x404bbd
mov ecx, eax
lea eax, [eax + 1]
cmp word [edx + ecx*2 + 2], 0
jne 0x40492b
mov word [ebp - 0x220], 0x224c
lea eax, [ebp - 0x21e]
mov dword [ebp - 0x274], ebx
jmp 0x40498a
cmp dx, 9
je 0x404a6b
cmp dx, 0xa
jne 0x404a9a
mov esi, 0x6e5c
add eax, 2
mov word [eax - 2], si
lea ebx, [ebp - 0xfe]
lea edx, [ecx - 1]
cmp eax, ebx
ja 0x404afc
test ecx, ecx
jle 0x404afc
mov ecx, edx
add dword [ebp - 0x270], 2
mov ebx, dword [ebp - 0x270]
movzx edx, word [ebx - 2]
cmp dx, 0xd
je 0x404a7c
jbe 0x40494f
cmp dx, 0x22
je 0x404aeb
cmp dx, 0x5c
jne 0x404a8d
mov ebx, 0x5c5c
add eax, 2
mov word [eax - 2], bx
jmp 0x40496f
mov edx, 1
jmp 0x40427d
mov dword [esp], 0
lea ebx, [ebp - 0x220]
call dword [sym.imp.kernel32.dll_GetModuleHandleW]
sub esp, 4
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x40
mov dword [esp + 4], 0x200e
mov dword [esp], eax
call dword [sym.imp.user32.dll_LoadStringW]
sub esp, 0x10
mov dword [esp + 0x14], 3
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], str..._drive_c
mov dword [esp], 0x43
call sym._add_drive
jmp 0x404164
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.selected_drive_letter__c_n
mov dword [esp + 8], str.on_add_click
mov dword [esp + 4], 0x415060
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_3
jmp 0x40412b
mov edx, 0x745c
add eax, 2
mov word [eax - 2], dx
jmp 0x40496f
mov ebx, 0x725c
add eax, 2
mov word [eax - 2], bx
jmp 0x40496f
lea esi, [edx - 0x20]
cmp si, 0x5e
jbe 0x404b32
mov esi, edx
mov byte [eax], 0x5c
add eax, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + 0x4231c0]
mov esi, edx
shr si, 8
and esi, 0xf
mov byte [eax - 4], bl
movzx ebx, byte [esi + 0x4231c0]
mov esi, edx
and edx, 0xf
shr si, 4
movzx edx, byte [edx + 0x4231c0]
and esi, 0xf
mov byte [eax - 3], bl
movzx ebx, byte [esi + 0x4231c0]
mov byte [eax - 1], dl
mov byte [eax - 2], bl
jmp 0x40496f
mov esi, 0x225c
add eax, 2
mov word [eax - 2], si
jmp 0x40496f
mov byte [eax], 0x22
mov ebx, dword [ebp - 0x274]
test edx, edx
jle 0x404bd3
mov word [eax + 1], 0x2e2e
lea edx, [eax + 4]
mov byte [eax + 3], 0x2e
lea eax, [ebp - 0x220]
mov byte [edx], 0
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
jmp 0x404895
mov byte [eax], dl
inc eax
jmp 0x40496f
mov eax, dword [ebp - 0x274]
jmp 0x403cd1
movzx eax, word [ebp - 0x270]
mov dword [esp], 0x417cb4
mov dword [esp + 4], eax
call sym._wine_dbg_sprintf.constprop.0_3
mov edx, eax
jmp 0x404895
mov eax, dword [ebp - 0x274]
mov dword [esp], eax
call edx
mov dword [ebp - 0x274], 0
jmp 0x403b6c
mov eax, dword [ebp - 0x270]
mov dword [esp], eax
mov eax, dword [sym.imp.ucrtbase.dll_free]
mov dword [ebp - 0x270], eax
call eax
jmp 0x404861
mov dword [esp], ecx
call esi
xor ecx, ecx
jmp 0x404378
mov eax, dword [sym.imp.ucrtbase.dll_free]
mov dword [esp], ecx
mov dword [ebp - 0x270], eax
call eax
xor ecx, ecx
xor eax, eax
jmp 0x4044bd
mov word [ebp - 0x220], 0x224c
lea eax, [ebp - 0x21e]
mov byte [ebp - 0x21e], 0x22
lea edx, [eax + 1]
jmp 0x404b1a