Function at 0x414d90
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44fd77
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x114
push ebx
push esi
xor ebx, ebx
push edi
mov dword [ebp - 0x1c], ebx
call fcn.00422880
mov esi, dword [ebp + 0xc]
test eax, eax
je 0x414eaa
xor eax, eax
cmp esi, 0x2e
ja case.0x414dd9.17
xor ecx, ecx
mov cl, byte [esi + 0x41505c]
jmp dword [ecx*4 + 0x415014]
mov eax, 0x455750
jmp case.0x414dd9.17
mov eax, 0x455740
jmp case.0x414dd9.17
mov eax, 0x455700
jmp case.0x414dd9.17
mov eax, 0x455730
jmp case.0x414dd9.17
mov eax, 0x4556f0
jmp case.0x414dd9.17
mov eax, 0x4556e0
jmp case.0x414dd9.17
mov eax, 0x4556d0
jmp case.0x414dd9.17
mov eax, 0x4556c0
jmp case.0x414dd9.17
mov eax, 0x4556b0
jmp case.0x414dd9.17
mov eax, 0x4556a0
jmp case.0x414dd9.17
mov eax, 0x455690
jmp case.0x414dd9.17
mov eax, 0x455680
jmp case.0x414dd9.17
mov eax, 0x455710
jmp case.0x414dd9.17
mov eax, 0x455670
jmp case.0x414dd9.17
mov eax, 0x455660
jmp case.0x414dd9.17
mov eax, 0x455650
jmp case.0x414dd9.17
mov eax, 0x455640
mov edx, dword [0x4981ec]
mov dword [ebp + 0xc], edx
mov edi, 1
cmp eax, ebx
mov dword [ebp - 4], edi
je 0x414e9f
lea ecx, [ebp + 0xc]
push ecx
push eax
call fcn.00415090
add esp, 8
test eax, eax
je 0x414e9f
mov edx, dword [ebp + 0xc]
cmp dword [edx - 8], ebx
je 0x414e9f
mov esi, dword [ebp + 8]
lea eax, [ebp + 0xc]
push eax
mov ecx, esi
call fcn.004440c0
mov dword [ebp - 0x1c], edi
mov byte [ebp - 4], bl
lea ecx, [ebp + 0xc]
jmp 0x414ffb
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], bl
call fcn.00444260
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x18], ebx
push ecx
push esi
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov dl, byte [0x49bdf0]
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x11f]
mov byte [ebp - 0x120], dl
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x18]
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x120]
push eax
push ecx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
lea edx, [ebp - 0x14]
mov dword [ebp - 0x14], ebx
push edx
call dword [sym.imp.SHELL32.dll_SHGetMalloc]
test eax, eax
jl 0x414f13
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x414f13
mov edx, dword [ebp - 0x18]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x14]
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
lea edx, [ebp - 0x120]
lea ecx, [ebp - 0x10]
push edx
call fcn.004442e0
cmp esi, 0x1a
mov dword [ebp - 4], 2
jne 0x414f4f
mov eax, dword [ebp - 0x10]
cmp dword [eax - 8], ebx
jne 0x414fd4
push 0x490804
push 0x49080c
lea ecx, [ebp - 0x10]
push SysReAllocStringLen
push ecx
jmp 0x414fcc
cmp esi, 0x23
jne 0x414f68
mov edx, dword [ebp - 0x10]
cmp dword [edx - 8], ebx
jne 0x414fd4
push 0x490850
push 0x490860
jmp 0x414fc3
cmp esi, 0x17
jne 0x414f8a
mov ecx, dword [ebp - 0x10]
cmp dword [ecx - 8], ebx
jne 0x414fd4
push 0x4908a4
push 0x4908b4
lea edx, [ebp - 0x10]
push SysStringLen
push edx
jmp 0x414fcc
cmp esi, 2
jne 0x414fac
mov eax, dword [ebp - 0x10]
cmp dword [eax - 8], ebx
jne 0x414fd4
push 0x4908f8
push 0x490904
lea ecx, [ebp - 0x10]
push SysReAllocStringLen
push ecx
jmp 0x414fcc
cmp esi, 0x26
jne 0x414fd4
mov edx, dword [ebp - 0x10]
cmp dword [edx - 8], ebx
jne 0x414fd4
push 0x490948
push 0x490958
lea eax, [ebp - 0x10]
push SysStringLen
push eax
call fcn.0041af10
add esp, 0x10
lea ecx, [ebp - 0x10]
push ecx
call fcn.00414260
mov esi, dword [ebp + 8]
add esp, 4
lea edx, [ebp - 0x10]
mov ecx, esi
push edx
call fcn.004440c0
mov dword [ebp - 0x1c], 1
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x10]
call fcn.00444260
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret