Function at 0x4024b5
Capabilities:
Accept command line arguments
Get common file path
Query environment variable
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2140
call fcn.0040fd60
and dword [ebp - 8], 0
lea eax, [ebp - 0x2140]
push ebx
push esi
push edi
push 0x1000
push eax
push dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0xc], esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 0x1140]
push eax
push esi
lea eax, [ebp - 0x2140]
push 0x41138c
push eax
call fcn.00402e9f
mov dword [ebp - 0x1c], eax
add esp, 0x10
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
test al, 1
jne 0x402902
cmp byte [ebp - 0x1140], 0
lea eax, [ebp - 0x1140]
jne 0x402536
push 0x411390
jmp 0x4025d9
push str.startmenu
push eax
call edi
test eax, eax
lea eax, [ebp - 0x1140]
jne 0x402550
push eax
push str.Programs
jmp 0x4025b6
push str.desktop
push eax
call edi
test eax, eax
lea eax, [ebp - 0x1140]
jne 0x40256a
push eax
push str.Desktop
jmp 0x4025b6
push str.sendto
push eax
call edi
test eax, eax
lea eax, [ebp - 0x1140]
jne 0x402584
push eax
push str.SendTo
jmp 0x4025b6
push str.favorites
push eax
call edi
test eax, eax
lea eax, [ebp - 0x1140]
jne 0x40259e
push eax
push str.Favorites
jmp 0x4025b6
push str.startup
push eax
call edi
test eax, eax
lea eax, [ebp - 0x1140]
jne 0x4025c2
push eax
push str.Startup
call fcn.00402f60
pop ecx
pop ecx
jmp 0x402902
push str.targetdir
push eax
call edi
test eax, eax
lea eax, [ebp - 0x1140]
jne 0x4025e5
push 0x41acc0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x402902
push str.curdir
push eax
call edi
test eax, eax
lea eax, [ebp - 0x1140]
jne 0x402608
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
jmp 0x402902
push str.quicklaunch
push eax
call edi
test eax, eax
lea eax, [ebp - 0x1140]
jne 0x40266e
push eax
push str.AppData
call fcn.00402f60
cmp byte [ebp - 0x1140], 0
pop ecx
pop ecx
je 0x402642
push str.MicrosoftInternet_ExplorerQuick_Launch
lea eax, [ebp - 0x1140]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x1140]
push eax
call fcn.00401605
pop ecx
test eax, eax
jne 0x402902
lea eax, [ebp - 0x1140]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
jmp 0x402902
push str.programfiles
push eax
call edi
test eax, eax
lea eax, [ebp - 0x1140]
jne 0x4026e4
push str.C:Program_Files
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x18]
push eax
push 0x20019
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersion
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x402902
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x104
push eax
lea eax, [ebp - 0x1140]
mov dword [ebp - 0x14], 1
push eax
lea eax, [ebp - 0x14]
push eax
push 0
push str.ProgramFilesDir
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 0x18]
jmp 0x4028fc
push str.sysdir
push eax
call edi
test eax, eax
lea eax, [ebp - 0x1140]
jne 0x402707
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
jmp 0x402902
push str.cmdline
push eax
call edi
test eax, eax
jne 0x40272d
push 0x1000
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push eax
lea eax, [ebp - 0x1140]
push eax
call ebx
jmp 0x402902
push str.dialogplacement
lea eax, [ebp - 0x1140]
push eax
call edi
test eax, eax
jne 0x402790
lea eax, [ebp - 0x3c]
xorps xmm0, xmm0
push eax
push dword [0x41795c]
movups xmmword [ebp - 0x3c], xmm0
movups xmmword [ebp - 0x2c], xmm0
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x2c]
push eax
push dword [0x41795c]
call dword [sym.imp.USER32.dll_GetClientRect]
push dword [ebp - 0x20]
lea eax, [ebp - 0x1140]
push dword [ebp - 0x24]
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push str.dialogLeft:_dpx_dialogTop:_dpx_dialogWidth:_dpx_dialogHeight:_dpx
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
jmp 0x402902
lea eax, [ebp - 0x1140]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov esi, 0x104
cmp eax, esi
jae 0x402902
push 0xa
lea eax, [ebp - 0x1140]
push eax
lea eax, [ebp - 0x140]
push eax
call ebx
test eax, eax
je 0x402902
push str.registry:
lea eax, [ebp - 0x140]
push eax
call edi
test eax, eax
jne 0x402902
push 6
lea eax, [ebp - 0x1137]
push eax
lea eax, [ebp - 0x140]
push eax
call ebx
test eax, eax
je 0x40280b
push str.HKCR_
lea eax, [ebp - 0x140]
push eax
call edi
test eax, eax
jne 0x40280b
mov dword [ebp - 4], 0x80000000
jmp 0x402871
push 6
lea eax, [ebp - 0x1137]
push eax
lea eax, [ebp - 0x140]
push eax
call ebx
test eax, eax
je 0x40283c
push str.HKCU_
lea eax, [ebp - 0x140]
push eax
call edi
test eax, eax
jne 0x40283c
mov dword [ebp - 4], 0x80000001
jmp 0x402871
push 6
lea eax, [ebp - 0x1137]
push eax
lea eax, [ebp - 0x140]
push eax
call ebx
test eax, eax
je 0x40286d
push str.HKLM_
lea eax, [ebp - 0x140]
push eax
call edi
test eax, eax
jne 0x40286d
mov dword [ebp - 4], 0x80000002
jmp 0x402871
and dword [ebp - 4], 0
lea eax, [ebp - 0x140]
push eax
push 0
lea eax, [ebp - 0x1140]
push 0x411530
push eax
call fcn.00402e9f
add esp, 0x10
cmp dword [ebp - 4], 0
je 0x402902
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
lea eax, [ebp - 0x132]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x402902
xor ecx, ecx
mov dword [ebp - 0x14], esi
lea eax, [ebp - 0x140]
inc ecx
push eax
push ecx
lea eax, [ebp - 0x1140]
mov dword [ebp - 0x10], ecx
push 0x411530
push eax
call fcn.00402e9f
add esp, 0x10
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x1140]
push eax
lea eax, [ebp - 0x10]
push eax
push 0
lea eax, [ebp - 0x140]
push eax
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 0xc]
sub eax, dword [ebp - 8]
mov esi, dword [ebp + 8]
add esi, dword [ebp - 8]
push eax
lea eax, [ebp - 0x1140]
push eax
push esi
call ebx
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add dword [ebp - 8], eax
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0xc]
cmp byte [eax], 0
jne 0x4024ef
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret