Function at 0x505efc
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd68
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x298], edx
mov dword [ebp - 0x294], edx
mov dword [ebp - 0x28c], edx
mov dword [ebp - 0x290], edx
mov dword [ebp - 0x288], edx
mov dword [ebp - 0x274], edx
mov dword [ebp - 0x270], edx
mov dword [ebp - 0xc], edx
mov esi, eax
lea eax, [ebp - 0x26c]
mov edx, dword [0x407e08]
call fcn.00404fc4
xor eax, eax
push ebp
push 0x50631d
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x5062b6
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x53c104]
cmp byte [eax], 0
je 0x505f82
lea eax, [ebp - 0xc]
mov edx, dword [0x53be20]
mov edx, dword [edx]
call fcn.0040456c
jmp 0x505fb8
lea eax, [ebp - 4]
push eax
push 6
mov eax, esi
call fcn.00471438
push eax
call sub.shell32.dll_SHGetSpecialFolderLocation
lea eax, [ebp - 0x111]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.shell32.dll_SHGetPathFromIDListA
lea eax, [ebp - 0xc]
lea edx, [ebp - 0x111]
mov ecx, 0x105
call fcn.00404744
mov eax, dword [ebp - 0xc]
call fcn.00404794
mov edx, dword [ebp - 0xc]
cmp byte [edx + eax - 1], 0x5c
je 0x505fd7
lea eax, [ebp - 0xc]
mov edx, 0x506334
call fcn.0040479c
mov dl, 1
mov eax, dword [0x418fb8]
call fcn.0040360c
mov dword [ebp - 8], eax
xor edx, edx
push ebp
push 0x5062a5
push dword fs:[edx]
mov dword fs:[edx], esp
lea eax, [ebp - 0x270]
mov ecx, 0x506340
mov edx, dword [ebp - 0xc]
call fcn.004047e0
mov eax, dword [ebp - 0x270]
lea ecx, [ebp - 0x26c]
mov edx, 0x3f
call fcn.0040973c
test eax, eax
jne 0x50623b
test dword [ebp - 0x264], 0x10
jle 0x506142
mov eax, dword [ebp - 0x260]
cmp byte [eax], 0x2e
je 0x506228
mov eax, dword [0x53be4c]
mov eax, dword [eax]
mov ecx, dword [eax + 0x5ec]
mov dl, 1
mov eax, dword [0x441f34]
call fcn.0044e2e0
mov ebx, eax
mov ecx, esi
mov dl, 1
mov eax, dword [0x47a278]
call fcn.0047b7a4
mov edi, eax
mov edx, dword [ebp - 0x260]
mov eax, edi
call fcn.0047d6b8
mov edx, 2
mov eax, edi
call fcn.0047d8a8
mov eax, edi
call fcn.005044a4
lea eax, [ebp - 0x274]
push eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x284], eax
mov byte [ebp - 0x280], 0xb
mov eax, dword [ebp - 0x260]
mov dword [ebp - 0x27c], eax
mov byte [ebp - 0x278], 0xb
lea edx, [ebp - 0x284]
mov ecx, 1
mov eax, 0x506350
call fcn.0040a28c
mov edx, dword [ebp - 0x274]
lea eax, [edi + 0x58]
call fcn.00404528
mov dword [edi + 0x8c], esi
mov dword [edi + 0x88], 0x5056e8
mov eax, dword [esi + 0x6d4]
mov eax, dword [eax + 0x34]
mov edx, edi
call fcn.0047dbcc
mov dl, 1
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov dl, 1
mov eax, ebx
call fcn.0044ec6c
mov edx, edi
mov eax, ebx
call fcn.0044ed7c
lea eax, [ebp - 0x288]
mov ecx, dword [ebp - 0x260]
mov edx, 0x506360
call fcn.004047e0
mov edx, dword [ebp - 0x288]
mov ecx, ebx
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
jmp 0x506228
lea edx, [ebp - 0x290]
mov eax, dword [ebp - 0x260]
call fcn.00409a4c
mov eax, dword [ebp - 0x290]
lea edx, [ebp - 0x28c]
call fcn.00408b54
mov eax, dword [ebp - 0x28c]
mov edx, 0x50636c
call fcn.004048e0
jne 0x506228
mov eax, dword [0x53be4c]
mov eax, dword [eax]
mov ecx, dword [eax + 0x5ec]
mov dl, 1
mov eax, dword [0x441f34]
call fcn.0044e2e0
mov ebx, eax
lea eax, [ebp - 0x294]
push eax
mov eax, dword [ebp - 0x260]
call fcn.00404794
mov ecx, eax
sub ecx, 4
mov edx, 1
mov eax, dword [ebp - 0x260]
call fcn.004049f4
mov edx, dword [ebp - 0x294]
mov eax, ebx
call fcn.0046aaec
lea eax, [ebx + 0x80]
mov ecx, dword [ebp - 0x260]
mov edx, dword [ebp - 0xc]
call fcn.004047e0
mov dword [ebx + 0x124], esi
mov dword [ebx + 0x120], 0x505df4
mov dl, 1
mov eax, ebx
mov ecx, dword [eax]
call dword [ecx + 0x5c]
mov edx, 3
mov eax, ebx
call fcn.0044ec8c
lea eax, [ebp - 0x298]
mov ecx, dword [ebp - 0x260]
mov edx, 0x50637c
call fcn.004047e0
mov edx, dword [ebp - 0x298]
mov ecx, ebx
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 0x3c]
lea eax, [ebp - 0x26c]
call fcn.0040978c
test eax, eax
je 0x506025
lea eax, [ebp - 0x26c]
call fcn.004097b0
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x90]
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x50628f
mov edx, ebx
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, dword [0x441f34]
call fcn.004037ec
mov edx, dword [0x53be4c]
mov edx, dword [edx]
mov edx, dword [edx + 0x5ec]
mov ecx, dword [eax]
call dword [ecx + 0x68]
dec ebx
cmp ebx, 0xffffffff
jne 0x506261
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5062ac
mov eax, dword [ebp - 8]
call fcn.0040363c
ret