Function at 0x535820
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x52
push 0
push 0
dec ecx
jne 0x535828
push ecx
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x535bbd
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x5bed8c], 0
jne 0x535b8a
mov byte [0x5bed8c], 1
xor eax, eax
mov dword [ebp - 0x1c], eax
lea ecx, [ebp - 8]
xor edx, edx
mov eax, 0x535bd4
call fcn.005a9a44
lea ecx, [ebp - 0xc]
xor edx, edx
mov eax, 0x535c18
call fcn.005a9a44
cmp dword [ebp - 8], 0
je 0x5358cc
cmp dword [ebp - 0xc], 0
je 0x5358cc
push dword [ebp - 0xc]
push 0x535c60
push dword [ebp - 8]
push 0x535c7c
lea eax, [ebp - 0x278]
mov edx, 4
call fcn.00405814
mov eax, dword [ebp - 0x278]
lea ecx, [ebp - 0x274]
mov edx, 0x6172e0
call fcn.0053536c
mov edx, dword [ebp - 0x274]
mov eax, 0x6172d4
call fcn.004054e4
jmp 0x5358d6
mov eax, 0x6172d4
call fcn.00405490
mov eax, 0x6172d8
call fcn.00405490
lea eax, [ebp - 0x18]
push eax
push 0x1a
push 0
call sub.shell32.dll_SHGetSpecialFolderLocation
test eax, eax
jne 0x53591f
lea eax, [ebp - 0x121]
push eax
mov eax, dword [ebp - 0x18]
push eax
call sub.shell32.dll_SHGetPathFromIDListA
test eax, eax
je 0x53591f
lea eax, [ebp - 0x14]
push eax
call sub.shell32.dll_SHGetMalloc
test eax, eax
je 0x53591f
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [eax]
call dword [eax + 0x14]
lea eax, [ebp - 0x27c]
lea edx, [ebp - 0x121]
mov ecx, 0x105
call fcn.00405700
mov edx, dword [ebp - 0x27c]
lea eax, [ebp - 8]
mov ecx, 0x535c90
call fcn.004057a0
mov eax, dword [ebp - 8]
call fcn.0040ac10
test al, al
je 0x535a9c
xor eax, eax
push ebp
push 0x5359d3
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x270]
call fcn.004037e8
mov edx, 1
lea eax, [ebp - 0x270]
call fcn.00403ef8
lea eax, [ebp - 0x270]
call fcn.00403b38
mov edx, eax
lea eax, [ebp - 4]
call fcn.00405bdc
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x5359a5
sub ebx, 4
mov ebx, dword [ebx]
push 0
lea eax, [ebp - 4]
call fcn.004059ac
mov edx, eax
mov ecx, ebx
lea eax, [ebp - 0x270]
call fcn.0040393c
lea eax, [ebp - 0x270]
call fcn.0040395c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5359dd
lea eax, [ebp - 0x280]
lea edx, [ebp - 0x121]
mov ecx, 0x105
call fcn.00405700
mov eax, dword [ebp - 0x280]
mov edx, dword [ebp - 4]
call fcn.00405a98
test eax, eax
je 0x535a9c
lea eax, [ebp - 0x284]
lea edx, [ebp - 0x121]
mov ecx, 0x105
call fcn.00405700
mov eax, dword [ebp - 0x284]
mov edx, dword [ebp - 4]
call fcn.00405a98
mov ecx, eax
dec ecx
lea eax, [ebp - 4]
mov edx, 1
call fcn.004059f4
lea eax, [ebp - 4]
push eax
mov edx, dword [ebp - 4]
mov eax, 0x535cb0
call fcn.00405a98
mov ecx, eax
add ecx, 3
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004059b4
lea eax, [ebp - 4]
mov edx, 0x535c7c
call fcn.0040575c
mov eax, dword [ebp - 4]
call fcn.0040ac10
test al, al
je 0x535a9c
lea ecx, [ebp - 0x288]
mov edx, 0x6172e4
mov eax, dword [ebp - 4]
call fcn.0053536c
mov edx, dword [ebp - 0x288]
mov eax, 0x6172d8
call fcn.004054e4
xor eax, eax
push ebp
push 0x535b83
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x28c]
lea edx, [ebp - 0x121]
mov ecx, 0x105
call fcn.00405700
mov edx, dword [ebp - 0x28c]
lea eax, [ebp - 0xc]
mov ecx, 0x535cc0
call fcn.004057a0
lea eax, [ebp - 0x290]
mov ecx, 0x535cdc
mov edx, dword [ebp - 0xc]
call fcn.004057a0
mov ecx, dword [ebp - 0x290]
mov dl, 1
mov eax, dword [0x4283c8]
call fcn.00428480
mov dword [ebp - 0x1c], eax
push 0
lea eax, [ebp - 0x10]
push eax
mov ecx, 0x535cf4
mov edx, 0x535d04
mov eax, dword [ebp - 0x1c]
mov ebx, dword [eax]
call dword [ebx]
cmp dword [ebp - 0x10], 0
jne 0x535b1f
call fcn.00404e94
jmp 0x535b8a
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push 0x535c7c
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00405814
mov eax, dword [ebp - 0x10]
call fcn.0040ac10
test al, al
jne 0x535b4a
call fcn.00404e94
jmp 0x535b8a
lea ecx, [ebp - 0x294]
mov edx, 0x6172e8
mov eax, dword [ebp - 0x10]
call fcn.0053536c
mov edx, dword [ebp - 0x294]
mov eax, 0x6172dc
call fcn.004054e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x535b8a
mov eax, dword [ebp - 0x1c]
call fcn.00404574
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x535bc4
lea eax, [ebp - 0x294]
mov edx, 9
call fcn.004054b4
lea eax, [ebp - 0x14]
call fcn.00407290
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.004054b4
ret