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

Disassembly:
push ebp
lea ebp, [esp - 0x1390]
mov eax, 0x1410
call fcn.00406d30
mov eax, dword [0x4171b0]
xor eax, ebp
mov dword [ebp + 0x138c], eax
push ebx
push esi
mov esi, dword [ebp + 0x1398]
push edi
push 1
call fcn.00404ea9
xor ebx, ebx
push ebx
push esi
mov ecx, 0x41afe8
call fcn.00404cc1
push str.uninstall.lng
mov ecx, 0x41afc8
call fcn.00404ab7
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 [0x41afb8]
mov dword [ebp - 0x80], eax
call esi
mov dword [0x41d914], eax
cmp eax, ebx
jne 0x405f2d
mov eax, dword [0x41afb4]
cmp eax, dword [0x41afb8]
je 0x405f2d
push edi
push eax
call esi
mov dword [0x41d914], 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.0040623e
push eax
call dword [sym.imp.GDI32.dll_CreateFontW]
mov dword [0x41d910], 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 0x405fdc
lea eax, [ebp + 0x78c]
xor esi, esi
movzx eax, word [eax]
cmp ax, 0x2d
je 0x405f9d
cmp ax, 0x2f
jne 0x405fc3
movzx eax, word [ebp + esi + 0x78e]
push eax
call fcn.00405094
cmp eax, 0x53
jne 0x405fc3
movzx eax, word [ebp + esi + 0x790]
push eax
call fcn.00408b5c
pop ecx
test eax, eax
je 0x405fd5
inc edi
lea esi, [edi + edi]
lea eax, [ebp + esi + 0x78c]
cmp word [eax], bx
jne 0x405f8e
jmp 0x405fdc
mov byte [0x41d918], 1
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push 0x4139a4
push eax
call fcn.00407ae0
mov edi, eax
pop ecx
pop ecx
cmp edi, ebx
je 0x4061f0
mov esi, 0x200
push 5
inc edi
push str.setup
inc edi
push edi
call fcn.00405020
test eax, eax
jne 0x40601a
mov byte [ebp - 0x75], 1
jmp 0x40610f
push 3
push 0x413990
push edi
call fcn.00405020
test eax, eax
jne 0x406037
mov byte [0x41d919], 1
jmp 0x40610f
movzx eax, word [edi]
push eax
call fcn.00405094
cmp eax, 0x53
jne 0x406062
movzx eax, word [edi + 2]
push eax
call fcn.00404e5c
test al, al
jne 0x406062
dec dword [ebp - 0x7c]
mov byte [0x41d918], 1
jmp 0x40610f
push 4
push str.wait
push edi
call fcn.00405020
test eax, eax
jne 0x406083
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x40610f
push 7
push str.warning
push edi
call fcn.00405020
test eax, eax
jne 0x40610f
push 0x400
lea eax, [ebp - 0x74]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x13f1
call fcn.00404c40
push eax
push 0x41396c
lea eax, [ebp + 0xf8c]
push esi
push eax
call fcn.004055e3
add esp, 0x10
lea eax, [ebp - 0x74]
push eax
push 0x13f2
call fcn.00404c40
push eax
lea eax, [ebp + 0xf8c]
push esi
push eax
call fcn.00406cf5
pop ecx
lea eax, [ebp + eax*2 + 0xf8c]
push eax
call fcn.004055e3
add esp, 0x10
push 0x10040
push 0x13f0
call fcn.00404c40
push eax
lea eax, [ebp + 0xf8c]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
inc dword [ebp - 0x7c]
push 0x4139a4
push edi
call fcn.00407ae0
mov edi, eax
pop ecx
pop ecx
cmp edi, ebx
jne 0x405ffe
cmp byte [ebp - 0x75], bl
je 0x4061eb
mov esi, dword [sym.imp.USER32.dll_DialogBoxParamW]
push ebx
push 0x405c86
push ebx
push str.SETUPDLG
push dword [0x41afb8]
call esi
test eax, eax
je 0x4061eb
call fcn.00405502
cmp byte [0x41d919], bl
jne 0x4061ae
push ebx
push 0x405187
push ebx
push str.DONEDLG
push dword [0x41afb8]
call esi
call fcn.00401f42
test eax, eax
je 0x4061ae
cmp byte [0x41d918], bl
jne 0x4061ae
call fcn.004055ac
test al, al
jne 0x4061ae
push 0x40
push 0x13ed
call fcn.00404c40
push eax
push 0x140a
call fcn.00404c40
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp word [0x41d110], bx
je 0x4061eb
cmp byte [0x41d918], bl
jne 0x4061eb
cmp byte [0x41d919], bl
jne 0x4061eb
mov esi, 0x41d110
push esi
call fcn.004018fe
test al, al
je 0x4061eb
push 1
push 0x412600
push ebx
push esi
push str.open
push ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp dword [ebp - 0x7c], ebx
jne 0x4061f5
call fcn.0040575e
cmp dword [ebp - 0x80], ebx
je 0x406203
push dword [ebp - 0x80]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call dword [sym.imp.ole32.dll_OleUninitialize]
push dword [0x41d910]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
call esi
push dword [0x41d914]
call esi
mov ecx, dword [ebp + 0x138c]
mov eax, dword [0x41d91c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00406d1a
add ebp, 0x1390
leave
ret 0x10