Function at 0x417692
Capabilities:
Accept command line arguments
Check os version
Create process on windows

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x22c
mov eax, dword [0x42bb20]
xor eax, ebp
mov dword [ebp + 0x64], eax
mov eax, dword [ebp + 0x70]
mov dword [0x42ca24], eax
push ebx
lea eax, [ebp - 0x30]
push eax
mov dword [ebp - 0x30], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
xor ebx, ebx
test eax, eax
je 0x4176d4
cmp dword [ebp - 0x20], 2
mov byte [0x42ca28], 1
je 0x4176da
mov byte [0x42ca28], bl
call fcn.00411f08
lea ecx, [ebp - 0x104]
call fcn.00409397
lea ecx, [ebp - 0x50]
call fcn.00409397
lea ecx, [ebp - 0xdc]
call fcn.00409397
lea ecx, [ebp - 0xb8]
call fcn.00409397
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x44]
call fcn.004093bb
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x104]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00408c2d
push dword [ebp - 0x44]
call fcn.004099f5
pop ecx
lea ecx, [ebp - 0xd0]
call fcn.00409397
lea eax, [ebp - 0xd0]
push eax
call fcn.0040a43c
lea ecx, [ebp - 0x50]
call fcn.00409781
lea ecx, [ebp - 0x50]
call fcn.00409748
push 0x424454
lea ecx, [ebp - 0x50]
mov byte [ebp - 0x31], bl
call fcn.00408f2a
test al, al
je 0x417792
mov eax, dword [ebp - 0x50]
add eax, 4
push eax
lea ecx, [ebp - 0x50]
mov byte [ebp - 0x31], 1
call fcn.0040944e
lea ecx, [ebp - 0x50]
call fcn.00409781
lea ecx, [ebp - 0x50]
call fcn.00409748
lea ecx, [ebp - 0xc4]
call fcn.004090ca
mov ecx, dword [ebp - 0xd0]
lea eax, [ebp - 0xc4]
push eax
push str.___InstallEnd__
mov edx, str.___Install__UTF_8_
call fcn.00417451
test al, al
jne 0x417824
cmp byte [ebp - 0x31], bl
jne 0x4177cd
push str.Cant_load_config_info
push ebx
call fcn.0040e302
push dword [ebp - 0xc4]
call fcn.004099f5
push dword [ebp - 0xd0]
call fcn.004099f5
push dword [ebp - 0xb8]
call fcn.004099f5
push dword [ebp - 0xdc]
call fcn.004099f5
push dword [ebp - 0x50]
call fcn.004099f5
push dword [ebp - 0x104]
call fcn.004099f5
xor eax, eax
add esp, 0x18
inc eax
mov ecx, dword [ebp + 0x64]
xor ecx, ebp
pop ebx
call fcn.0041870b
add ebp, 0x68
leave
ret 0x10
push esi
push edi
push 0x424420
lea ecx, [ebp - 0x11c]
call fcn.004093e9
lea ecx, [ebp - 0x78]
call fcn.00409397
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
mov byte [ebp - 0x54], 1
cmp dword [ebp - 0xc0], ebx
je 0x417a52
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0xc4]
push eax
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
call fcn.00409dcd
test al, al
jne 0x4178ea
cmp byte [ebp - 0x31], bl
jne 0x417881
push str.Config_failed
push ebx
call fcn.0040e302
xor ebx, ebx
inc ebx
lea ecx, [ebp - 0x60]
call fcn.004175e8
push dword [ebp - 0x78]
call fcn.004099f5
push dword [ebp - 0x11c]
call fcn.004099f5
push dword [ebp - 0xc4]
call fcn.004099f5
push dword [ebp - 0xd0]
call fcn.004099f5
push dword [ebp - 0xb8]
call fcn.004099f5
push dword [ebp - 0xdc]
call fcn.004099f5
push dword [ebp - 0x50]
call fcn.004099f5
push dword [ebp - 0x104]
call fcn.004099f5
add esp, 0x20
pop edi
mov eax, ebx
pop esi
jmp 0x417812
push str.Title
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.00409d91
push str.BeginPrompt
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.00409d91
push 0x4243e4
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.00409d91
push 0x4243e0
push dword [ebp - 0x128]
call fcn.00408f9a
test al, al
je 0x417940
mov byte [ebp - 0x54], bl
push str.Directory
lea eax, [ebp - 0x60]
push eax
call fcn.00409d5e
cmp eax, ebx
jl 0x417967
mov ecx, dword [ebp - 0x60]
mov eax, dword [ecx + eax*4]
add eax, 0xc
push eax
lea ecx, [ebp - 0x11c]
call fcn.004094a5
cmp dword [ebp - 0xf4], ebx
je 0x4179b3
cmp byte [ebp - 0x31], bl
jne 0x4179b3
push 0x24
push dword [ebp - 0x134]
push dword [ebp - 0xf8]
push ebx
call edi
cmp eax, 6
je 0x4179b3
push dword [ebp - 0x128]
call fcn.004099f5
push dword [ebp - 0xf8]
call fcn.004099f5
push dword [ebp - 0x134]
call fcn.004099f5
add esp, 0xc
jmp 0x417884
push str.RunProgram
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00409d91
push eax
lea ecx, [ebp - 0x78]
call fcn.004094a5
push dword [ebp - 0x44]
call fcn.004099f5
mov dword [esp], str.ExecuteFile
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00409d91
push eax
lea ecx, [ebp - 0xdc]
call fcn.004094a5
push dword [ebp - 0x44]
call fcn.004099f5
mov dword [esp], str.ExecuteParameters
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00409d91
push eax
lea ecx, [ebp - 0xb8]
call fcn.004094a5
push dword [ebp - 0x44]
call fcn.004099f5
push dword [ebp - 0x128]
call fcn.004099f5
push dword [ebp - 0xf8]
call fcn.004099f5
push dword [ebp - 0x134]
call fcn.004099f5
add esp, 0x10
lea ecx, [ebp - 0x60]
call fcn.004175e8
lea ecx, [ebp - 0x90]
mov byte [ebp - 0x94], bl
call fcn.00409397
push 0x424098
lea ecx, [ebp - 0x94]
call fcn.0040af36
test al, al
jne 0x417a9a
cmp byte [ebp - 0x31], bl
jne 0x417a87
push str.Can_not_create_temp_folder_archive
push ebx
call fcn.0040e302
lea ecx, [ebp - 0x94]
call fcn.00417335
xor ebx, ebx
inc ebx
jmp 0x41788c
push 0x18
call fcn.004099ca
pop ecx
cmp eax, ebx
je 0x417ab1
mov ecx, eax
call fcn.00417650
mov esi, eax
jmp 0x417ab3
xor esi, esi
push esi
lea ecx, [ebp - 0x38]
call fcn.004023bb
mov ecx, esi
call fcn.0040eb8c
test eax, eax
je 0x417ae1
push str.Can_not_load_codecs
push ebx
call fcn.0040e302
mov eax, dword [ebp - 0x38]
cmp eax, ebx
je 0x417a87
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x417a87
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x84]
call fcn.00409426
lea ecx, [ebp - 0xac]
mov byte [ebp - 0x32], bl
call fcn.00409397
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x32]
push eax
push dword [ebp - 0x54]
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0xd0]
push eax
push esi
call fcn.0041718b
cmp eax, ebx
je 0x417bb9
cmp byte [ebp - 0x31], bl
jne 0x417b9c
cmp eax, 1
je 0x417b3a
cmp byte [ebp - 0x32], bl
je 0x417b4d
lea eax, [ebp - 0xac]
push eax
push 8
call fcn.0040c7fe
mov eax, 0x80004005
cmp eax, 0x80004004
je 0x417b9c
cmp dword [ebp - 0xa8], ebx
jne 0x417b7b
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.0040a5a7
push eax
lea ecx, [ebp - 0xac]
call fcn.004094a5
push dword [ebp - 0x44]
call fcn.004099f5
pop ecx
push 7
lea eax, [ebp - 0x44]
push eax
call fcn.0040c675
push 0x10
push dword [eax]
push dword [ebp - 0xac]
push ebx
call edi
push dword [ebp - 0x44]
call fcn.004099f5
pop ecx
push dword [ebp - 0xac]
call fcn.004099f5
push dword [ebp - 0x84]
call fcn.004099f5
pop ecx
pop ecx
jmp 0x417ad2
push dword [ebp - 0xac]
call fcn.004099f5
pop ecx
lea ecx, [ebp - 0xec]
call fcn.0041735e
push dword [ebp - 0x84]
call fcn.0040a82b
test al, al
jne 0x417bf7
lea ecx, [ebp - 0xec]
call fcn.0041738a
push dword [ebp - 0x84]
call fcn.004099f5
jmp 0x417bb3
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0xd8], ebx
je 0x417d29
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.00417319
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x170], 0x3c
mov dword [ebp - 0x16c], 0x140
mov dword [ebp - 0x168], ebx
mov dword [ebp - 0x164], ebx
mov dword [ebp - 0x160], eax
cmp dword [ebp - 0x4c], ebx
je 0x417c61
lea ecx, [ebp - 0xb8]
call fcn.0040991d
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0xb8]
call fcn.0040964c
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.00417319
mov eax, dword [ebp - 0x9c]
neg eax
sbb eax, eax
and eax, dword [ebp - 0xa0]
xor esi, esi
mov dword [ebp - 0x15c], eax
lea eax, [ebp - 0x170]
inc esi
push eax
mov dword [ebp - 0x158], ebx
mov dword [ebp - 0x154], esi
mov dword [ebp - 0x138], ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
cmp dword [ebp - 0x150], 0x20
ja 0x417d10
cmp byte [ebp - 0x31], bl
jne 0x417cc5
push str.Can_not_open_file
push ebx
call fcn.0040e302
push dword [ebp - 0xa0]
call fcn.004099f5
push dword [ebp - 0x6c]
call fcn.004099f5
pop ecx
pop ecx
lea ecx, [ebp - 0xec]
call fcn.0041738a
push dword [ebp - 0x84]
call fcn.004099f5
mov eax, dword [ebp - 0x38]
pop ecx
cmp eax, ebx
je 0x417cfe
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x94]
call fcn.00417335
mov ebx, esi
jmp 0x41788c
push dword [ebp - 0xa0]
mov esi, dword [ebp - 0x138]
call fcn.004099f5
push dword [ebp - 0x6c]
jmp 0x417ec2
cmp dword [ebp - 0x74], ebx
jne 0x417d60
push str.setup.exe
lea ecx, [ebp - 0x78]
call fcn.0040944e
push dword [ebp - 0x78]
call fcn.0040b871
test al, al
jne 0x417d60
cmp byte [ebp - 0x31], bl
jne 0x417bdf
push str.Can_not_find_setup.exe
push ebx
call fcn.0040e302
jmp 0x417bdf
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0x6c]
call fcn.00409426
lea eax, [ebp - 0x6c]
push eax
call fcn.0040bc92
push str.__T_
lea ecx, [ebp - 0xa0]
call fcn.004093bb
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0xa0]
push eax
lea ecx, [ebp - 0x78]
call fcn.00409961
push dword [ebp - 0xa0]
call fcn.004099f5
push dword [ebp - 0x6c]
call fcn.004099f5
pop ecx
pop ecx
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x44]
call fcn.00409426
push 0x4242bc
lea ecx, [ebp - 0x6c]
call fcn.004093bb
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x78]
call fcn.00409961
push dword [ebp - 0x6c]
call fcn.004099f5
pop ecx
cmp dword [ebp - 0x4c], ebx
je 0x417dfe
lea ecx, [ebp - 0x78]
call fcn.00409915
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp - 0x78]
call fcn.0040964c
xor eax, eax
mov word [ebp - 0x192], ax
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x6c]
push eax
mov dword [ebp - 0x1c4], 0x44
mov dword [ebp - 0x1c0], ebx
mov dword [ebp - 0x1bc], ebx
mov dword [ebp - 0x1b8], ebx
mov dword [ebp - 0x198], ebx
mov dword [ebp - 0x190], ebx
call fcn.00409345
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.00417319
push dword [ebp - 0x6c]
call fcn.004099f5
pop ecx
lea eax, [ebp - 0x180]
push eax
lea eax, [ebp - 0x1c4]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x110]
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x417ea6
cmp byte [ebp - 0x31], bl
jne 0x417e8c
lea eax, [ebp - 0x44]
push eax
call fcn.004173ea
push dword [ebp - 0x110]
call fcn.004099f5
push dword [ebp - 0x44]
call fcn.004099f5
pop ecx
pop ecx
jmp 0x417bdf
push dword [ebp - 0x17c]
call edi
push dword [ebp - 0x110]
mov esi, dword [ebp - 0x180]
call fcn.004099f5
push dword [ebp - 0x44]
call fcn.004099f5
pop ecx
pop ecx
cmp esi, ebx
je 0x417eec
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp - 0x54]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push esi
call edi
mov esi, dword [ebp - 0x54]
jmp 0x417cda
lea ecx, [ebp - 0xec]
call fcn.0041738a
push dword [ebp - 0x84]
call fcn.004099f5
mov eax, dword [ebp - 0x38]
pop ecx
cmp eax, ebx
je 0x417f10
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x94]
call fcn.00417335
jmp 0x41788c