Function at 0x428d80
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4387b0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xa80
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x14], esi
cmp dword [esi + 4], ebx
jne 0x428dc1
push 1
call fcn.00428bb0
cmp dword [esi + 4], ebx
jne 0x428dc1
or eax, 0xffffffff
jmp 0x429067
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x137]
mov byte [ebp - 0x138], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x23b]
mov byte [ebp - 0x23c], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x138]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [ebp - 0x23c]
push 0x104
push ecx
lea esi, [ebp + eax - 0x138]
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [ebp + eax - 0x23c]
lea edx, [ebp - 0x34]
lea ecx, [ebp - 0x138]
sub edx, esi
sub ecx, eax
mov byte [esi], 0x5c
inc esi
mov byte [eax], 0x5c
inc eax
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x2c], eax
mov al, byte [ebp + 0xb]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], esi
mov byte [ebp - 0x28], al
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov ecx, 0x213
xor eax, eax
lea edi, [ebp - 0xa88]
mov dword [ebp - 4], ebx
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0xa8c], 0x850
mov eax, dword [ecx + 0xc]
mov edi, dword [eax]
cmp edi, eax
mov dword [ebp - 0x10], edi
je 0x428f72
mov ebx, dword [ebp + 8]
jmp 0x428e8f
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
mov eax, dword [edi + 8]
cmp eax, 2
jne 0x428ead
cmp edx, 0x7fffffff
lea ebx, [ebp - 0x138]
lea eax, [edi + 0xc]
ja 0x428ed1
push eax
push edx
push esi
jmp 0x428ecc
cmp eax, 1
jne 0x428ed1
mov ecx, dword [ebp - 0x34]
lea ebx, [ebp - 0x23c]
cmp ecx, 0x7fffffff
lea eax, [edi + 0xc]
ja 0x428ed1
mov edx, dword [ebp - 0x2c]
push eax
push ecx
push edx
call fcn.00402320
push ebx
call fcn.00402ac0
add esp, 4
test eax, eax
jne 0x428f3e
test ebx, ebx
je 0x428f17
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, eax
inc esi
lea eax, [esi + esi]
add eax, 3
and al, 0xfc
call fcn.0042a4e0
mov edi, esp
push esi
push edi
push 0xffffffffffffffff
push ebx
push 0
push 0
mov word [edi], 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov esi, dword [ebp - 0x30]
mov eax, edi
mov edi, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0xa88]
push 0x104
push eax
call fcn.00402370
mov edx, dword [ebp - 0x20]
lea ecx, [ebp - 0xa8c]
push ecx
push 1
push edx
lea ecx, [ebp - 0x28]
call fcn.00429480
mov eax, dword [ebp - 0x14]
mov edi, dword [edi]
mov dword [ebp - 0x10], edi
cmp edi, dword [eax + 0xc]
jne 0x428e89
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x428f72
mov ecx, dword [ebp - 0x20]
mov eax, 0xf6603d99
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 0xb
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov esi, edx
jne 0x428f82
push ebx
call fcn.0042a030
add esp, 4
xor eax, eax
jmp 0x429067
push esi
push ebx
call fcn.004096c0
mov ecx, eax
call fcn.004092a0
test eax, eax
jne 0x428fa7
mov edx, dword [ebp - 0x24]
push edx
call fcn.0042a030
add esp, 4
xor eax, eax
jmp 0x429067
test esi, esi
mov dword [ebp - 0x10], 0
jle 0x429058
mov edi, dword [ebp + 8]
mov ecx, dword [ebp - 0x24]
xor eax, eax
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], eax
mov dl, byte [eax + ecx + 0x620]
cmp dl, 0xff
je 0x429041
cmp dl, 0xa
je 0x429041
lea eax, [eax + ecx + 4]
lea ecx, [ebp + 8]
push eax
call sub.MFC42.DLL_CString::CString_1
mov esi, dword [edi + 4]
push 0xc
mov byte [ebp - 4], 1
mov ebx, dword [esi + 4]
call sub.MFC42.DLL_operatornew
add esp, 4
mov ecx, esi
test esi, esi
jne 0x428ffe
mov ecx, eax
test ebx, ebx
mov dword [eax], ecx
jne 0x429006
mov ebx, eax
mov dword [eax + 4], ebx
mov dword [esi + 4], eax
mov ecx, dword [eax + 4]
mov dword [ecx], eax
lea ecx, [ebp + 8]
add eax, 8
push ecx
push eax
call fcn.00408db0
mov ecx, dword [edi + 8]
add esp, 8
inc ecx
mov byte [ebp - 4], 0
mov dword [edi + 8], ecx
lea ecx, [ebp + 8]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
inc eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x18]
add eax, 0x850
dec edx
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], edx
jne 0x428fc4
jmp 0x42905b
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.0042a030
mov eax, dword [ebp - 0x10]
add esp, 4
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0xa98]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4