Function at 0x4df4ec
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x4b
push 0
push 0
dec ecx
jne 0x4df4f5
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 0x4df970
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
xor edx, edx
call fcn.0040634c
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 0x4df54f
mov eax, ebx
lea edx, [ebp - 0x20a]
mov ecx, 0x105
call fcn.0040654c
mov eax, dword [ebx]
mov dword [ebp - 0x210], eax
mov eax, dword [ebp - 0x210]
test eax, eax
je 0x4df566
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jg case.0x4df582.27
add esi, 0xffffffe6
cmp esi, 0x11
ja case.0x4df582.27
movzx esi, byte [esi + 0x4df589]
jmp dword [esi*4 + 0x4df59b]
lea edx, [ebp - 0x214]
mov eax, 0x4df98c
call fcn.0041736c
mov eax, dword [ebp - 0x214]
mov edx, ebx
call fcn.0040cccc
cmp dword [ebx], 0
jne case.0x4df582.27
push 0x4df9a4
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x218]
call fcn.00416c34
mov eax, dword [ebp - 0x218]
mov edx, ebx
call fcn.0040deb4
mov eax, dword [0x5d460c]
cmp dword [eax], 5
jle 0x4df632
push dword [ebx]
push 0x4df9cc
lea eax, [ebp - 0x21c]
call fcn.004deef8
push dword [ebp - 0x21c]
mov eax, ebx
mov edx, 3
call fcn.00406904
jmp case.0x4df582.27
push dword [ebx]
push 0x4df9e8
lea eax, [ebp - 0x220]
call fcn.004deef8
push dword [ebp - 0x220]
mov eax, ebx
mov edx, 3
call fcn.00406904
jmp case.0x4df582.27
call fcn.004e14ec
test al, al
je 0x4df683
lea edx, [ebp - 0x224]
mov eax, 0x4dfa28
call fcn.0041736c
mov eax, dword [ebp - 0x224]
mov edx, ebx
call fcn.0040cccc
jmp 0x4df6a0
lea edx, [ebp - 0x228]
mov eax, 0x4dfa58
call fcn.0041736c
mov eax, dword [ebp - 0x228]
mov edx, ebx
call fcn.0040cccc
cmp dword [ebx], 0
jne case.0x4df582.27
push 0x4df9a4
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x22c]
call fcn.00416c34
mov eax, dword [ebp - 0x22c]
mov edx, ebx
call fcn.0040deb4
call fcn.004e14ec
test al, al
je 0x4df6e5
mov eax, ebx
mov edx, 0x4dfa80
call fcn.00406760
jmp case.0x4df582.27
mov eax, ebx
mov edx, 0x4dfab8
call fcn.00406760
jmp case.0x4df582.27
call fcn.004e14ec
test al, al
je 0x4df71e
lea edx, [ebp - 0x230]
mov eax, 0x4dfae4
call fcn.0041736c
mov eax, dword [ebp - 0x230]
mov edx, ebx
call fcn.0040cccc
jmp 0x4df73b
lea edx, [ebp - 0x234]
mov eax, 0x4dfb20
call fcn.0041736c
mov eax, dword [ebp - 0x234]
mov edx, ebx
call fcn.0040cccc
cmp dword [ebx], 0
jne case.0x4df582.27
push 0x4df9a4
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x238]
call fcn.00416c34
mov eax, dword [ebp - 0x238]
mov edx, ebx
call fcn.0040deb4
call fcn.004e14ec
test al, al
je 0x4df780
mov eax, ebx
mov edx, 0x4dfb54
call fcn.00406760
jmp case.0x4df582.27
mov eax, ebx
mov edx, 0x4dfba4
call fcn.00406760
jmp case.0x4df582.27
lea edx, [ebp - 0x23c]
mov eax, 0x4dfbe8
call fcn.0041736c
mov eax, dword [ebp - 0x23c]
mov edx, ebx
call fcn.0040cccc
cmp dword [ebx], 0
jne case.0x4df582.27
push 0x4df9a4
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x240]
call fcn.00416c34
mov eax, dword [ebp - 0x240]
mov edx, ebx
call fcn.0040deb4
mov eax, dword [0x5d460c]
cmp dword [eax], 5
jle 0x4df811
push dword [ebx]
push 0x4df9cc
lea eax, [ebp - 0x244]
call fcn.004deef8
push dword [ebp - 0x244]
push 0x4dfc04
mov eax, ebx
mov edx, 4
call fcn.00406904
jmp case.0x4df582.27
push dword [ebx]
push 0x4df9e8
lea eax, [ebp - 0x248]
call fcn.004deef8
push dword [ebp - 0x248]
push 0x4dfc34
mov eax, ebx
mov edx, 4
call fcn.00406904
jmp case.0x4df582.27
lea edx, [ebp - 0x24c]
mov eax, 0x4dfc64
call fcn.0041736c
mov eax, dword [ebp - 0x24c]
mov edx, ebx
call fcn.0040cccc
cmp dword [ebx], 0
jne case.0x4df582.27
push 0x4df9a4
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x250]
call fcn.00416c34
mov eax, dword [ebp - 0x250]
mov edx, ebx
call fcn.0040deb4
mov eax, dword [0x5d460c]
cmp dword [eax], 5
jle 0x4df8bf
push dword [ebx]
push 0x4df9cc
lea eax, [ebp - 0x254]
call fcn.004deef8
push dword [ebp - 0x254]
push 0x4dfc8c
mov eax, ebx
mov edx, 4
call fcn.00406904
jmp case.0x4df582.27
push dword [ebx]
push 0x4df9e8
lea eax, [ebp - 0x258]
call fcn.004deef8
push dword [ebp - 0x258]
push 0x4dfcb8
mov eax, ebx
mov edx, 4
call fcn.00406904
jmp case.0x4df582.27
lea edx, [ebp - 0x25c]
mov eax, 0x4dfd08
call fcn.0041736c
mov eax, dword [ebp - 0x25c]
mov edx, ebx
call fcn.0040cccc
cmp dword [ebx], 0
jne case.0x4df582.27
push 0x4df9a4
call sub.kernel32.dll_GetModuleHandleW_2
lea edx, [ebp - 0x260]
call fcn.00416c34
mov eax, dword [ebp - 0x260]
mov edx, ebx
call fcn.0040deb4
mov eax, dword [0x5d460c]
cmp dword [eax], 5
jle 0x4df946
mov eax, ebx
mov edx, 0x4dfd2c
call fcn.00406760
jmp case.0x4df582.27
mov eax, ebx
mov edx, 0x4dfd54
call fcn.00406760
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4df977
lea eax, [ebp - 0x260]
mov edx, 0x14
call fcn.00406344
ret