Function at 0x1027af2
Capabilities:
Get common file path

Disassembly:
push 0x428
mov eax, 0x106a642
call fcn.0101da7e
xor ebx, ebx
mov dword [ebp - 0x428], ebx
mov dword [ebp - 0x430], ebx
mov eax, dword [0x1077004]
mov edi, 0x1077004
cmp eax, edi
je 0x1027b3e
test dword [eax + 0x1c], 0x100
je 0x1027b3e
cmp byte [eax + 0x19], 4
jb 0x1027b3e
push 0x1006cec
push 0xa
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01015bb9
lea ecx, [ebp - 0x42c]
call sub.MFC42u.dll_CString::CString_3
xor eax, eax
mov esi, 0x206
push esi
mov word [ebp - 0x21c], ax
lea eax, [ebp - 0x21a]
push ebx
push eax
mov dword [ebp - 4], ebx
call sub.msvcrt.dll_memset
xor eax, eax
push esi
mov word [ebp - 0x424], ax
lea eax, [ebp - 0x422]
push ebx
push eax
call sub.msvcrt.dll_memset
add esp, 0x18
mov byte [ebp - 4], 1
call sub.MFC42u.dll_AfxGetModuleState
mov ecx, dword [eax + 4]
push 0x1006f8c
push 0x1006f78
push 0x1006f68
lea eax, [ebp - 0x434]
push eax
call sub.MFC42u.dll_CWinApp::GetProfileStringW
push eax
lea ecx, [ebp - 0x42c]
mov byte [ebp - 4], 2
call fcn.0101d3fa
lea ecx, [ebp - 0x434]
mov byte [ebp - 4], 1
call sub.MFC42u.dll_CString::CString
mov esi, 0x104
push esi
lea eax, [ebp - 0x21c]
push eax
push 5
mov dword [ebp - 4], ebx
call fcn.01022068
test eax, eax
jne 0x1027c4b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x428], eax
mov eax, dword [0x1077004]
cmp eax, edi
je 0x1027c24
test dword [eax + 0x1c], 0x100
je 0x1027c24
cmp byte [eax + 0x19], 2
jb 0x1027c24
push dword [ebp - 0x428]
push 0x1006f28
push 0x1006cec
push 0xc
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101ea0b
push dword [ebp - 0x428]
call dword [sym.imp.KERNEL32.dll_SetLastError]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x42c]
call sub.MFC42u.dll_CString::CString
mov eax, dword [ebp - 0x430]
call fcn.0101dae9
ret
lea eax, [ebp - 0x21c]
mov ebx, 0x1078f30
push eax
mov ecx, ebx
mov byte [ebp - 4], 4
call fcn.0101cb36
mov eax, dword [ebp - 0x42c]
xor ecx, ecx
cmp dword [eax - 8], ecx
jle 0x1027c72
movzx ecx, word [eax]
push 0x5c
pop edx
cmp dx, cx
je 0x1027c88
push edx
mov ecx, ebx
call sub.MFC42u.dll_CString::operator_2
mov eax, dword [ebp - 0x42c]
push eax
push esi
lea eax, [ebp - 0x21c]
push eax
call fcn.0101f089
xor esi, esi
cmp eax, esi
jge 0x1027cfa
mov ecx, eax
and ecx, 0x1fff0000
cmp ecx, 0x70000
jne 0x1027cb7
movzx ecx, ax
mov dword [ebp - 0x428], ecx
jmp 0x1027cbd
mov dword [ebp - 0x428], eax
mov ecx, dword [0x1077004]
cmp ecx, edi
je 0x1027c24
test dword [ecx + 0x1c], 0x100
je 0x1027c24
cmp byte [ecx + 0x19], 2
jb 0x1027c24
push eax
push 0x1006ef0
push 0x1006cec
push 0xd
push dword [ecx + 0x14]
push dword [ecx + 0x10]
jmp 0x1027c1f
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, si
jne 0x1027d03
sub eax, edx
push 0x5c
sar eax, 1
pop ecx
cmp cx, word [ebp + eax*2 - 0x21e]
jne 0x1027d3f
lea eax, [ebp - 0x21c]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, si
jne 0x1027d27
sub eax, edx
sar eax, 1
xor ecx, ecx
mov word [ebp + eax*2 - 0x21e], cx
lea eax, [ebp - 0x21c]
push eax
mov ecx, ebx
call sub.MFC42u.dll_CString::operator_1
lea eax, [ebp - 0x424]
push eax
push 0x1006f8c
push esi
push esi
push 0x8005
push esi
call dword [sym.imp.SHELL32.dll_SHGetFolderPathAndSubDirW]
cmp eax, esi
jl 0x1027d86
push 0xe109
push 0x1006eb0
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.SHELL32.dll_SHSetLocalizedName]
cmp eax, esi
jge 0x1027da4
mov ecx, eax
and ecx, 0x1fff0000
cmp ecx, 0x70000
jne 0x1027d99
movzx eax, ax
mov dword [ebp - 0x428], eax
jmp 0x1027c24
mov dword [ebp - 0x430], 1
jmp 0x1027c24