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

Disassembly:
push ebp
lea ebp, [esp - 0x1390]
mov eax, 0x1410
call fcn.00406900
mov eax, dword [0x4161a0]
xor eax, ebp
mov dword [ebp + 0x138c], eax
push ebx
push esi
mov esi, dword [ebp + 0x1398]
push edi
call fcn.00404dfd
xor ebx, ebx
push ebx
push esi
mov ecx, 0x417fe8
call fcn.00404c15
push str.uninstall.lng
mov ecx, 0x417fc8
call fcn.00404a0b
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 [0x417fb8]
mov dword [ebp - 0x80], eax
call esi
mov dword [0x41a914], eax
cmp eax, ebx
jne 0x405e96
mov eax, dword [0x417fb4]
cmp eax, dword [0x417fb8]
je 0x405e96
push edi
push eax
call esi
mov dword [0x41a914], 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.004061a7
push eax
call dword [sym.imp.GDI32.dll_CreateFontW]
mov dword [0x41a910], eax
xor eax, eax
mov word [ebp + 0x78c], ax
push 0x400
lea eax, [ebp + 0x78c]
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 + 0x78c], bx
je 0x405f45
lea eax, [ebp + 0x78c]
xor esi, esi
movzx eax, word [eax]
cmp ax, 0x2d
je 0x405f06
cmp ax, 0x2f
jne 0x405f2c
movzx eax, word [ebp + esi + 0x78e]
push eax
call fcn.00404fdb
cmp eax, 0x53
jne 0x405f2c
movzx eax, word [ebp + esi + 0x790]
push eax
call fcn.004085f8
pop ecx
test eax, eax
je 0x405f3e
inc edi
lea esi, [edi + edi]
lea eax, [ebp + esi + 0x78c]
cmp word [eax], bx
jne 0x405ef7
jmp 0x405f45
mov byte [0x41a918], 1
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push 0x41297c
push eax
call fcn.004076c0
mov edi, eax
pop ecx
pop ecx
cmp edi, ebx
je 0x406159
mov esi, 0x200
push 5
inc edi
push str.setup
inc edi
push edi
call fcn.00404f67
test eax, eax
jne 0x405f83
mov byte [ebp - 0x75], 1
jmp 0x406078
push 3
push 0x412968
push edi
call fcn.00404f67
test eax, eax
jne 0x405fa0
mov byte [0x41a919], 1
jmp 0x406078
movzx eax, word [edi]
push eax
call fcn.00404fdb
cmp eax, 0x53
jne 0x405fcb
movzx eax, word [edi + 2]
push eax
call fcn.00404db0
test al, al
jne 0x405fcb
dec dword [ebp - 0x7c]
mov byte [0x41a918], 1
jmp 0x406078
push 4
push str.wait
push edi
call fcn.00404f67
test eax, eax
jne 0x405fec
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x406078
push 7
push str.warning
push edi
call fcn.00404f67
test eax, eax
jne 0x406078
push 0x400
lea eax, [ebp - 0x74]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x13f1
call fcn.00404b94
push eax
push 0x412944
lea eax, [ebp + 0xf8c]
push esi
push eax
call fcn.00402123
add esp, 0x10
lea eax, [ebp - 0x74]
push eax
push 0x13f2
call fcn.00404b94
push eax
lea eax, [ebp + 0xf8c]
push esi
push eax
call fcn.0040709b
pop ecx
lea eax, [ebp + eax*2 + 0xf8c]
push eax
call fcn.00402123
add esp, 0x10
push 0x10040
push 0x13f0
call fcn.00404b94
push eax
lea eax, [ebp + 0xf8c]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
inc dword [ebp - 0x7c]
push 0x41297c
push edi
call fcn.004076c0
mov edi, eax
pop ecx
pop ecx
cmp edi, ebx
jne 0x405f67
cmp byte [ebp - 0x75], bl
je 0x406154
mov esi, dword [sym.imp.USER32.dll_DialogBoxParamW]
push ebx
push 0x405bde
push ebx
push str.SETUPDLG
push dword [0x417fb8]
call esi
test eax, eax
je 0x406154
call fcn.00405476
cmp byte [0x41a919], bl
jne 0x406117
push ebx
push 0x4050ce
push ebx
push str.DONEDLG
push dword [0x417fb8]
call esi
call fcn.00401eb3
test eax, eax
je 0x406117
cmp byte [0x41a918], bl
jne 0x406117
call fcn.00405520
test al, al
jne 0x406117
push 0x40
push 0x13ed
call fcn.00404b94
push eax
push 0x140a
call fcn.00404b94
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp word [0x41a110], bx
je 0x406154
cmp byte [0x41a918], bl
jne 0x406154
cmp byte [0x41a919], bl
jne 0x406154
mov esi, 0x41a110
push esi
call fcn.00401890
test al, al
je 0x406154
push 1
push 0x411610
push ebx
push esi
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp dword [ebp - 0x7c], ebx
jne 0x40615e
call fcn.004056b6
cmp dword [ebp - 0x80], ebx
je 0x40616c
push dword [ebp - 0x80]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call dword [sym.imp.ole32.dll_OleUninitialize]
push dword [0x41a910]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push dword [0x41a914]
call esi
mov ecx, dword [ebp + 0x138c]
mov eax, dword [0x41a91c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004068ab
add ebp, 0x1390
leave
ret 0x10