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 str.64
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
invalid
invalid