Function at 0x4069b0
Capabilities:
Get common file path
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x748
mov eax, dword [0x431440]
xor eax, ebp
mov dword [ebp - 4], eax
cmp dword [ebp + 8], 0
push ebx
push esi
push edi
jne 0x406c9d
mov edi, 0x104
lea eax, [ebp - 0x108]
push edi
push eax
xor eax, eax
cmp dword [0x433b74], eax
setne al
xor esi, esi
add eax, 0x402
push eax
push esi
call dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [ebp - 0x108]
push eax
push str.SETUPMODE
call fcn.00408de7
push 0x426a18
push str.CRLF
call fcn.00408de7
push 0x426a23
push str.EULA
call fcn.00408de7
push dword [0x433a5c]
mov ebx, 0x426960
lea eax, [ebp - 0x108]
push ebx
push edi
push eax
call fcn.00403cbc
lea eax, [ebp - 0x108]
push eax
push str.OS
call fcn.00408de7
xor eax, eax
cmp byte [0x433a60], al
setne al
push eax
push ebx
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.00403cbc
add esp, 0x40
lea eax, [ebp - 0x108]
push eax
push 0x426a2c
call fcn.00408de7
pop ecx
pop ecx
push edi
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [ebp - 0x20c]
push eax
call fcn.00408537
lea eax, [ebp - 0x20c]
push eax
push str.WINDOWSDIR
call fcn.00408de7
add esp, 0xc
lea eax, [ebp - 0x108]
push edi
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [ebp - 0x108]
push eax
call fcn.00408537
mov dword [esp], str.Drivers
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.004112fd
lea eax, [ebp - 0x108]
push eax
push str.DRIVERSDIR
call fcn.00408de7
push 1
call fcn.00408090
lea eax, [ebp - 0x108]
push eax
push 7
call fcn.00407f54
lea eax, [ebp - 0x108]
push eax
call fcn.00408537
lea eax, [ebp - 0x108]
push eax
push str.STARTUPDIRUSR
call fcn.00408de7
lea eax, [ebp - 0x108]
mov edi, str.STARTUPDIR
push eax
push edi
call fcn.00408de7
lea eax, [ebp - 0x108]
push eax
push 0x18
call fcn.00407f54
lea eax, [ebp - 0x108]
push eax
call fcn.00408537
add esp, 0x40
lea eax, [ebp - 0x108]
push eax
push str.STARTUPDIRALL
call fcn.00408de7
cmp byte [0x433a65], 0
pop ecx
pop ecx
je 0x406b79
lea eax, [ebp - 0x108]
push eax
push edi
call fcn.00408de7
pop ecx
pop ecx
lea eax, [ebp - 0x108]
push eax
push 2
call fcn.00407f54
lea eax, [ebp - 0x108]
push eax
call fcn.00408537
lea eax, [ebp - 0x108]
push eax
push str.STARTMENUUSR
call fcn.00408de7
lea eax, [ebp - 0x108]
mov edi, str.STARTMENUDIR
push eax
push edi
call fcn.00408de7
lea eax, [ebp - 0x108]
push eax
push 0x17
call fcn.00407f54
lea eax, [ebp - 0x108]
push eax
call fcn.00408537
lea eax, [ebp - 0x108]
push eax
push str.STARTMENUALL
call fcn.00408de7
add esp, 0x30
cmp byte [0x433a65], 0
je 0x406bfc
lea eax, [ebp - 0x108]
push eax
push edi
call fcn.00408de7
pop ecx
pop ecx
lea eax, [ebp - 0x108]
push eax
push 0x10
call fcn.00407f54
lea eax, [ebp - 0x108]
push eax
call fcn.00408537
lea eax, [ebp - 0x108]
push eax
push str.DESKTOPDIRUSR
call fcn.00408de7
lea eax, [ebp - 0x108]
mov edi, str.DESKTOPDIR
push eax
push edi
call fcn.00408de7
lea eax, [ebp - 0x108]
push eax
push 0x19
call fcn.00407f54
lea eax, [ebp - 0x108]
push eax
call fcn.00408537
lea eax, [ebp - 0x108]
push eax
push str.DESKTOPDIRALL
call fcn.00408de7
add esp, 0x30
cmp byte [0x433a65], 0
je 0x406c7f
lea eax, [ebp - 0x108]
push eax
push edi
call fcn.00408de7
pop ecx
pop ecx
push esi
call fcn.00408090
mov dword [esp], 0x426a60
push str.BUYURL
call fcn.00408de7
pop ecx
pop ecx
jmp 0x4070ce
xor esi, esi
push esi
mov dword [0x4339e0], esi
call fcn.004064a0
mov eax, dword [0x4339e0]
pop ecx
test eax, eax
jne 0x4070d0
push 0x530
lea eax, [ebp - 0x73c]
push esi
push eax
call fcn.0040e980
add esp, 0xc
lea eax, [ebp - 0x73c]
push eax
push str.PROGRAM
call fcn.00409074
pop ecx
push eax
call fcn.00407e9b
movsx ecx, word [ebp - 0x730]
mov edi, 0x104
push ecx
movsx ecx, word [ebp - 0x732]
push ecx
push str._d._d
mov byte [ebp - 0x73d], al
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.00403cbc
lea eax, [ebp - 0x108]
push eax
push str.CURVER
call fcn.00408de7
add esp, 0x24
mov ebx, 0x4266e8
cmp byte [ebp - 0x73d], 0
je 0x406e3d
movsx eax, word [ebp - 0x72e]
push eax
push 0x426960
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.00403cbc
lea eax, [ebp - 0x108]
push eax
push str.FORWHO
call fcn.00408de7
movsx eax, word [ebp - 0x72c]
push eax
push 0x426960
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.00403cbc
lea eax, [ebp - 0x108]
push eax
push str.CUSTOMLOC
call fcn.00408de7
movsx eax, word [ebp - 0x72a]
push eax
push 0x426960
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.00403cbc
add esp, 0x40
lea eax, [ebp - 0x108]
push eax
push str.INDIVIDUAL
call fcn.00408de7
xor eax, eax
inc eax
pop ecx
pop ecx
cmp word [ebp - 0x72e], ax
jne 0x406e65
push edi
lea eax, [ebp - 0x108]
push eax
push str.STARTUPDIRALL
call fcn.0040801d
lea eax, [ebp - 0x108]
push eax
push str.STARTUPDIR
call fcn.00408de7
push edi
lea eax, [ebp - 0x108]
push eax
push str.STARTMENUALL
call fcn.0040801d
lea eax, [ebp - 0x108]
push eax
push str.STARTMENUDIR
call fcn.00408de7
push edi
lea eax, [ebp - 0x108]
push eax
push str.DESKTOPDIRALL
call fcn.0040801d
lea eax, [ebp - 0x108]
push eax
push str.DESKTOPDIR
call fcn.00408de7
add esp, 0x3c
jmp 0x406e65
push 0x426670
push str.FORWHO
call fcn.00408de7
push ebx
push str.CUSTOMLOC
call fcn.00408de7
push ebx
push str.INDIVIDUAL
call fcn.00408de7
add esp, 0x18
push esi
push esi
push 0x426538
call fcn.0040801d
add esp, 0xc
cmp eax, 0xffffffff
jne 0x406f39
cmp byte [ebp - 0x73d], 0
jne 0x406f26
lea eax, [ebp - 0x728]
push eax
push 0x26
call fcn.00407f54
cmp byte [ebp - 0x728], 0
pop ecx
pop ecx
jne 0x406efd
lea eax, [ebp - 0x744]
push eax
lea eax, [ebp - 0x748]
push eax
push esi
push 0xf003f
push esi
push esi
push esi
push str.SoftwareMicrosoftWindowsCurrentVersion
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
lea eax, [ebp - 0x744]
mov dword [ebp - 0x744], edi
push eax
lea eax, [ebp - 0x728]
push eax
push esi
push esi
push str.ProgramFilesDir
push dword [ebp - 0x748]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 0x748]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x728]
push eax
call fcn.00407232
mov dword [esp], str.PROGRAM
call fcn.00409074
push eax
lea eax, [ebp - 0x728]
push edi
push eax
call fcn.004112fd
add esp, 0x10
lea eax, [ebp - 0x728]
push eax
push 0x426538
call fcn.00408de7
pop ecx
pop ecx
push esi
push esi
mov esi, str.CUSTOMPATH
push esi
call fcn.0040801d
add esp, 0xc
cmp eax, 0xffffffff
jne 0x406fb3
cmp byte [ebp - 0x73d], 0
jne 0x406fab
lea eax, [ebp - 0x108]
push eax
push 0x1a
call fcn.00407f54
push str.PROGRAM
call fcn.00409074
push eax
lea eax, [ebp - 0x108]
push eax
push str._sDeskSoft_s
lea eax, [ebp - 0x624]
push edi
push eax
call fcn.00403cbc
xor eax, eax
add esp, 0x20
inc eax
mov word [ebp - 0x214], ax
mov word [ebp - 0x212], ax
mov word [ebp - 0x210], ax
mov word [ebp - 0x20e], ax
lea ebx, [ebp - 0x624]
jmp 0x406fd5
push ebx
push str.FORWHO
call fcn.00408de7
push 0x426670
push str.CUSTOMLOC
call fcn.00408de7
add esp, 0x10
mov esi, str.INDIVIDUAL
push ebx
push esi
call fcn.00408de7
pop ecx
pop ecx
lea eax, [ebp - 0x108]
push eax
push str.PROGRAM
call fcn.00409074
pop ecx
push eax
call fcn.00407bd5
lea eax, [ebp - 0x108]
push eax
push str.CONFIGPATH
call fcn.00408de7
movsx eax, word [ebp - 0x214]
mov ebx, 0x426960
push eax
push ebx
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.00403cbc
lea eax, [ebp - 0x108]
push eax
push str.SELEXECUTE
call fcn.00408de7
movsx eax, word [ebp - 0x212]
push eax
push ebx
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.00403cbc
lea eax, [ebp - 0x108]
push eax
push str.SELREADME
call fcn.00408de7
movsx eax, word [ebp - 0x210]
add esp, 0x40
push eax
push ebx
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.00403cbc
lea eax, [ebp - 0x108]
push eax
push str.SELDESKTOP
call fcn.00408de7
movsx eax, word [ebp - 0x20e]
push eax
push ebx
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.00403cbc
lea eax, [ebp - 0x108]
push eax
push str.SELSTARTMENU
call fcn.00408de7
push edi
push str.www.desksoft.com
push str.URLTEXT
call fcn.0040801d
push edi
push str.http:__www.desksoft.com
push str.URLLINK
call fcn.0040801d
add esp, 0x48
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040d5ca
leave
ret