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

Disassembly:
push 0x274
mov eax, 0x45e6aa
call fcn.0041ff93
mov eax, dword [ebp + 8]
mov dword [0x4716ec], eax
lea eax, [ebp - 0xa4]
push eax
mov dword [ebp - 0xa4], 0x94
call dword [sym.imp.KERNEL32.DLL_GetVersionExA]
xor ebx, ebx
inc ebx
test eax, eax
je 0x41ec90
cmp dword [ebp - 0x94], 2
mov byte [0x4716e8], bl
je 0x41ec97
mov byte [0x4716e8], 0
call fcn.00402035
lea ecx, [ebp - 0x210]
call fcn.004058b4
lea ecx, [ebp - 0xe8]
call fcn.004058b4
lea ecx, [ebp - 0x17c]
call fcn.004058b4
lea ecx, [ebp - 0x164]
call fcn.004058b4
call dword [sym.imp.KERNEL32.DLL_GetCommandLineW]
push eax
lea ecx, [ebp - 0xdc]
call fcn.0040587e
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.0040519c
push dword [ebp - 0xdc]
call fcn.0041ff15
pop ecx
lea ecx, [ebp - 0x158]
call fcn.004058b4
lea eax, [ebp - 0x158]
push eax
call fcn.00409571
lea ecx, [ebp - 0xe8]
call fcn.00406f2e
lea ecx, [ebp - 0xe8]
call fcn.00406ecb
push 0x4608a8
lea ecx, [ebp - 0xe8]
mov byte [ebp - 0xa5], 0
call fcn.00406315
test al, al
je 0x41ed79
mov eax, dword [ebp - 0xe8]
lea ecx, [ebp - 0xe8]
add eax, 4
mov byte [ebp - 0xa5], bl
push eax
call fcn.00405aed
lea ecx, [ebp - 0xe8]
call fcn.00406f2e
lea ecx, [ebp - 0xe8]
call fcn.00406ecb
lea ecx, [ebp - 0x170]
call fcn.004056ab
lea eax, [ebp - 0x170]
push eax
push str.___InstallEnd__
push str.___Install__UTF_8_
push dword [ebp - 0x158]
call fcn.0041e981
test al, al
jne 0x41edc1
cmp byte [ebp - 0xa5], al
jne 0x41f94c
push str.Cant_load_config_info
push 0
call fcn.0041cd61
jmp 0x41f94c
push 0x4608dc
lea ecx, [ebp - 0x204]
call fcn.0040587e
lea ecx, [ebp - 0x100]
call fcn.004058b4
lea ecx, [ebp - 0x1f8]
call fcn.004058b4
lea ecx, [ebp - 0x110]
call fcn.004058b4
cmp dword [ebp - 0x16c], 0
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
mov byte [ebp - 0x104], bl
je 0x41f3d0
xor eax, eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 0xc8], eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x170]
push eax
call fcn.004073da
test al, al
jne 0x41ee53
cmp byte [ebp - 0xa5], al
jne 0x41f1cb
push str.Config_failed
push 0
call fcn.0041cd61
jmp 0x41f1cb
push str.Title
lea ecx, [ebp - 0xb4]
call fcn.0040587e
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x128]
push eax
call fcn.00407587
push dword [ebp - 0xb4]
call fcn.0041ff15
lea ecx, [ebp - 0xb4]
mov dword [esp], str.BeginPrompt
call fcn.0040587e
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x11c]
push eax
call fcn.00407587
push dword [ebp - 0xb4]
call fcn.0041ff15
lea ecx, [ebp - 0xb4]
mov dword [esp], 0x460924
call fcn.0040587e
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.00407587
push dword [ebp - 0xb4]
call fcn.0041ff15
lea ecx, [ebp - 0xb4]
mov dword [esp], str.ExtractDialogText
call fcn.0040587e
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.00407587
push eax
lea ecx, [ebp - 0x1f8]
call fcn.00405a8c
push dword [ebp - 0xc4]
call fcn.0041ff15
push dword [ebp - 0xb4]
call fcn.0041ff15
pop ecx
pop ecx
push str.ExtractPathText
lea ecx, [ebp - 0xb4]
call fcn.0040587e
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x140]
push eax
call fcn.00407587
push dword [ebp - 0xb4]
call fcn.0041ff15
lea ecx, [ebp - 0xb4]
mov dword [esp], str.CancelPrompt
call fcn.0040587e
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0xf4]
push eax
call fcn.00407587
push dword [ebp - 0xb4]
call fcn.0041ff15
mov dword [esp], 0x460998
push dword [ebp - 0xdc]
call fcn.00406e2a
xor edx, edx
movzx ecx, bl
test al, al
push str.Directory
cmovne ecx, edx
mov byte [ebp - 0x104], cl
lea ecx, [ebp - 0xb4]
call fcn.0040587e
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xd0]
push eax
call fcn.0040733f
push dword [ebp - 0xb4]
mov esi, eax
call fcn.0041ff15
pop ecx
test esi, esi
js 0x41f021
mov eax, dword [ebp - 0xd0]
lea ecx, [ebp - 0x204]
mov eax, dword [eax + esi*4]
add eax, 0xc
push eax
call fcn.00405a8c
push str.InstallPath
lea ecx, [ebp - 0xb4]
call fcn.0040587e
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.00407587
push dword [ebp - 0xb4]
call fcn.0041ff15
pop ecx
push 0
mov esi, 0x4609c8
lea ecx, [ebp - 0x134]
push esi
call fcn.0040603a
test eax, eax
js 0x41f12b
lea eax, [ebp - 0x158]
push eax
lea ecx, [ebp - 0xb4]
call fcn.0040584d
lea ecx, [ebp - 0xb4]
call fcn.00406a0f
test eax, eax
jle 0x41f0ee
lea ecx, [eax + 1]
cmp ecx, dword [ebp - 0xb0]
jae 0x41f0b0
mov eax, dword [ebp - 0xb4]
xor edx, edx
mov dword [ebp - 0xb0], ecx
mov word [eax + ecx*2], dx
lea eax, [ebp - 0xb4]
push eax
call fcn.0040bdb1
mov eax, dword [ebp - 0xb0]
test eax, eax
jle 0x41f0ee
mov edx, dword [ebp - 0xb4]
movzx ecx, word [edx + eax*2 - 2]
cmp ecx, 0x5c
je 0x41f0db
cmp ecx, 0x2f
jne 0x41f0ee
lea ecx, [eax - 1]
cmp ecx, eax
jae 0x41f0ee
xor eax, eax
mov dword [ebp - 0xb0], ecx
mov word [edx + ecx*2], ax
push esi
lea ecx, [ebp - 0xc4]
call fcn.0040587e
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x134]
call fcn.004068df
push dword [ebp - 0xc4]
call fcn.0041ff15
push dword [ebp - 0xb4]
call fcn.0041ff15
pop ecx
pop ecx
lea eax, [ebp - 0x134]
push eax
lea ecx, [ebp - 0x110]
call fcn.00405a8c
cmp dword [ebp - 0x13c], 0
mov al, byte [ebp - 0xa5]
je 0x41f154
test al, al
je 0x41f211
cmp dword [ebp - 0x118], 0
je 0x41f298
test al, al
jne 0x41f298
push 0x24
push dword [ebp - 0x128]
push dword [ebp - 0x11c]
push 0
call edi
cmp eax, 6
je 0x41f298
xor ebx, ebx
push dword [ebp - 0x134]
call fcn.0041ff15
push dword [ebp - 0xf4]
call fcn.0041ff15
push dword [ebp - 0x140]
call fcn.0041ff15
push dword [ebp - 0xdc]
call fcn.0041ff15
push dword [ebp - 0x11c]
call fcn.0041ff15
push dword [ebp - 0x128]
call fcn.0041ff15
add esp, 0x18
lea ecx, [ebp - 0xd0]
call fcn.0041e7e9
jmp 0x41f91d
cmp dword [ebp - 0xf0], 0
je 0x41f41d
push 0x104
push dword [ebp - 0x128]
push dword [ebp - 0xf4]
push 0
call edi
cmp eax, 7
jne 0x41f41d
lea ecx, [ebp - 0x1c4]
call fcn.0041e88b
lea ecx, [ebp - 0x1c4]
call fcn.0041e75e
lea eax, [ebp - 0x128]
push eax
lea ecx, [ebp - 0x1b8]
call fcn.00405a8c
lea eax, [ebp - 0x11c]
push eax
lea ecx, [ebp - 0x1ac]
call fcn.00405a8c
lea eax, [ebp - 0x140]
push eax
lea ecx, [ebp - 0x194]
call fcn.00405a8c
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x188]
call fcn.00405a8c
push 0
push 0x60
lea ecx, [ebp - 0x1c4]
call fcn.00408e0b
cmp eax, ebx
jne 0x41f1db
lea eax, [ebp - 0x188]
push eax
lea ecx, [ebp - 0x110]
call fcn.00405a8c
lea ecx, [ebp - 0x1c4]
call fcn.0041e88b
push str.RunProgram
lea ecx, [ebp - 0xc4]
call fcn.0040587e
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0xb4]
push eax
call fcn.00407587
push eax
lea ecx, [ebp - 0x100]
call fcn.00405a8c
push dword [ebp - 0xb4]
call fcn.0041ff15
push dword [ebp - 0xc4]
call fcn.0041ff15
pop ecx
pop ecx
push str.ExecuteFile
lea ecx, [ebp - 0xc4]
call fcn.0040587e
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0xb4]
push eax
call fcn.00407587
push eax
lea ecx, [ebp - 0x17c]
call fcn.00405a8c
push dword [ebp - 0xb4]
call fcn.0041ff15
push dword [ebp - 0xc4]
call fcn.0041ff15
pop ecx
pop ecx
push str.ExecuteParameters
lea ecx, [ebp - 0xc4]
call fcn.0040587e
lea eax, [ebp - 0xc4]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0xb4]
push eax
call fcn.00407587
push eax
lea ecx, [ebp - 0x164]
call fcn.00405a8c
push dword [ebp - 0xb4]
call fcn.0041ff15
push dword [ebp - 0xc4]
call fcn.0041ff15
push dword [ebp - 0x134]
call fcn.0041ff15
push dword [ebp - 0xf4]
call fcn.0041ff15
push dword [ebp - 0x140]
call fcn.0041ff15
push dword [ebp - 0xdc]
call fcn.0041ff15
push dword [ebp - 0x11c]
call fcn.0041ff15
push dword [ebp - 0x128]
call fcn.0041ff15
add esp, 0x20
lea ecx, [ebp - 0xd0]
call fcn.0041e7e9
lea ecx, [ebp - 0x1d0]
mov byte [ebp - 0x1d4], 0
call fcn.004058b4
cmp dword [ebp - 0x10c], 0
jne 0x41f430
push dword [0x470064]
lea ecx, [ebp - 0x1d4]
call fcn.004097f1
test al, al
jne 0x41f430
cmp byte [ebp - 0xa5], al
jne 0x41f8ff
push str.Can_not_create_temp_folder_archive
push 0
call fcn.0041cd61
jmp 0x41f8ff
lea ecx, [ebp - 0x1c4]
call fcn.0041e88b
push 5
pop ebx
jmp 0x41f186
push 0x18
call fcn.00406fdf
mov esi, eax
pop ecx
test esi, esi
je 0x41f458
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi], vtable.CCodecs.0
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov word [esi + 0x14], ax
jmp 0x41f45a
xor esi, esi
test esi, esi
je 0x41f464
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov ecx, esi
call fcn.0041a158
test eax, eax
je 0x41f480
push str.Can_not_load_codecs
push 0
call fcn.0041cd61
jmp 0x41f8ee
cmp dword [ebp - 0x10c], 0
lea ecx, [ebp - 0x110]
lea eax, [ebp - 0x1d0]
cmovne eax, ecx
lea ecx, [ebp - 0x14c]
push eax
call fcn.0040584d
lea ecx, [ebp - 0xb4]
mov byte [ebp - 0xb5], 0
call fcn.004058b4
lea eax, [ebp - 0xb4]
push eax
lea eax, [ebp - 0xb5]
push eax
lea eax, [ebp - 0x1f8]
push eax
push dword [ebp - 0x104]
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0x158]
push eax
push esi
call fcn.0041e2d7
test eax, eax
je 0x41f582
cmp byte [ebp - 0xa5], 0
jne 0x41f571
cmp eax, ebx
je 0x41f501
cmp byte [ebp - 0xb5], 0
je 0x41f514
lea eax, [ebp - 0xb4]
push eax
push 8
call fcn.0040c6fd
mov eax, 0x80004005
cmp eax, 0x80004004
je 0x41f571
cmp dword [ebp - 0xb0], 0
jne 0x41f549
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.00409673
push eax
lea ecx, [ebp - 0xb4]
call fcn.00405a8c
push dword [ebp - 0xc4]
call fcn.0041ff15
pop ecx
push 7
lea eax, [ebp - 0xc4]
push eax
call fcn.0040c62f
push 0x10
push dword [eax]
push dword [ebp - 0xb4]
push 0
call edi
push dword [ebp - 0xc4]
call fcn.0041ff15
pop ecx
push dword [ebp - 0xb4]
call fcn.0041ff15
pop ecx
jmp 0x41f8e2
push dword [ebp - 0xb4]
call fcn.0041ff15
pop ecx
lea ecx, [ebp - 0x220]
call fcn.004058b4
lea eax, [ebp - 0x220]
mov byte [ebp - 0x214], bl
push eax
call fcn.00409d2c
push dword [ebp - 0x14c]
call fcn.0040a3e8
test al, al
je 0x41f8d7
cmp dword [ebp - 0x178], 0
je 0x41f6cb
lea eax, [ebp - 0x17c]
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.004090fd
and dword [ebp - 0x1b0], 0
and dword [ebp - 0x1ac], 0
cmp dword [ebp - 0xe4], 0
mov eax, dword [ebp - 0xdc]
mov dword [ebp - 0x1b8], 0x3c
mov dword [ebp - 0x1b4], 0x140
mov dword [ebp - 0x1a8], eax
je 0x41f632
lea ecx, [ebp - 0x164]
call fcn.00405f30
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x164]
call fcn.00405e17
lea eax, [ebp - 0x164]
push eax
lea eax, [ebp - 0xf4]
push eax
call fcn.004090fd
mov eax, dword [ebp - 0xf4]
xor ecx, ecx
cmp dword [ebp - 0xf0], ecx
mov dword [ebp - 0x19c], ebx
cmove eax, ecx
and dword [ebp - 0x1a0], ecx
and dword [ebp - 0x180], ecx
mov dword [ebp - 0x1a4], eax
lea eax, [ebp - 0x1b8]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
cmp dword [ebp - 0x198], 0x20
ja 0x41f6af
cmp byte [ebp - 0xa5], 0
jne 0x41f699
push str.Can_not_open_file
push 0
call fcn.0041cd61
push dword [ebp - 0xf4]
call fcn.0041ff15
push dword [ebp - 0xdc]
jmp 0x41f88e
push dword [ebp - 0xf4]
mov edi, dword [ebp - 0x180]
call fcn.0041ff15
push dword [ebp - 0xdc]
jmp 0x41f8ba
cmp dword [ebp - 0xfc], 0
jne 0x41f710
push str.setup.exe
lea ecx, [ebp - 0x100]
call fcn.00405aed
push dword [ebp - 0x100]
call fcn.0040a72b
test al, al
jne 0x41f710
cmp byte [ebp - 0xa5], al
jne 0x41f8d7
push str.Can_not_find_setup.exe
push 0
call fcn.0041cd61
jmp 0x41f8d7
lea eax, [ebp - 0x14c]
push eax
lea ecx, [ebp - 0xdc]
call fcn.0040584d
lea eax, [ebp - 0xdc]
push eax
call fcn.0040bdb1
push str.__T_
lea ecx, [ebp - 0xc4]
call fcn.0040587e
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0xc4]
push eax
lea ecx, [ebp - 0x100]
call fcn.004068df
push dword [ebp - 0xc4]
call fcn.0041ff15
push dword [ebp - 0xdc]
call fcn.0041ff15
pop ecx
pop ecx
lea eax, [ebp - 0x100]
push eax
lea ecx, [ebp - 0x1ec]
call fcn.0040584d
push 0x460b0c
lea ecx, [ebp - 0xf4]
call fcn.0040587e
lea eax, [ebp - 0x14c]
push eax
lea eax, [ebp - 0xf4]
push eax
lea ecx, [ebp - 0x100]
call fcn.004068df
push dword [ebp - 0xf4]
call fcn.0041ff15
cmp dword [ebp - 0xe4], 0
pop ecx
je 0x41f7dc
lea ecx, [ebp - 0x100]
call fcn.00405f1a
lea eax, [ebp - 0xe8]
push eax
lea ecx, [ebp - 0x100]
call fcn.00405e17
xor eax, eax
mov dword [ebp - 0x280], 0x44
mov word [ebp - 0x24e], ax
xor ecx, ecx
lea eax, [ebp - 0x100]
mov dword [ebp - 0x27c], ecx
push eax
lea eax, [ebp - 0x204]
mov dword [ebp - 0x278], ecx
push eax
lea eax, [ebp - 0x23c]
mov dword [ebp - 0x274], ecx
push eax
mov dword [ebp - 0x254], ecx
mov dword [ebp - 0x24c], ecx
call fcn.00405cfc
push eax
lea eax, [ebp - 0x1e0]
push eax
call fcn.004090fd
push dword [ebp - 0x23c]
call fcn.0041ff15
pop ecx
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x280]
push eax
xor eax, eax
push eax
push eax
push eax
push eax
push eax
push eax
push dword [ebp - 0x1e0]
push eax
call dword [sym.imp.KERNEL32.DLL_CreateProcessA]
test eax, eax
jne 0x41f897
cmp byte [ebp - 0xa5], al
jne 0x41f87d
lea eax, [ebp - 0x1ec]
push eax
call fcn.0041ebe5
push dword [ebp - 0x1e0]
call fcn.0041ff15
push dword [ebp - 0x1ec]
call fcn.0041ff15
pop ecx
pop ecx
jmp 0x41f8d7
push dword [ebp - 0x22c]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push dword [ebp - 0x1e0]
mov edi, dword [ebp - 0x230]
call fcn.0041ff15
push dword [ebp - 0x1ec]
call fcn.0041ff15
pop ecx
pop ecx
test edi, edi
je 0x41f8d5
push 0xffffffffffffffff
push edi
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
push edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
xor ebx, ebx
lea ecx, [ebp - 0x220]
call fcn.0041e812
push dword [ebp - 0x14c]
call fcn.0041ff15
pop ecx
mov dword [ebp - 4], 0xd
test esi, esi
je 0x41f8ff
mov eax, dword [esi]
push esi
call dword [eax + 8]
lea ecx, [ebp - 0x1d4]
mov dword [ebp - 4], 0xe
call fcn.0040a1d0
push dword [ebp - 0x1d0]
call fcn.0041ff15
pop ecx
push dword [ebp - 0x110]
call fcn.0041ff15
push dword [ebp - 0x1f8]
call fcn.0041ff15
push dword [ebp - 0x100]
call fcn.0041ff15
push dword [ebp - 0x204]
call fcn.0041ff15
add esp, 0x10
push dword [ebp - 0x170]
call fcn.0041ff15
push dword [ebp - 0x158]
call fcn.0041ff15
push dword [ebp - 0x164]
call fcn.0041ff15
push dword [ebp - 0x17c]
call fcn.0041ff15
push dword [ebp - 0xe8]
call fcn.0041ff15
push dword [ebp - 0x210]
call fcn.0041ff15
add esp, 0x18
mov eax, ebx
call fcn.0041ff3d
ret 0x10