Function at 0x53d518
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x4b
push 0
push 0
dec ecx
jne 0x53d521
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov ebx, ecx
mov esi, edx
mov edi, eax
xor eax, eax
push ebp
push 0x53d99c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
xor edx, edx
call fcn.004069b0
mov word [ebp - 0x20a], 0
push 0
push esi
lea eax, [ebp - 0x20a]
push eax
push edi
call sub.shell32.dll_SHGetSpecialFolderPathW
test eax, eax
je 0x53d57b
mov eax, ebx
lea edx, [ebp - 0x20a]
mov ecx, 0x105
call fcn.00406bb0
mov eax, dword [ebx]
mov dword [ebp - 0x210], eax
mov eax, dword [ebp - 0x210]
test eax, eax
je 0x53d592
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jg case.0x53d5ae.27
add esi, 0xffffffe6
cmp esi, 0x11
ja case.0x53d5ae.27
movzx esi, byte [esi + 0x53d5b5]
jmp dword [esi*4 + 0x53d5c7]
lea edx, [ebp - 0x214]
mov eax, 0x53d9b8
call fcn.0047a5c0
mov eax, dword [ebp - 0x214]
mov edx, ebx
call fcn.0047021c
cmp dword [ebx], 0
jne case.0x53d5ae.27
push 0x53d9d0
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x218]
call fcn.00479e88
mov eax, dword [ebp - 0x218]
mov edx, ebx
call fcn.00471570
mov eax, dword [0x62f3a0]
cmp dword [eax], 5
jle 0x53d65e
push dword [ebx]
push 0x53d9f8
lea eax, [ebp - 0x21c]
call fcn.0053cf20
push dword [ebp - 0x21c]
mov eax, ebx
mov edx, 3
call fcn.00406f68
jmp case.0x53d5ae.27
push dword [ebx]
push 0x53da14
lea eax, [ebp - 0x220]
call fcn.0053cf20
push dword [ebp - 0x220]
mov eax, ebx
mov edx, 3
call fcn.00406f68
jmp case.0x53d5ae.27
call fcn.0053e9f0
test al, al
je 0x53d6af
lea edx, [ebp - 0x224]
mov eax, 0x53da54
call fcn.0047a5c0
mov eax, dword [ebp - 0x224]
mov edx, ebx
call fcn.0047021c
jmp 0x53d6cc
lea edx, [ebp - 0x228]
mov eax, 0x53da84
call fcn.0047a5c0
mov eax, dword [ebp - 0x228]
mov edx, ebx
call fcn.0047021c
cmp dword [ebx], 0
jne case.0x53d5ae.27
push 0x53d9d0
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x22c]
call fcn.00479e88
mov eax, dword [ebp - 0x22c]
mov edx, ebx
call fcn.00471570
call fcn.0053e9f0
test al, al
je 0x53d711
mov eax, ebx
mov edx, 0x53daac
call fcn.00406dc4
jmp case.0x53d5ae.27
mov eax, ebx
mov edx, 0x53dae4
call fcn.00406dc4
jmp case.0x53d5ae.27
call fcn.0053e9f0
test al, al
je 0x53d74a
lea edx, [ebp - 0x230]
mov eax, 0x53db10
call fcn.0047a5c0
mov eax, dword [ebp - 0x230]
mov edx, ebx
call fcn.0047021c
jmp 0x53d767
lea edx, [ebp - 0x234]
mov eax, 0x53db4c
call fcn.0047a5c0
mov eax, dword [ebp - 0x234]
mov edx, ebx
call fcn.0047021c
cmp dword [ebx], 0
jne case.0x53d5ae.27
push 0x53d9d0
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x238]
call fcn.00479e88
mov eax, dword [ebp - 0x238]
mov edx, ebx
call fcn.00471570
call fcn.0053e9f0
test al, al
je 0x53d7ac
mov eax, ebx
mov edx, 0x53db80
call fcn.00406dc4
jmp case.0x53d5ae.27
mov eax, ebx
mov edx, 0x53dbd0
call fcn.00406dc4
jmp case.0x53d5ae.27
lea edx, [ebp - 0x23c]
mov eax, 0x53dc14
call fcn.0047a5c0
mov eax, dword [ebp - 0x23c]
mov edx, ebx
call fcn.0047021c
cmp dword [ebx], 0
jne case.0x53d5ae.27
push 0x53d9d0
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x240]
call fcn.00479e88
mov eax, dword [ebp - 0x240]
mov edx, ebx
call fcn.00471570
mov eax, dword [0x62f3a0]
cmp dword [eax], 5
jle 0x53d83d
push dword [ebx]
push 0x53d9f8
lea eax, [ebp - 0x244]
call fcn.0053cf20
push dword [ebp - 0x244]
push 0x53dc30
mov eax, ebx
mov edx, 4
call fcn.00406f68
jmp case.0x53d5ae.27
push dword [ebx]
push 0x53da14
lea eax, [ebp - 0x248]
call fcn.0053cf20
push dword [ebp - 0x248]
push 0x53dc60
mov eax, ebx
mov edx, 4
call fcn.00406f68
jmp case.0x53d5ae.27
lea edx, [ebp - 0x24c]
mov eax, 0x53dc90
call fcn.0047a5c0
mov eax, dword [ebp - 0x24c]
mov edx, ebx
call fcn.0047021c
cmp dword [ebx], 0
jne case.0x53d5ae.27
push 0x53d9d0
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x250]
call fcn.00479e88
mov eax, dword [ebp - 0x250]
mov edx, ebx
call fcn.00471570
mov eax, dword [0x62f3a0]
cmp dword [eax], 5
jle 0x53d8eb
push dword [ebx]
push 0x53d9f8
lea eax, [ebp - 0x254]
call fcn.0053cf20
push dword [ebp - 0x254]
push 0x53dcb8
mov eax, ebx
mov edx, 4
call fcn.00406f68
jmp case.0x53d5ae.27
push dword [ebx]
push 0x53da14
lea eax, [ebp - 0x258]
call fcn.0053cf20
push dword [ebp - 0x258]
push 0x53dce4
mov eax, ebx
mov edx, 4
call fcn.00406f68
jmp case.0x53d5ae.27
lea edx, [ebp - 0x25c]
mov eax, 0x53dd34
call fcn.0047a5c0
mov eax, dword [ebp - 0x25c]
mov edx, ebx
call fcn.0047021c
cmp dword [ebx], 0
jne case.0x53d5ae.27
push 0x53d9d0
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x260]
call fcn.00479e88
mov eax, dword [ebp - 0x260]
mov edx, ebx
call fcn.00471570
mov eax, dword [0x62f3a0]
cmp dword [eax], 5
jle 0x53d972
mov eax, ebx
mov edx, 0x53dd58
call fcn.00406dc4
jmp case.0x53d5ae.27
mov eax, ebx
mov edx, 0x53dd80
call fcn.00406dc4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x53d9a3
lea eax, [ebp - 0x260]
mov edx, 0x14
call fcn.004069a8
ret