Function at 0x52cfb8
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x4d
push 0
push 0
dec ecx
jne 0x52cfc1
push ecx
xchg dword [ebp - 4], ecx
push ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x52d4a0
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
xor edx, edx
call fcn.00406d80
mov word [ebp - 0x21e], 0
push 0
mov eax, dword [ebp - 8]
push eax
lea eax, [ebp - 0x21e]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.shell32.dll_SHGetSpecialFolderPathW
test eax, eax
je 0x52d024
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 0x21e]
mov ecx, 0x105
call fcn.00406f90
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x52d043
mov eax, dword [ebp - 0x14]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 2
jg case.0x52d062.26
mov eax, dword [ebp - 8]
add eax, 0xffffffe6
cmp eax, 0x11
ja case.0x52d062.26
mov al, byte [eax + 0x52d069]
jmp dword [eax*4 + 0x52d07b]
lea edx, [ebp - 0x224]
mov eax, 0x52d4b8
call fcn.00484674
mov eax, dword [ebp - 0x224]
mov edx, dword [ebp - 0xc]
call fcn.004794a8
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0
jne case.0x52d062.26
push 0x52d4d0
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x228]
call fcn.00483f34
mov eax, dword [ebp - 0x228]
mov edx, dword [ebp - 0xc]
call fcn.0047ab34
mov eax, dword [0x721a80]
cmp dword [eax], 5
jle 0x52d11b
mov eax, dword [ebp - 0xc]
push dword [eax]
push 0x52d4f8
lea eax, [ebp - 0x22c]
call fcn.0052c490
push dword [ebp - 0x22c]
mov eax, dword [ebp - 0xc]
mov edx, 3
call fcn.00407348
jmp case.0x52d062.26
mov eax, dword [ebp - 0xc]
push dword [eax]
push 0x52d514
lea eax, [ebp - 0x230]
call fcn.0052c490
push dword [ebp - 0x230]
mov eax, dword [ebp - 0xc]
mov edx, 3
call fcn.00407348
jmp case.0x52d062.26
call fcn.0052efa4
test al, al
je 0x52d171
lea edx, [ebp - 0x234]
mov eax, 0x52d554
call fcn.00484674
mov eax, dword [ebp - 0x234]
mov edx, dword [ebp - 0xc]
call fcn.004794a8
jmp 0x52d18f
lea edx, [ebp - 0x238]
mov eax, 0x52d584
call fcn.00484674
mov eax, dword [ebp - 0x238]
mov edx, dword [ebp - 0xc]
call fcn.004794a8
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0
jne case.0x52d062.26
push 0x52d4d0
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x23c]
call fcn.00483f34
mov eax, dword [ebp - 0x23c]
mov edx, dword [ebp - 0xc]
call fcn.0047ab34
call fcn.0052efa4
test al, al
je 0x52d1dc
mov eax, dword [ebp - 0xc]
mov edx, 0x52d5ac
call fcn.004071a4
mov eax, dword [ebp - 0xc]
jmp case.0x52d062.26
mov eax, dword [ebp - 0xc]
mov edx, 0x52d5e4
call fcn.004071a4
mov eax, dword [ebp - 0xc]
jmp case.0x52d062.26
call fcn.0052efa4
test al, al
je 0x52d21a
lea edx, [ebp - 0x240]
mov eax, 0x52d610
call fcn.00484674
mov eax, dword [ebp - 0x240]
mov edx, dword [ebp - 0xc]
call fcn.004794a8
jmp 0x52d238
lea edx, [ebp - 0x244]
mov eax, 0x52d64c
call fcn.00484674
mov eax, dword [ebp - 0x244]
mov edx, dword [ebp - 0xc]
call fcn.004794a8
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0
jne case.0x52d062.26
push 0x52d4d0
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x248]
call fcn.00483f34
mov eax, dword [ebp - 0x248]
mov edx, dword [ebp - 0xc]
call fcn.0047ab34
call fcn.0052efa4
test al, al
je 0x52d285
mov eax, dword [ebp - 0xc]
mov edx, 0x52d680
call fcn.004071a4
mov eax, dword [ebp - 0xc]
jmp case.0x52d062.26
mov eax, dword [ebp - 0xc]
mov edx, 0x52d6d0
call fcn.004071a4
mov eax, dword [ebp - 0xc]
jmp case.0x52d062.26
lea edx, [ebp - 0x24c]
mov eax, 0x52d714
call fcn.00484674
mov eax, dword [ebp - 0x24c]
mov edx, dword [ebp - 0xc]
call fcn.004794a8
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0
jne case.0x52d062.26
push 0x52d4d0
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x250]
call fcn.00483f34
mov eax, dword [ebp - 0x250]
mov edx, dword [ebp - 0xc]
call fcn.0047ab34
mov eax, dword [0x721a80]
cmp dword [eax], 5
jle 0x52d323
mov eax, dword [ebp - 0xc]
push dword [eax]
push 0x52d4f8
lea eax, [ebp - 0x254]
call fcn.0052c490
push dword [ebp - 0x254]
push 0x52d730
mov eax, dword [ebp - 0xc]
mov edx, 4
call fcn.00407348
jmp case.0x52d062.26
mov eax, dword [ebp - 0xc]
push dword [eax]
push 0x52d514
lea eax, [ebp - 0x258]
call fcn.0052c490
push dword [ebp - 0x258]
push 0x52d760
mov eax, dword [ebp - 0xc]
mov edx, 4
call fcn.00407348
jmp case.0x52d062.26
lea edx, [ebp - 0x25c]
mov eax, 0x52d790
call fcn.00484674
mov eax, dword [ebp - 0x25c]
mov edx, dword [ebp - 0xc]
call fcn.004794a8
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0
jne case.0x52d062.26
push 0x52d4d0
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x260]
call fcn.00483f34
mov eax, dword [ebp - 0x260]
mov edx, dword [ebp - 0xc]
call fcn.0047ab34
mov eax, dword [0x721a80]
cmp dword [eax], 5
jle 0x52d3de
mov eax, dword [ebp - 0xc]
push dword [eax]
push 0x52d4f8
lea eax, [ebp - 0x264]
call fcn.0052c490
push dword [ebp - 0x264]
push 0x52d7b8
mov eax, dword [ebp - 0xc]
mov edx, 4
call fcn.00407348
jmp case.0x52d062.26
mov eax, dword [ebp - 0xc]
push dword [eax]
push 0x52d514
lea eax, [ebp - 0x268]
call fcn.0052c490
push dword [ebp - 0x268]
push 0x52d7e4
mov eax, dword [ebp - 0xc]
mov edx, 4
call fcn.00407348
jmp case.0x52d062.26
lea edx, [ebp - 0x26c]
mov eax, 0x52d834
call fcn.00484674
mov eax, dword [ebp - 0x26c]
mov edx, dword [ebp - 0xc]
call fcn.004794a8
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0
jne case.0x52d062.26
push 0x52d4d0
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x270]
call fcn.00483f34
mov eax, dword [ebp - 0x270]
mov edx, dword [ebp - 0xc]
call fcn.0047ab34
mov eax, dword [0x721a80]
cmp dword [eax], 5
jle 0x52d472
mov eax, dword [ebp - 0xc]
mov edx, 0x52d858
call fcn.004071a4
mov eax, dword [ebp - 0xc]
jmp case.0x52d062.26
mov eax, dword [ebp - 0xc]
mov edx, 0x52d880
call fcn.004071a4
mov eax, dword [ebp - 0xc]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x52d4a7
lea eax, [ebp - 0x270]
mov edx, 0x14
call fcn.00406d78
ret