Function at 0x406484
Capabilities:
Accept command line arguments
Create process on windows
Query environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x1b90]
mov eax, 0x1c10
call fcn.00406ce0
mov eax, dword [0x4181b0]
xor eax, ebp
mov dword [ebp + 0x1b8c], eax
push ebx
push esi
mov esi, dword [ebp + 0x1b98]
push edi
push 1
call fcn.004054fc
xor ebx, ebx
push ebx
push esi
mov ecx, 0x41b1e0
call fcn.00405356
push str.uninstall.lng
mov ecx, 0x41b1bc
call fcn.00405147
push ebx
call dword [sym.imp.ole32.dll_OleInitialize]
push str.riched32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, dword [sym.imp.USER32.dll_LoadIconW]
mov edi, str.RARICON
push edi
push dword [0x41b1a8]
mov dword [ebp - 0x80], eax
call esi
mov dword [0x41e324], eax
cmp eax, ebx
jne 0x406518
mov eax, dword [0x41b1a4]
cmp eax, dword [0x41b1a8]
je 0x406518
push edi
push eax
call esi
mov dword [0x41e324], eax
push str.MS_Shell_Dlg
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x2bc
push ebx
push ebx
push ebx
push 0xfffffffffffffff4
call fcn.00406829
push eax
call dword [sym.imp.GDI32.dll_CreateFontW]
mov dword [0x41e320], eax
xor eax, eax
mov word [ebp + 0xf8c], ax
push 0x400
lea eax, [ebp + 0xf8c]
push eax
push str.sfxcmd
mov dword [ebp - 0x7c], ebx
mov byte [ebp - 0x75], bl
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
xor edi, edi
cmp word [ebp + 0xf8c], bx
je 0x4065c7
lea eax, [ebp + 0xf8c]
xor esi, esi
movzx eax, word [eax]
cmp ax, 0x2d
je 0x406588
cmp ax, 0x2f
jne 0x4065ae
movzx eax, word [ebp + esi + 0xf8e]
push eax
call sub.USER32.dll_CharUpperW
cmp eax, 0x53
jne 0x4065ae
movzx eax, word [ebp + esi + 0xf90]
push eax
call fcn.00408dc5
pop ecx
test eax, eax
je 0x4065c0
inc edi
lea esi, [edi + edi]
lea eax, [ebp + esi + 0xf8c]
cmp word [eax], bx
jne 0x406579
jmp 0x4065c7
mov byte [0x41e328], 1
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push 0x414a58
push eax
call fcn.0040776b
mov esi, eax
pop ecx
pop ecx
cmp esi, ebx
je 0x4067db
mov edi, 0x200
push 5
inc esi
push str.setup
inc esi
push esi
call fcn.00405638
test eax, eax
jne 0x406605
mov byte [ebp - 0x75], 1
jmp 0x4066fa
push 3
push 0x414a44
push esi
call fcn.00405638
test eax, eax
jne 0x406622
mov byte [0x41e329], 1
jmp 0x4066fa
movzx eax, word [esi]
push eax
call sub.USER32.dll_CharUpperW
cmp eax, 0x53
jne 0x40664d
movzx eax, word [esi + 2]
push eax
call fcn.00405480
test al, al
jne 0x40664d
dec dword [ebp - 0x7c]
mov byte [0x41e328], 1
jmp 0x4066fa
push 4
push str.wait
push esi
call fcn.00405638
test eax, eax
jne 0x40666e
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x4066fa
push 7
push str.warning
push esi
call fcn.00405638
test eax, eax
jne 0x4066fa
push 0x800
lea eax, [ebp - 0x74]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x13f3
call fcn.004052d5
push eax
push 0x414a20
lea eax, [ebp + 0x178c]
push edi
push eax
call fcn.00402453
add esp, 0x10
lea eax, [ebp - 0x74]
push eax
push 0x13f4
call fcn.004052d5
push eax
lea eax, [ebp + 0x178c]
push edi
push eax
call fcn.0040747a
pop ecx
lea eax, [ebp + eax*2 + 0x178c]
push eax
call fcn.00402453
add esp, 0x10
push 0x10040
push 0x13f2
call fcn.004052d5
push eax
lea eax, [ebp + 0x178c]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
inc dword [ebp - 0x7c]
push 0x414a58
push esi
call fcn.0040776b
mov esi, eax
pop ecx
pop ecx
cmp esi, ebx
jne 0x4065e9
cmp byte [ebp - 0x75], bl
je 0x4067d6
mov esi, dword [sym.imp.USER32.dll_DialogBoxParamW]
push ebx
push 0x406271
push ebx
push str.SETUPDLG
push dword [0x41b1a8]
call esi
test eax, eax
je 0x4067d6
call fcn.00405ac5
cmp byte [0x41e329], bl
jne 0x406799
push ebx
push 0x405748
push ebx
push str.DONEDLG
push dword [0x41b1a8]
call esi
call fcn.004021e4
test eax, eax
je 0x406799
cmp byte [0x41e328], bl
jne 0x406799
call fcn.00405b73
test al, al
jne 0x406799
push 0x40
push 0x13ed
call fcn.004052d5
push eax
push 0x140a
call fcn.004052d5
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp word [0x41d320], bx
je 0x4067d6
cmp byte [0x41e328], bl
jne 0x4067d6
cmp byte [0x41e329], bl
jne 0x4067d6
mov esi, 0x41d320
push esi
call fcn.00401a58
test al, al
je 0x4067d6
push 1
push 0x4136a8
push ebx
push esi
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp dword [ebp - 0x7c], ebx
jne 0x4067e0
call fcn.00405d0d
cmp dword [ebp - 0x80], ebx
je 0x4067ee
push dword [ebp - 0x80]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call dword [sym.imp.ole32.dll_OleUninitialize]
push dword [0x41e320]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push dword [0x41e324]
call esi
mov ecx, dword [ebp + 0x1b8c]
mov eax, dword [0x41e32c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00406ccd
add ebp, 0x1b90
leave
ret 0x10