Function at 0x4851e0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x4b
push 0
push 0
dec ecx
jne 0x4851e9
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 0x485664
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
xor edx, edx
call fcn.00405d20
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 0x485243
mov eax, ebx
lea edx, [ebp - 0x20a]
mov ecx, 0x105
call fcn.00405f20
mov eax, dword [ebx]
mov dword [ebp - 0x210], eax
mov eax, dword [ebp - 0x210]
test eax, eax
je 0x48525a
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jg case.0x485276.27
add esi, 0xffffffe6
cmp esi, 0x11
ja case.0x485276.27
movzx esi, byte [esi + 0x48527d]
jmp dword [esi*4 + 0x48528f]
lea edx, [ebp - 0x214]
mov eax, 0x485680
call fcn.004147c0
mov eax, dword [ebp - 0x214]
mov edx, ebx
call fcn.0040c1e0
cmp dword [ebx], 0
jne case.0x485276.27
push 0x485698
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x218]
call fcn.00414088
mov eax, dword [ebp - 0x218]
mov edx, ebx
call fcn.0040d078
mov eax, dword [0x4d393c]
cmp dword [eax], 5
jle 0x485326
push dword [ebx]
push 0x4856c0
lea eax, [ebp - 0x21c]
call fcn.00484c70
push dword [ebp - 0x21c]
mov eax, ebx
mov edx, 3
call fcn.004062d8
jmp case.0x485276.27
push dword [ebx]
push 0x4856dc
lea eax, [ebp - 0x220]
call fcn.00484c70
push dword [ebp - 0x220]
mov eax, ebx
mov edx, 3
call fcn.004062d8
jmp case.0x485276.27
call fcn.004865b0
test al, al
je 0x485377
lea edx, [ebp - 0x224]
mov eax, 0x48571c
call fcn.004147c0
mov eax, dword [ebp - 0x224]
mov edx, ebx
call fcn.0040c1e0
jmp 0x485394
lea edx, [ebp - 0x228]
mov eax, 0x48574c
call fcn.004147c0
mov eax, dword [ebp - 0x228]
mov edx, ebx
call fcn.0040c1e0
cmp dword [ebx], 0
jne case.0x485276.27
push 0x485698
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x22c]
call fcn.00414088
mov eax, dword [ebp - 0x22c]
mov edx, ebx
call fcn.0040d078
call fcn.004865b0
test al, al
je 0x4853d9
mov eax, ebx
mov edx, 0x485774
call fcn.00406134
jmp case.0x485276.27
mov eax, ebx
mov edx, 0x4857ac
call fcn.00406134
jmp case.0x485276.27
call fcn.004865b0
test al, al
je 0x485412
lea edx, [ebp - 0x230]
mov eax, 0x4857d8
call fcn.004147c0
mov eax, dword [ebp - 0x230]
mov edx, ebx
call fcn.0040c1e0
jmp 0x48542f
lea edx, [ebp - 0x234]
mov eax, 0x485814
call fcn.004147c0
mov eax, dword [ebp - 0x234]
mov edx, ebx
call fcn.0040c1e0
cmp dword [ebx], 0
jne case.0x485276.27
push 0x485698
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x238]
call fcn.00414088
mov eax, dword [ebp - 0x238]
mov edx, ebx
call fcn.0040d078
call fcn.004865b0
test al, al
je 0x485474
mov eax, ebx
mov edx, 0x485848
call fcn.00406134
jmp case.0x485276.27
mov eax, ebx
mov edx, 0x485898
call fcn.00406134
jmp case.0x485276.27
lea edx, [ebp - 0x23c]
mov eax, 0x4858dc
call fcn.004147c0
mov eax, dword [ebp - 0x23c]
mov edx, ebx
call fcn.0040c1e0
cmp dword [ebx], 0
jne case.0x485276.27
push 0x485698
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x240]
call fcn.00414088
mov eax, dword [ebp - 0x240]
mov edx, ebx
call fcn.0040d078
mov eax, dword [0x4d393c]
cmp dword [eax], 5
jle 0x485505
push dword [ebx]
push 0x4856c0
lea eax, [ebp - 0x244]
call fcn.00484c70
push dword [ebp - 0x244]
push 0x4858f8
mov eax, ebx
mov edx, 4
call fcn.004062d8
jmp case.0x485276.27
push dword [ebx]
push 0x4856dc
lea eax, [ebp - 0x248]
call fcn.00484c70
push dword [ebp - 0x248]
push 0x485928
mov eax, ebx
mov edx, 4
call fcn.004062d8
jmp case.0x485276.27
lea edx, [ebp - 0x24c]
mov eax, 0x485958
call fcn.004147c0
mov eax, dword [ebp - 0x24c]
mov edx, ebx
call fcn.0040c1e0
cmp dword [ebx], 0
jne case.0x485276.27
push 0x485698
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x250]
call fcn.00414088
mov eax, dword [ebp - 0x250]
mov edx, ebx
call fcn.0040d078
mov eax, dword [0x4d393c]
cmp dword [eax], 5
jle 0x4855b3
push dword [ebx]
push 0x4856c0
lea eax, [ebp - 0x254]
call fcn.00484c70
push dword [ebp - 0x254]
push 0x485980
mov eax, ebx
mov edx, 4
call fcn.004062d8
jmp case.0x485276.27
push dword [ebx]
push 0x4856dc
lea eax, [ebp - 0x258]
call fcn.00484c70
push dword [ebp - 0x258]
push 0x4859ac
mov eax, ebx
mov edx, 4
call fcn.004062d8
jmp case.0x485276.27
lea edx, [ebp - 0x25c]
mov eax, 0x4859fc
call fcn.004147c0
mov eax, dword [ebp - 0x25c]
mov edx, ebx
call fcn.0040c1e0
cmp dword [ebx], 0
jne case.0x485276.27
push 0x485698
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x260]
call fcn.00414088
mov eax, dword [ebp - 0x260]
mov edx, ebx
call fcn.0040d078
mov eax, dword [0x4d393c]
cmp dword [eax], 5
jle 0x48563a
mov eax, ebx
mov edx, 0x485a20
call fcn.00406134
jmp case.0x485276.27
mov eax, ebx
mov edx, 0x485a48
call fcn.00406134
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x48566b
lea eax, [ebp - 0x260]
mov edx, 0x14
call fcn.00405d18
ret