Function at 0x40641a
Capabilities:
Get common file path

Disassembly:
mov eax, 0x410844
call fcn.0040fdb0
sub esp, 0x728
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CString::CString_2
mov eax, dword [ebp + 8]
and dword [ebp - 4], 0
mov eax, dword [eax + 4]
test eax, eax
je 0x40669f
push ebx
push esi
push edi
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
mov esi, 0x104
jmp 0x406457
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax + 8]
mov ecx, dword [eax]
test ebx, ebx
mov dword [ebp - 0x18], ecx
je 0x406692
mov eax, dword [ebx + 0x2d0]
mov dword [ebp - 0x14], eax
mov eax, dword [ebx + 0x2e0]
cmp eax, dword [ebp + 0x10]
jne 0x406692
mov eax, dword [ebx + 0x2dc]
sub eax, 0x64
je 0x4064f0
dec eax
je 0x4064d8
dec eax
dec eax
je 0x4064c1
dec eax
jne 0x406505
cmp byte [ebx + 0x168], 0x2e
lea eax, [ebx + 0x168]
push ebx
jne 0x4064ed
lea eax, [ebx + 0x169]
push eax
lea eax, [ebp - 0x11c]
push dword [ebp + 0xc]
push 0x416a14
push eax
call edi
add esp, 0x14
jmp 0x406505
lea eax, [ebp - 0x630]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push ebx
lea eax, [ebp - 0x630]
jmp 0x4064ed
lea eax, [ebp - 0x428]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
push ebx
lea eax, [ebp - 0x428]
push eax
jmp 0x4064f4
push ebx
push dword [ebp + 0xc]
lea eax, [ebp - 0x11c]
push 0x41615c
push eax
call edi
add esp, 0x10
push ebx
call dword [sym.imp.USER32.dll_CharUpperA]
push eax
lea eax, [ebp - 0x52c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x52c]
push str..REG
push eax
call dword [sym.imp.MSVCRT.dll_strstr]
pop ecx
test eax, eax
pop ecx
je 0x4065a1
push esi
lea eax, [ebp - 0x324]
push 0
push eax
call sub.MSVCRT.dll_memset
push esi
lea eax, [ebp - 0x220]
push 0
push eax
call sub.MSVCRT.dll_memset
add esp, 0x18
lea eax, [ebp - 0x220]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x220]
push eax
lea eax, [ebp - 0x324]
push str._sRegEdit.exe__s__s
push eax
call edi
add esp, 0x10
lea eax, [ebp - 0x324]
push eax
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
and dword [ebp - 0x14], 0
mov dword [ebp + 8], 1
jmp 0x4065f3
cmp byte [ebx + 0x26c], 0
lea eax, [ebx + 0x26c]
je 0x4065f3
push eax
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x734]
push str._s__s
push eax
mov dword [ebp + 8], 1
call edi
push esi
lea eax, [ebp - 0x11c]
push 0
push eax
call sub.MSVCRT.dll_memset
add esp, 0x1c
lea eax, [ebp - 0x734]
push eax
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x83
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CString::LoadStringA
mov ecx, dword [0x418594]
test ecx, ecx
je 0x406658
push dword [ebp - 0x10]
push 0x3fc
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::SetWindowTextA
mov ecx, dword [0x418594]
lea eax, [ebp - 0x11c]
push eax
push 0x3fd
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::SetWindowTextA
mov ecx, dword [0x418594]
push 0x4185a0
push 0x3fe
call sub.MFC42.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42.DLL_CWnd::SetWindowTextA
push dword [ebp + 8]
lea eax, [ebp - 0x11c]
push dword [ebp - 0x14]
push eax
call fcn.004053ab
add esp, 0xc
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x10]
push str.LaunchAppAndWait_AfterDestDirCopy_FileName_s
push eax
call sub.MFC42.DLL_CString::Format
push 0x1771
push dword [ebp - 0x10]
call fcn.00403aec
add esp, 0x14
cmp dword [ebp - 0x18], 0
jne 0x406454
pop edi
pop esi
pop ebx
mov ecx, dword [0x418594]
test ecx, ecx
je 0x4066bb
add dword [0x41859c], 0xb
push dword [0x41859c]
call fcn.00408a48
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
leave
ret