Function at 0x4018f0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xcc
mov dword [ebp - 0x38], 0x2b13
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0xb0], 0x9ccd
je 0x401917
jmp 0x40196d
push 0
mov ecx, dword [ebp - 0x8c]
push ecx
call dword [sym.imp.USER32.dll_ShowOwnedPopups]
mov dword [ebp - 0x44], eax
mov edx, dword [ebp - 0x38]
and edx, 0xf046
mov dword [ebp - 0x38], edx
call fcn.004018f0
mov eax, dword [ebp - 0x38]
or eax, 0xe63d
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x38]
shl ecx, 9
mov dword [ebp - 0x38], ecx
lea edx, [ebp - 0x8c]
push edx
mov eax, dword [ebp - 0x8c]
push eax
call dword [sym.imp.USER32.dll_GetComboBoxInfo]
mov dword [ebp - 0xa0], eax
jmp 0x401e0f
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0xb4], ecx
cmp dword [ebp - 0xb4], 0x2b13
je 0x401987
jmp 0x401cec
lea edx, [ebp - 0x38]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x2c], eax
mov ecx, dword [ebp - 0x38]
mov dword [ebp - 0xb8], ecx
cmp dword [ebp - 0xb8], 0x35e1
je 0x4019aa
jmp 0x4019bb
mov edx, dword [ebp - 0xc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x38]
shl eax, cl
mov ecx, dword [ebp - 0xc]
mov dword [ecx], eax
jmp 0x4019d7
lea edx, [ebp - 0x38]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xa4], eax
lea ecx, [ebp - 0x34]
mov dword [ebp - 0xac], ecx
mov byte [ebp - 0x4d], 0xce
mov edx, 0xfac
mov word [ebp - 0x10], dx
mov eax, 0x17
mov word [ebp - 0x98], ax
mov byte [ebp - 5], 0x75
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x18], ecx
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x2c]
xor eax, dword [edx]
mov dword [ebp - 0xa4], eax
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x48], ecx
mov edx, dword [ebp - 0x4c]
mov eax, dword [edx]
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0x2b13
je 0x401a32
cmp dword [ebp - 0xbc], 0xa33b
je 0x401a4f
jmp 0x401a7e
mov cl, byte [ebp - 0x4d]
mov byte [ebp - 0xa5], cl
lea edx, [ebp - 0x38]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x2c]
or eax, dword [ebp - 0x34]
mov dword [ebp - 0xa4], eax
jmp 0x401a7e
mov ecx, dword [ebp - 0x8c]
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextLengthA]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0xac]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x34]
sar eax, cl
mov dword [ebp - 0x2c], eax
movzx ecx, word [ebp - 0x10]
push ecx
movzx edx, word [ebp - 0x10]
push edx
call fcn.004012d0
lea eax, [ebp - 0x38]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0xac]
mov edx, dword [ecx]
and edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0xa4]
cmp edx, eax
jl 0x401b53
movsx ecx, byte [ebp - 5]
cmp ecx, 0x41
jl 0x401b0a
mov edx, dword [ebp - 0x48]
mov ax, word [edx]
mov word [ebp - 0x94], ax
movsx ecx, word [ebp - 0x98]
mov dword [ebp - 0xc0], ecx
cmp dword [ebp - 0xc0], 0x32
je 0x401ace
jmp 0x401ae7
mov edx, dword [ebp - 0x8c]
push edx
mov eax, dword [ebp - 4]
push eax
call dword [sym.imp.USER32.dll_ExcludeUpdateRgn]
mov dword [ebp - 0xa4], eax
jmp 0x401aed
lea ecx, [ebp - 0x34]
mov dword [ebp - 0x40], ecx
movzx edx, byte [ebp - 0xa5]
sub edx, 0xfe
mov byte [ebp - 0x4d], dl
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x18]
mov dword [edx], ecx
movzx eax, byte [ebp - 0x4d]
sub eax, 0xe1
mov byte [ebp - 0xa5], al
call fcn.004018f0
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x28]
mov eax, dword [ecx]
sub eax, dword [edx]
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x54]
push ecx
call dword [sym.imp.USER32.dll_SetClipboardViewer]
mov dword [ebp - 0x9c], eax
mov edx, dword [ebp - 0xac]
mov eax, dword [edx]
add eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xac]
mov dword [ecx], eax
jmp 0x401c5d
mov edx, dword [ebp - 0x34]
sub edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xac]
mov ecx, dword [ebp - 0xa4]
sub ecx, dword [eax]
cmp edx, ecx
jge 0x401c5d
mov edx, dword [ebp - 0xac]
mov eax, dword [edx]
push eax
mov edx, dword [ebp - 0x98]
mov ecx, dword [ebp - 0xa4]
call fcn.0056de90
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xa4]
shl edx, cl
mov eax, dword [ebp - 0xac]
mov dword [eax], edx
movzx ecx, word [ebp - 0x10]
mov dword [ebp - 0xc4], ecx
cmp dword [ebp - 0xc4], 0xabb
je 0x401c48
cmp dword [ebp - 0xc4], 0xf29
je 0x401bc7
jmp 0x401c5d
lea edx, [ebp - 0x24]
push edx
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.USERENV.dll_GetUserProfileDirectoryA]
mov dword [ebp - 0x90], eax
movsx edx, word [ebp - 0x98]
cmp edx, 0x464
jge 0x401c1f
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax]
mov dword [ebp - 0x34], ecx
movzx edx, word [ebp - 0x10]
or edx, 0x5f3
mov eax, dword [ebp - 0x48]
mov word [eax], dx
movsx ecx, word [ebp - 0x98]
and ecx, 0x782
mov word [ebp - 0x98], cx
jmp 0x401c46
movzx edx, byte [ebp - 0x4d]
xor edx, 0x47
movzx eax, byte [ebp - 0xa5]
cmp edx, eax
jle 0x401c46
push 0xef
mov ecx, dword [ebp - 0x1c]
push ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [ebp - 0x8c], eax
jmp 0x401c5d
call fcn.004018f0
movzx edx, word [ebp - 0x10]
add edx, 0x77f
mov eax, dword [ebp - 0x48]
mov word [eax], dx
mov ecx, dword [ebp - 0x14]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x4c]
add edx, dword [eax]
mov ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ecx]
and ecx, dword [eax]
cmp edx, ecx
jbe 0x401cdb
mov edx, dword [ebp - 0xac]
mov eax, dword [edx]
sub eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0xac]
mov dword [ecx], eax
mov edx, dword [ebp - 0x48]
movzx eax, word [edx]
add eax, 0x742
mov word [ebp - 0x10], ax
call dword [sym.imp.USER32.dll_GetOpenClipboardWindow]
mov dword [ebp - 0x9c], eax
mov ecx, dword [ebp - 0x34]
sub ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0xac]
mov dword [edx], ecx
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax]
call fcn.0056de90
mov ecx, dword [ebp - 0x34]
add ecx, dword [ebp - 0xa4]
mov dword [ebp - 0x2c], ecx
jmp 0x401cea
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x28]
mov edx, dword [edx]
mov ecx, dword [eax]
shr edx, cl
mov dword [ebp - 0x38], edx
jmp 0x401d59
push 0xac
push 0x74
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_InflateRect]
mov dword [ebp - 0x88], eax
mov ecx, dword [ebp - 0x38]
sub ecx, 0x67f6
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
add edx, 0x664
mov dword [ebp - 0x38], edx
mov eax, dword [ebp - 0x38]
sub eax, 0x6331
mov dword [ebp - 0x38], eax
push 0xff
push 0x5d
push 0xa6
push 0
lea ecx, [ebp - 0x3c]
push ecx
call dword [sym.imp.USER32.dll_LookupIconIdFromDirectoryEx]
mov dword [ebp - 0x34], eax
mov edx, dword [ebp - 0x34]
push edx
mov edx, 0xeb
mov ecx, dword [ebp - 0x34]
call fcn.0056de90
mov dword [ebp - 0x34], 0x3db6
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0x673
je 0x401e04
cmp dword [ebp - 0xc8], 0x525c
je 0x401d83
jmp 0x401e0f
cmp dword [ebp - 0x38], 0xde9f
je 0x401dd8
mov ecx, dword [ebp - 0x38]
shr ecx, 5
mov dword [ebp - 0x38], ecx
push 0xd1
mov edx, dword [ebp - 0x8c]
push edx
call dword [sym.imp.USER32.dll_GetAncestor]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x38]
add eax, 0x16f0
cmp eax, 0x77a6
jae 0x401dca
mov ecx, dword [ebp - 0x38]
sub ecx, 0x66ba
mov dword [ebp - 0x38], ecx
call section..text
mov edx, dword [ebp - 0x38]
and edx, 0x9f01
mov dword [ebp - 0x38], edx
jmp 0x401e02
mov eax, dword [ebp - 0x38]
xor eax, 0xd65b
cmp eax, 0xc437
jb 0x401e02
lea ecx, [ebp - 0x84]
push ecx
push 0
push 0xf4
mov edx, dword [ebp - 0x3c]
push edx
call dword [sym.imp.USER32.dll_GetMenuItemInfoA]
mov dword [ebp - 0x20], eax
jmp 0x401e0f
mov eax, dword [ebp - 0x38]
add eax, 0xcc7b
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x38]
sub ecx, 0x3316
mov dword [ebp - 0x38], ecx
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0xcc], edx
cmp dword [ebp - 0xcc], 0x7dc
je 0x401e34
jmp 0x401e3f
mov eax, dword [ebp - 0x38]
add eax, 0xd8cd
mov dword [ebp - 0x38], eax
push 0x52
push 0xd4
push 0xdd
push 0x81
push 0x21
mov ecx, dword [ebp - 0x1c]
push ecx
mov edx, dword [ebp - 0x9c]
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov dword [ebp - 0x88], eax
call section..text
mov eax, 0x37
mov esp, ebp
pop ebp
ret