Function at 0x45850c
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x4b
push 0
push 0
dec ecx
jne 0x458515
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 0x45897f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
xor edx, edx
call fcn.004012b8
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 0x45856e
mov eax, ebx
lea edx, [ebp - 0x20a]
mov ecx, 0x105
call fcn.004012f0
mov eax, dword [ebx]
call fcn.00401320
cmp eax, 2
jg case.0x458591.27
add esi, 0xffffffe6
cmp esi, 0x11
ja case.0x458591.27
movzx esi, byte [esi + 0x458598]
jmp dword [esi*4 + 0x4585aa]
lea edx, [ebp - 0x210]
mov eax, 0x45899c
call fcn.00407140
mov eax, dword [ebp - 0x210]
mov edx, ebx
call fcn.00406f78
cmp dword [ebx], 0
jne case.0x458591.27
push 0x4589b4
call sub.kernel32.dll_GetModuleHandleW
lea edx, [ebp - 0x214]
call fcn.00407120
mov eax, dword [ebp - 0x214]
mov edx, ebx
call fcn.00407000
mov eax, dword [0x4f2dd0]
cmp dword [eax], 5
jle 0x458641
push dword [ebx]
push 0x4589dc
lea eax, [ebp - 0x218]
call fcn.00457fa0
push dword [ebp - 0x218]
mov eax, ebx
mov edx, 3
call fcn.00401340
jmp case.0x458591.27
push dword [ebx]
push 0x4589f8
lea eax, [ebp - 0x21c]
call fcn.00457fa0
push dword [ebp - 0x21c]
mov eax, ebx
mov edx, 3
call fcn.00401340
jmp case.0x458591.27
call fcn.00458e94
test al, al
je 0x458692
lea edx, [ebp - 0x220]
mov eax, 0x458a38
call fcn.00407140
mov eax, dword [ebp - 0x220]
mov edx, ebx
call fcn.00406f78
jmp 0x4586af
lea edx, [ebp - 0x224]
mov eax, 0x458a68
call fcn.00407140
mov eax, dword [ebp - 0x224]
mov edx, ebx
call fcn.00406f78
cmp dword [ebx], 0
jne case.0x458591.27
push 0x4589b4
call sub.kernel32.dll_GetModuleHandleW
lea edx, [ebp - 0x228]
call fcn.00407120
mov eax, dword [ebp - 0x228]
mov edx, ebx
call fcn.00407000
call fcn.00458e94
test al, al
je 0x4586f4
mov eax, ebx
mov edx, 0x458a90
call fcn.00401330
jmp case.0x458591.27
mov eax, ebx
mov edx, 0x458ac8
call fcn.00401330
jmp case.0x458591.27
call fcn.00458e94
test al, al
je 0x45872d
lea edx, [ebp - 0x22c]
mov eax, 0x458af4
call fcn.00407140
mov eax, dword [ebp - 0x22c]
mov edx, ebx
call fcn.00406f78
jmp 0x45874a
lea edx, [ebp - 0x230]
mov eax, 0x458b30
call fcn.00407140
mov eax, dword [ebp - 0x230]
mov edx, ebx
call fcn.00406f78
cmp dword [ebx], 0
jne case.0x458591.27
push 0x4589b4
call sub.kernel32.dll_GetModuleHandleW
lea edx, [ebp - 0x234]
call fcn.00407120
mov eax, dword [ebp - 0x234]
mov edx, ebx
call fcn.00407000
call fcn.00458e94
test al, al
je 0x45878f
mov eax, ebx
mov edx, 0x458b64
call fcn.00401330
jmp case.0x458591.27
mov eax, ebx
mov edx, 0x458bb4
call fcn.00401330
jmp case.0x458591.27
lea edx, [ebp - 0x238]
mov eax, 0x458bf8
call fcn.00407140
mov eax, dword [ebp - 0x238]
mov edx, ebx
call fcn.00406f78
cmp dword [ebx], 0
jne case.0x458591.27
push 0x4589b4
call sub.kernel32.dll_GetModuleHandleW
lea edx, [ebp - 0x23c]
call fcn.00407120
mov eax, dword [ebp - 0x23c]
mov edx, ebx
call fcn.00407000
mov eax, dword [0x4f2dd0]
cmp dword [eax], 5
jle 0x458820
push dword [ebx]
push 0x4589dc
lea eax, [ebp - 0x240]
call fcn.00457fa0
push dword [ebp - 0x240]
push 0x458c14
mov eax, ebx
mov edx, 4
call fcn.00401340
jmp case.0x458591.27
push dword [ebx]
push 0x4589f8
lea eax, [ebp - 0x244]
call fcn.00457fa0
push dword [ebp - 0x244]
push 0x458c44
mov eax, ebx
mov edx, 4
call fcn.00401340
jmp case.0x458591.27
lea edx, [ebp - 0x248]
mov eax, 0x458c74
call fcn.00407140
mov eax, dword [ebp - 0x248]
mov edx, ebx
call fcn.00406f78
cmp dword [ebx], 0
jne case.0x458591.27
push 0x4589b4
call sub.kernel32.dll_GetModuleHandleW
lea edx, [ebp - 0x24c]
call fcn.00407120
mov eax, dword [ebp - 0x24c]
mov edx, ebx
call fcn.00407000
mov eax, dword [0x4f2dd0]
cmp dword [eax], 5
jle 0x4588ce
push dword [ebx]
push 0x4589dc
lea eax, [ebp - 0x250]
call fcn.00457fa0
push dword [ebp - 0x250]
push 0x458c9c
mov eax, ebx
mov edx, 4
call fcn.00401340
jmp case.0x458591.27
push dword [ebx]
push 0x4589f8
lea eax, [ebp - 0x254]
call fcn.00457fa0
push dword [ebp - 0x254]
push 0x458cc8
mov eax, ebx
mov edx, 4
call fcn.00401340
jmp case.0x458591.27
lea edx, [ebp - 0x258]
mov eax, 0x458d18
call fcn.00407140
mov eax, dword [ebp - 0x258]
mov edx, ebx
call fcn.00406f78
cmp dword [ebx], 0
jne case.0x458591.27
push 0x4589b4
call sub.kernel32.dll_GetModuleHandleW
lea edx, [ebp - 0x25c]
call fcn.00407120
mov eax, dword [ebp - 0x25c]
mov edx, ebx
call fcn.00407000
mov eax, dword [0x4f2dd0]
cmp dword [eax], 5
jle 0x458955
mov eax, ebx
mov edx, 0x458d3c
call fcn.00401330
jmp case.0x458591.27
mov eax, ebx
mov edx, 0x458d64
call fcn.00401330
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x458986
lea eax, [ebp - 0x25c]
mov edx, 0x14
call fcn.004012b0
ret