Function at 0x4ef580
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x2a
push 0
push 0
dec ecx
jne 0x4ef588
push ecx
push ebx
push esi
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x4efde0
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebx + 0x308], 0
je 0x4efdba
mov edx, esi
mov eax, dword [ebx + 0x30c]
call fcn.004f2960
cmp byte [eax + 0x24], 0
je 0x4efc72
mov dl, 1
mov eax, dword [0x415358]
call fcn.00403a50
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
call fcn.004dd560
mov eax, dword [ebx + 0x308]
mov eax, dword [eax]
mov edx, dword [0x4f2d30]
call fcn.00403cac
test al, al
je 0x4ef926
mov edx, esi
mov eax, dword [ebx + 0x30c]
call fcn.004f2960
cmp byte [eax + 0x24], 7
jne 0x4ef72d
lea edx, [ebp - 0x118]
mov esi, dword [ebx + 0x308]
mov eax, esi
call fcn.004f5370
mov edx, dword [ebp - 0x118]
mov eax, esi
call fcn.004f5af8
lea ecx, [ebp - 0x11c]
xor edx, edx
mov eax, dword [ebp - 8]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x11c]
call fcn.00404cdc
push eax
push 0xffffffffffffffff
push 0x14d
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
call sub.user32.dll_SendMessageA
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
mov dx, 9
mov ax, 0x471
call fcn.00407ac0
push eax
push 0x111
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_SendMessageA
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
mov dx, 8
mov ax, 0x471
call fcn.00407ac0
push eax
push 0x111
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_SendMessageA
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
mov dx, 1
mov ax, 0x471
call fcn.00407ac0
push eax
push 0x111
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_SendMessageA
jmp 0x4efc65
mov edx, esi
mov eax, dword [ebx + 0x30c]
call fcn.004f2960
cmp byte [eax + 0x24], 9
jne 0x4ef863
lea edx, [ebp - 0x120]
mov esi, dword [ebx + 0x308]
mov eax, esi
call fcn.004f5370
mov edx, dword [ebp - 0x120]
mov eax, esi
call fcn.004f5af8
lea ecx, [ebp - 0x124]
mov edx, 1
mov eax, dword [ebp - 8]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x124]
call fcn.00404cdc
push eax
push 0xffffffffffffffff
push 0x14d
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
call sub.user32.dll_SendMessageA
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
mov dx, 9
mov ax, 0x471
call fcn.00407ac0
push eax
push 0x111
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_SendMessageA
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
mov dx, 8
mov ax, 0x471
call fcn.00407ac0
push eax
push 0x111
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_SendMessageA
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
mov dx, 1
mov ax, 0x471
call fcn.00407ac0
push eax
push 0x111
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_SendMessageA
jmp 0x4efc65
mov edx, esi
mov eax, dword [ebx + 0x30c]
call fcn.004f2960
cmp byte [eax + 0x24], 0xd
jne 0x4ef8ce
lea eax, [ebp - 0xc]
push eax
push 5
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.shell32.dll_SHGetSpecialFolderLocation
lea eax, [ebp - 0x112]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.shell32.dll_SHGetPathFromIDListA
lea eax, [ebp - 0x128]
lea edx, [ebp - 0x112]
call fcn.00404a1c
mov edx, dword [ebp - 0x128]
mov eax, dword [ebx + 0x308]
call fcn.004f5af8
mov eax, dword [ebp - 0xc]
push eax
call sub.ole32.dll_CoTaskMemFree
jmp 0x4efc65
lea eax, [ebp - 0xc]
push eax
push 6
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.shell32.dll_SHGetSpecialFolderLocation
lea eax, [ebp - 0x112]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.shell32.dll_SHGetPathFromIDListA
lea eax, [ebp - 0x12c]
lea edx, [ebp - 0x112]
call fcn.00404a1c
mov edx, dword [ebp - 0x12c]
mov eax, dword [ebx + 0x308]
call fcn.004f5af8
mov eax, dword [ebp - 0xc]
push eax
call sub.ole32.dll_CoTaskMemFree
jmp 0x4efc65
mov eax, dword [ebx + 0x308]
mov eax, dword [eax]
mov edx, dword [0x4ee3e8]
call fcn.00403cac
test al, al
je 0x4efc65
mov edx, esi
mov eax, dword [ebx + 0x30c]
call fcn.004f2960
cmp byte [eax + 0x24], 7
jne 0x4efa74
lea edx, [ebp - 0x130]
mov esi, dword [ebx + 0x308]
mov eax, esi
call fcn.004f5370
mov edx, dword [ebp - 0x130]
mov eax, esi
call fcn.004f5af8
lea ecx, [ebp - 0x134]
xor edx, edx
mov eax, dword [ebp - 8]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x134]
call fcn.00404cdc
push eax
push 0xffffffffffffffff
push 0x14d
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
call sub.user32.dll_SendMessageA
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
mov dx, 9
mov ax, 0x471
call fcn.00407ac0
push eax
push 0x111
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_SendMessageA
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
mov dx, 8
mov ax, 0x471
call fcn.00407ac0
push eax
push 0x111
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_SendMessageA
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
mov dx, 1
mov ax, 0x471
call fcn.00407ac0
push eax
push 0x111
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_SendMessageA
jmp 0x4efc65
mov edx, esi
mov eax, dword [ebx + 0x30c]
call fcn.004f2960
cmp byte [eax + 0x24], 9
jne 0x4efbaa
lea edx, [ebp - 0x138]
mov esi, dword [ebx + 0x308]
mov eax, esi
call fcn.004f5370
mov edx, dword [ebp - 0x138]
mov eax, esi
call fcn.004f5af8
lea ecx, [ebp - 0x13c]
mov edx, 1
mov eax, dword [ebp - 8]
mov esi, dword [eax]
call dword [esi + 0xc]
mov eax, dword [ebp - 0x13c]
call fcn.00404cdc
push eax
push 0xffffffffffffffff
push 0x14d
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
call sub.user32.dll_SendMessageA
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
mov dx, 9
mov ax, 0x471
call fcn.00407ac0
push eax
push 0x111
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_SendMessageA
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
mov dx, 8
mov ax, 0x471
call fcn.00407ac0
push eax
push 0x111
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_SendMessageA
push 0x471
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_GetDlgItem
push eax
mov dx, 1
mov ax, 0x471
call fcn.00407ac0
push eax
push 0x111
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.user32.dll_SendMessageA
jmp 0x4efc65
mov edx, esi
mov eax, dword [ebx + 0x30c]
call fcn.004f2960
cmp byte [eax + 0x24], 0xd
jne 0x4efc12
lea eax, [ebp - 0xc]
push eax
push 5
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.shell32.dll_SHGetSpecialFolderLocation
lea eax, [ebp - 0x112]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.shell32.dll_SHGetPathFromIDListA
lea eax, [ebp - 0x140]
lea edx, [ebp - 0x112]
call fcn.00404a1c
mov edx, dword [ebp - 0x140]
mov eax, dword [ebx + 0x308]
call fcn.004f5af8
mov eax, dword [ebp - 0xc]
push eax
call sub.ole32.dll_CoTaskMemFree
jmp 0x4efc65
lea eax, [ebp - 0xc]
push eax
push 6
mov eax, dword [ebx + 0x308]
mov eax, dword [eax + 0x158]
push eax
call sub.shell32.dll_SHGetSpecialFolderLocation
lea eax, [ebp - 0x112]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.shell32.dll_SHGetPathFromIDListA
lea eax, [ebp - 0x144]
lea edx, [ebp - 0x112]
call fcn.00404a1c
mov edx, dword [ebp - 0x144]
mov eax, dword [ebx + 0x308]
call fcn.004f5af8
mov eax, dword [ebp - 0xc]
push eax
call sub.ole32.dll_CoTaskMemFree
mov eax, dword [ebp - 8]
call fcn.00403a80
jmp 0x4efdba
mov edx, esi
mov eax, dword [ebx + 0x30c]
call fcn.004f2960
cmp dword [eax + 0x28], 0
je 0x4efc9f
mov edx, esi
mov eax, dword [ebx + 0x30c]
call fcn.004f2960
mov eax, dword [eax + 0x28]
lea edx, [ebp - 4]
call fcn.004f2b98
jmp 0x4efcb7
mov edx, esi
mov eax, dword [ebx + 0x30c]
call fcn.004f2960
mov edx, dword [eax + 0x1c]
lea eax, [ebp - 4]
call fcn.004048c4
mov eax, dword [ebx + 0x308]
mov eax, dword [eax]
mov edx, dword [0x4f2d30]
call fcn.00403cac
test al, al
je 0x4efd3d
mov eax, dword [ebp - 4]
call fcn.004ed4e0
test al, al
je 0x4efced
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x308]
call fcn.004f5af8
jmp 0x4efdba
mov eax, dword [ebp - 4]
call fcn.004095e8
test al, al
je 0x4efdba
lea edx, [ebp - 0x148]
mov eax, dword [ebp - 4]
call fcn.004099c8
mov edx, dword [ebp - 0x148]
mov eax, dword [ebx + 0x308]
call fcn.004f5af8
lea edx, [ebp - 0x14c]
mov eax, dword [ebp - 4]
call fcn.00409b04
mov edx, dword [ebp - 0x14c]
mov eax, dword [ebx + 0x308]
call fcn.004f5430
jmp 0x4efdba
mov eax, dword [ebx + 0x308]
mov eax, dword [eax]
mov edx, dword [0x4ee3e8]
call fcn.00403cac
test al, al
je 0x4efdba
mov eax, dword [ebp - 4]
call fcn.004ed4e0
test al, al
je 0x4efd70
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x308]
call fcn.004f5af8
jmp 0x4efdba
mov eax, dword [ebp - 4]
call fcn.004095e8
test al, al
je 0x4efdba
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 4]
call fcn.004099c8
mov edx, dword [ebp - 0x150]
mov eax, dword [ebx + 0x308]
call fcn.004f5af8
lea edx, [ebp - 0x154]
mov eax, dword [ebp - 4]
call fcn.00409b04
mov edx, dword [ebp - 0x154]
mov eax, dword [ebx + 0x308]
call fcn.004f5430
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4efde7
lea eax, [ebp - 0x154]
mov edx, 0x10
call fcn.00404850
lea eax, [ebp - 4]
call fcn.0040482c
ret