Function at 0x4069b2
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 0x406c9f
mov edi, 0x104
lea eax, [ebp - 0x108]
push edi
push eax
xor eax, eax
cmp dword [0x433b84], 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.00408df2
push 0x426a18
push str.CRLF
call fcn.00408df2
push 0x426a23
push str.EULA
call fcn.00408df2
push dword [0x433a6c]
mov ebx, 0x426960
lea eax, [ebp - 0x108]
push ebx
push edi
push eax
call fcn.00403cbc
lea eax, [ebp - 0x108]
push eax
push 0x426a24
call fcn.00408df2
xor eax, eax
cmp byte [0x433a70], 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 str.64
call fcn.00408df2
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.00408542
lea eax, [ebp - 0x20c]
push eax
push str.WINDOWSDIR
call fcn.00408df2
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.00408542
mov dword [esp], str.Drivers
lea eax, [ebp - 0x108]
push edi
push eax
call fcn.0041149d
lea eax, [ebp - 0x108]
push eax
push str.DRIVERSDIR
call fcn.00408df2
push 1
call fcn.0040809b
lea eax, [ebp - 0x108]
push eax
push 7
call fcn.00407f5f
lea eax, [ebp - 0x108]
push eax
call fcn.00408542
lea eax, [ebp - 0x108]
push eax
push str.STARTUPDIRUSR
call fcn.00408df2
lea eax, [ebp - 0x108]
mov edi, str.STARTUPDIR
push eax
push edi
call fcn.00408df2
lea eax, [ebp - 0x108]
push eax
push 0x18
call fcn.00407f5f
lea eax, [ebp - 0x108]
push eax
call fcn.00408542
add esp, 0x40
lea eax, [ebp - 0x108]
push eax
push str.STARTUPDIRALL
call fcn.00408df2
cmp byte [0x433a75], 0
pop ecx
pop ecx
je 0x406b7b
lea eax, [ebp - 0x108]
push eax
push edi
call fcn.00408df2
pop ecx
pop ecx
lea eax, [ebp - 0x108]
push eax
push 2
call fcn.00407f5f
lea eax, [ebp - 0x108]
push eax
call fcn.00408542
lea eax, [ebp - 0x108]
push eax
push str.STARTMENUUSR
call fcn.00408df2
lea eax, [ebp - 0x108]
mov edi, str.STARTMENUDIR
push eax
push edi
call fcn.00408df2
lea eax, [ebp - 0x108]
push eax
push 0x17
call fcn.00407f5f
lea eax, [ebp - 0x108]
push eax
call fcn.00408542
lea eax, [ebp - 0x108]
push eax
push str.STARTMENUALL
call fcn.00408df2
add esp, 0x30
cmp byte [0x433a75], 0
je 0x406bfe
lea eax, [ebp - 0x108]
push eax
push edi
call fcn.00408df2
pop ecx
pop ecx
lea eax, [ebp - 0x108]
push eax
push 0x10
call fcn.00407f5f
lea eax, [ebp - 0x108]
push eax
call fcn.00408542
lea eax, [ebp - 0x108]
push eax
push str.DESKTOPDIRUSR
call fcn.00408df2
lea eax, [ebp - 0x108]
mov edi, str.DESKTOPDIR
push eax
push edi
call fcn.00408df2
lea eax, [ebp - 0x108]
push eax
push 0x19
call fcn.00407f5f
lea eax, [ebp - 0x108]
push eax
call fcn.00408542
lea eax, [ebp - 0x108]
push eax
push str.DESKTOPDIRALL
call fcn.00408df2
add esp, 0x30
cmp byte [0x433a75], 0
je 0x406c81
lea eax, [ebp - 0x108]
push eax
push edi
call fcn.00408df2
pop ecx
pop ecx
push esi
call fcn.0040809b
mov dword [esp], 0x426a60
push str.BUYURL
call fcn.00408df2
pop ecx
pop ecx
jmp 0x4070d0
xor esi, esi
push esi
mov dword [0x4339f0], esi
call fcn.004064a0
mov eax, dword [0x4339f0]
pop ecx
test eax, eax
jne 0x4070d2
push 0x530
lea eax, [ebp - 0x73c]
push esi
push eax
call fcn.0040eb20
add esp, 0xc
lea eax, [ebp - 0x73c]
push eax
push str.PROGRAM
call fcn.0040907f
pop ecx
push eax
call fcn.00407ea6
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.00408df2
add esp, 0x24
mov ebx, 0x4266e8
cmp byte [ebp - 0x73d], 0
je 0x406e3f
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.00408df2
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.00408df2
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.00408df2
xor eax, eax
inc eax
pop ecx
pop ecx
cmp word [ebp - 0x72e], ax
jne 0x406e67
push edi
lea eax, [ebp - 0x108]
push eax
push str.STARTUPDIRALL
call fcn.00408028
lea eax, [ebp - 0x108]
push eax
push str.STARTUPDIR
call fcn.00408df2
push edi
lea eax, [ebp - 0x108]
push eax
push str.STARTMENUALL
call fcn.00408028
lea eax, [ebp - 0x108]
push eax
push str.STARTMENUDIR
call fcn.00408df2
push edi
lea eax, [ebp - 0x108]
push eax
push str.DESKTOPDIRALL
call fcn.00408028
lea eax, [ebp - 0x108]
push eax
push str.DESKTOPDIR
call fcn.00408df2
add esp, 0x3c
jmp 0x406e67
push 0x426670
push str.FORWHO
call fcn.00408df2
push ebx
push str.CUSTOMLOC
call fcn.00408df2
push ebx
push str.INDIVIDUAL
call fcn.00408df2
add esp, 0x18
push esi
push esi
push 0x426538
call fcn.00408028
add esp, 0xc
cmp eax, 0xffffffff
jne 0x406f3b
cmp byte [ebp - 0x73d], 0
jne 0x406f28
lea eax, [ebp - 0x728]
push eax
push 0x26
call fcn.00407f5f
cmp byte [ebp - 0x728], 0
pop ecx
pop ecx
jne 0x406eff
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.0040723d
mov dword [esp], str.PROGRAM
call fcn.0040907f
push eax
lea eax, [ebp - 0x728]
push edi
push eax
call fcn.0041149d
add esp, 0x10
lea eax, [ebp - 0x728]
push eax
push 0x426538
call fcn.00408df2
pop ecx
pop ecx
push esi
push esi
mov esi, str.CUSTOMPATH
push esi
call fcn.00408028
add esp, 0xc
cmp eax, 0xffffffff
jne 0x406fb5
cmp byte [ebp - 0x73d], 0
jne 0x406fad
lea eax, [ebp - 0x108]
push eax
push 0x1a
call fcn.00407f5f
push str.PROGRAM
call fcn.0040907f
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 0x406fd7
push ebx
push str.FORWHO
call fcn.00408df2
push 0x426670
push str.CUSTOMLOC
call fcn.00408df2
add esp, 0x10
mov esi, str.INDIVIDUAL
push ebx
push esi
call fcn.00408df2
pop ecx
pop ecx
lea eax, [ebp - 0x108]
push eax
push str.PROGRAM
call fcn.0040907f
pop ecx
push eax
call fcn.00407be0
lea eax, [ebp - 0x108]
push eax
push str.CONFIGPATH
call fcn.00408df2
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.00408df2
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.00408df2
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.00408df2
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.00408df2
push edi
push str.www.desksoft.com
push str.URLTEXT
call fcn.00408028
push edi
push str.http:__www.desksoft.com
push str.URLLINK
call fcn.00408028
add esp, 0x48
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040d603
leave
ret