Function at 0x10046870
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x4b
push 0
push 0
dec ecx
jne 0x10046879
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 0x10046cf4
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
xor edx, edx
call fcn.10005940
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 0x100468d3
mov eax, ebx
lea edx, [ebp - 0x20a]
mov ecx, 0x105
call fcn.10005b28
mov eax, dword [ebx]
mov dword [ebp - 0x210], eax
mov eax, dword [ebp - 0x210]
test eax, eax
je 0x100468ea
sub eax, 4
mov eax, dword [eax]
cmp eax, 2
jg case.0x10046906.27
add esi, 0xffffffe6
cmp esi, 0x11
ja case.0x10046906.27
movzx esi, byte [esi + 0x1004690d]
jmp dword [esi*4 + 0x1004691f]
lea edx, [ebp - 0x214]
mov eax, 0x10046d10
call fcn.10013ea4
mov eax, dword [ebp - 0x214]
mov edx, ebx
call fcn.1000b114
cmp dword [ebx], 0
jne case.0x10046906.27
push 0x10046d28
call sub.kernel32.dll_GetModuleHandleW_1
lea edx, [ebp - 0x218]
call fcn.1001376c
mov eax, dword [ebp - 0x218]
mov edx, ebx
call fcn.1000c184
mov eax, dword [0x100aa2bc]
cmp dword [eax], 5
jle 0x100469b6
push dword [ebx]
push 0x10046d50
lea eax, [ebp - 0x21c]
call fcn.100466b0
push dword [ebp - 0x21c]
mov eax, ebx
mov edx, 3
call fcn.10005ee0
jmp case.0x10046906.27
push dword [ebx]
push 0x10046d6c
lea eax, [ebp - 0x220]
call fcn.100466b0
push dword [ebp - 0x220]
mov eax, ebx
mov edx, 3
call fcn.10005ee0
jmp case.0x10046906.27
call fcn.10047208
test al, al
je 0x10046a07
lea edx, [ebp - 0x224]
mov eax, 0x10046dac
call fcn.10013ea4
mov eax, dword [ebp - 0x224]
mov edx, ebx
call fcn.1000b114
jmp 0x10046a24
lea edx, [ebp - 0x228]
mov eax, 0x10046ddc
call fcn.10013ea4
mov eax, dword [ebp - 0x228]
mov edx, ebx
call fcn.1000b114
cmp dword [ebx], 0
jne case.0x10046906.27
push 0x10046d28
call sub.kernel32.dll_GetModuleHandleW_1
lea edx, [ebp - 0x22c]
call fcn.1001376c
mov eax, dword [ebp - 0x22c]
mov edx, ebx
call fcn.1000c184
call fcn.10047208
test al, al
je 0x10046a69
mov eax, ebx
mov edx, 0x10046e04
call fcn.10005d3c
jmp case.0x10046906.27
mov eax, ebx
mov edx, 0x10046e3c
call fcn.10005d3c
jmp case.0x10046906.27
call fcn.10047208
test al, al
je 0x10046aa2
lea edx, [ebp - 0x230]
mov eax, 0x10046e68
call fcn.10013ea4
mov eax, dword [ebp - 0x230]
mov edx, ebx
call fcn.1000b114
jmp 0x10046abf
lea edx, [ebp - 0x234]
mov eax, 0x10046ea4
call fcn.10013ea4
mov eax, dword [ebp - 0x234]
mov edx, ebx
call fcn.1000b114
cmp dword [ebx], 0
jne case.0x10046906.27
push 0x10046d28
call sub.kernel32.dll_GetModuleHandleW_1
lea edx, [ebp - 0x238]
call fcn.1001376c
mov eax, dword [ebp - 0x238]
mov edx, ebx
call fcn.1000c184
call fcn.10047208
test al, al
je 0x10046b04
mov eax, ebx
mov edx, 0x10046ed8
call fcn.10005d3c
jmp case.0x10046906.27
mov eax, ebx
mov edx, 0x10046f28
call fcn.10005d3c
jmp case.0x10046906.27
lea edx, [ebp - 0x23c]
mov eax, 0x10046f6c
call fcn.10013ea4
mov eax, dword [ebp - 0x23c]
mov edx, ebx
call fcn.1000b114
cmp dword [ebx], 0
jne case.0x10046906.27
push 0x10046d28
call sub.kernel32.dll_GetModuleHandleW_1
lea edx, [ebp - 0x240]
call fcn.1001376c
mov eax, dword [ebp - 0x240]
mov edx, ebx
call fcn.1000c184
mov eax, dword [0x100aa2bc]
cmp dword [eax], 5
jle 0x10046b95
push dword [ebx]
push 0x10046d50
lea eax, [ebp - 0x244]
call fcn.100466b0
push dword [ebp - 0x244]
push 0x10046f88
mov eax, ebx
mov edx, 4
call fcn.10005ee0
jmp case.0x10046906.27
push dword [ebx]
push 0x10046d6c
lea eax, [ebp - 0x248]
call fcn.100466b0
push dword [ebp - 0x248]
push 0x10046fb8
mov eax, ebx
mov edx, 4
call fcn.10005ee0
jmp case.0x10046906.27
lea edx, [ebp - 0x24c]
mov eax, 0x10046fe8
call fcn.10013ea4
mov eax, dword [ebp - 0x24c]
mov edx, ebx
call fcn.1000b114
cmp dword [ebx], 0
jne case.0x10046906.27
push 0x10046d28
call sub.kernel32.dll_GetModuleHandleW_1
lea edx, [ebp - 0x250]
call fcn.1001376c
mov eax, dword [ebp - 0x250]
mov edx, ebx
call fcn.1000c184
mov eax, dword [0x100aa2bc]
cmp dword [eax], 5
jle 0x10046c43
push dword [ebx]
push 0x10046d50
lea eax, [ebp - 0x254]
call fcn.100466b0
push dword [ebp - 0x254]
push 0x10047010
mov eax, ebx
mov edx, 4
call fcn.10005ee0
jmp case.0x10046906.27
push dword [ebx]
push 0x10046d6c
lea eax, [ebp - 0x258]
call fcn.100466b0
push dword [ebp - 0x258]
push 0x1004703c
mov eax, ebx
mov edx, 4
call fcn.10005ee0
jmp case.0x10046906.27
lea edx, [ebp - 0x25c]
mov eax, 0x1004708c
call fcn.10013ea4
mov eax, dword [ebp - 0x25c]
mov edx, ebx
call fcn.1000b114
cmp dword [ebx], 0
jne case.0x10046906.27
push 0x10046d28
call sub.kernel32.dll_GetModuleHandleW_1
lea edx, [ebp - 0x260]
call fcn.1001376c
mov eax, dword [ebp - 0x260]
mov edx, ebx
call fcn.1000c184
mov eax, dword [0x100aa2bc]
cmp dword [eax], 5
jle 0x10046cca
mov eax, ebx
mov edx, 0x100470b0
call fcn.10005d3c
jmp case.0x10046906.27
mov eax, ebx
mov edx, 0x100470d8
call fcn.10005d3c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x10046cfb
lea eax, [ebp - 0x260]
mov edx, 0x14
call fcn.10005938
ret