Function at 0x1009ea78
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdc8
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x234], eax
mov dword [ebp - 0x238], eax
mov dword [ebp - 0x22c], eax
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x228], eax
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], eax
xor eax, eax
push ebp
push 0x1009ed4b
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x1009ecd0
push dword fs:[edx]
mov dword fs:[edx], esp
call fcn.10097a3c
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 0
jne 0x1009eae9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x1009ed2d
mov edx, 0x1009ed6c
mov eax, 0x1009eda4
call fcn.1009787c
call fcn.100547f0
cmp eax, 1
je 0x1009eb07
cmp eax, 2
jne 0x1009eb14
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x1009ed2d
push 0x1009edbc
call sub.kernel32.dll_LoadLibraryW
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x10], 0
je 0x1009eb3d
push 0x1009edd8
mov eax, dword [ebp - 0x10]
push eax
call fcn.100085d0
mov dword [ebp - 0xc], eax
push 0
push 0x1a
lea eax, [ebp - 0x21a]
push eax
push 0
call sub.shell32.dll_SHGetSpecialFolderPathW
xor eax, eax
push ebp
push 0x1009eb97
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x220]
call fcn.10048004
lea eax, [ebp - 0x220]
mov edx, 0x1009ee24
call fcn.10005d3c
mov ecx, dword [ebp - 0x220]
mov dl, 1
mov eax, dword [0x100473cc]
call fcn.10047a00
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x1009eba6
cmp dword [ebp - 0xc], 0
je 0x1009ebee
push 0
push 0
mov eax, dword [ebp + 8]
push eax
call dword [ebp - 0xc]
test eax, eax
jne 0x1009ebee
lea eax, [ebp - 0x224]
mov edx, dword [ebp + 8]
call fcn.10005aec
lea eax, [ebp - 0x224]
mov edx, 0x1009ee5c
call fcn.10005d3c
mov eax, dword [ebp - 0x224]
mov edx, 0x1009ed6c
call fcn.1009787c
jmp 0x1009ec78
lea eax, [ebp - 0x228]
mov edx, dword [ebp + 8]
call fcn.10005aec
lea eax, [ebp - 0x228]
mov edx, 0x1009ee88
call fcn.10005d3c
mov eax, dword [ebp - 0x228]
mov edx, 0x1009ed6c
call fcn.1009787c
xor eax, eax
push ebp
push 0x1009ec6e
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 8], 0
je 0x1009ec64
push 0
lea eax, [ebp - 0x230]
mov edx, dword [ebp + 8]
call fcn.10005aec
mov eax, dword [ebp - 0x230]
lea edx, [ebp - 0x22c]
call fcn.10055970
mov ecx, dword [ebp - 0x22c]
mov edx, 0x1009eeb0
mov eax, dword [ebp - 8]
mov ebx, dword [eax]
call dword [ebx + 4]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x1009ec78
mov dword [ebp - 4], 0xffffffff
xor eax, eax
push ebp
push 0x1009ecad
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 8], 0
je 0x1009eca3
mov eax, dword [ebp - 8]
mov edx, dword [eax]
call dword [edx + 0x58]
mov eax, dword [ebp - 8]
call fcn.10003d38
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x1009ecb7
cmp dword [ebp - 0x10], 0
je 0x1009ecc6
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_FreeLibrary_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x1009ed2d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x1009ed52
lea eax, [ebp - 0x238]
mov edx, 7
call fcn.10005938
ret