Function at 0x41ee57
Capabilities:
Accept command line arguments
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [ebp + 8]
sub esp, 0x15c
mov dword [0x44da44], eax
push ebx
push esi
push edi
call fcn.0041df9d
test al, al
jne 0x41ee8b
xor dl, dl
mov ecx, 0x444104
call fcn.0041dfe6
xor eax, eax
inc eax
jmp 0x41f61d
call fcn.00401c57
lea ecx, [esp + 0xb8]
call fcn.004070e4
lea ecx, [esp + 0x30]
call fcn.004070e4
lea ecx, [esp + 0xac]
call fcn.004070e4
lea ecx, [esp + 0x94]
call fcn.004070e4
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [esp + 0x28]
call fcn.00407108
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0xbc]
lea ecx, [esp + 0x28]
call fcn.004067ec
lea ecx, [esp + 0x24]
call fcn.0040675d
lea ecx, [esp + 0x88]
call fcn.004070e4
lea ecx, [esp + 0x88]
call fcn.004080d2
lea ecx, [esp + 0x30]
call fcn.004067dc
push ecx
lea ecx, [esp + 0x34]
mov byte [esp + 0x12], 0
call fcn.00406c5a
xor ebx, ebx
inc ebx
test al, al
je 0x41ef3f
push ecx
lea ecx, [esp + 0x34]
mov byte [esp + 0x12], bl
call fcn.0041de28
push eax
call fcn.004071a5
lea ecx, [esp + 0x30]
call fcn.004067dc
lea ecx, [esp + 0xa0]
call fcn.00406dd7
lea eax, [esp + 0xa0]
push eax
push ecx
lea ecx, [esp + 0x90]
call fcn.00406788
mov ecx, eax
call fcn.0041e84b
test al, al
je 0x41f5c3
lea ecx, [esp + 0xa0]
call fcn.00406774
test al, al
jne 0x41f5c3
lea ecx, [esp + 0x6c]
call fcn.004070e4
lea ecx, [esp + 0x50]
call fcn.004070e4
lea ecx, [esp + 0x10]
call fcn.004068f7
mov edx, ecx
lea ecx, [esp + 0xa0]
call fcn.004077ee
test al, al
jne 0x41efcb
cmp byte [esp + 0xe], al
jne 0x41f129
xor dl, dl
mov ecx, str.Config_failed
call fcn.0041dfe6
jmp 0x41f129
push str.Title
lea edx, [esp + 0x14]
lea ecx, [esp + 0x28]
call fcn.00407a12
push str.BeginPrompt
lea edx, [esp + 0x14]
lea ecx, [esp + 0x60]
call fcn.00407a12
push str.Progress
lea edx, [esp + 0x14]
lea ecx, [esp + 0x7c]
call fcn.00407a12
push 0x4441ac
lea ecx, [esp + 0x7c]
call fcn.00407d57
lea ecx, [esp + 0x5c]
mov byte [esp + 0x3c], al
call fcn.00406774
mov edi, dword [sym.imp.USER32.dll_MessageBoxW]
test al, al
jne 0x41f055
cmp byte [esp + 0xe], 0
jne 0x41f055
lea ecx, [esp + 0x24]
call fcn.00406788
lea ecx, [esp + 0x5c]
mov edx, eax
call fcn.00406788
push 0x24
push edx
push eax
push 0
call edi
cmp eax, 6
je 0x41f055
xor ebx, ebx
jmp 0x41f10e
push str.RunProgram
lea edx, [esp + 0x14]
lea ecx, [esp + 0x44]
call fcn.00407a12
push eax
lea ecx, [esp + 0x70]
call fcn.00407204
lea ecx, [esp + 0x40]
call fcn.0040675d
push str.ExecuteFile
lea edx, [esp + 0x14]
lea ecx, [esp + 0x44]
call fcn.00407a12
push eax
lea ecx, [esp + 0xb0]
call fcn.00407204
lea ecx, [esp + 0x40]
call fcn.0040675d
push str.ExecuteParameters
lea edx, [esp + 0x14]
lea ecx, [esp + 0x44]
call fcn.00407a12
push eax
lea ecx, [esp + 0x98]
call fcn.00407204
lea ecx, [esp + 0x40]
call fcn.0040675d
push str.InstallPath
lea edx, [esp + 0x14]
lea ecx, [esp + 0x44]
call fcn.00407a12
push eax
lea ecx, [esp + 0x54]
call fcn.00407204
lea ecx, [esp + 0x40]
call fcn.0040675d
lea ecx, [esp + 0x50]
call fcn.0041eafd
test al, al
jne 0x41f137
cmp byte [esp + 0xe], al
jne 0x41f10e
xor dl, dl
mov ecx, str.Install_path_is_incorrect
call fcn.0041dfe6
lea ecx, [esp + 0x78]
call fcn.0040675d
lea ecx, [esp + 0x5c]
call fcn.0040675d
lea ecx, [esp + 0x24]
call fcn.0040675d
lea ecx, [esp + 0x10]
call fcn.004169df
jmp 0x41f5af
lea ecx, [esp + 0x78]
call fcn.0040675d
lea ecx, [esp + 0x5c]
call fcn.0040675d
lea ecx, [esp + 0x24]
call fcn.0040675d
lea ecx, [esp + 0x10]
call fcn.004169df
lea ecx, [esp + 0xc4]
call fcn.0041de90
lea ecx, [esp + 0x50]
call fcn.00406774
test al, al
je 0x41f1ae
push ecx
lea ecx, [esp + 0xc8]
call fcn.00408a77
test al, al
jne 0x41f198
mov dl, byte [esp + 0xe]
mov ecx, str.Cannot_create_temp_folder_archive
call fcn.0041dfe6
jmp 0x41f5a3
lea ecx, [esp + 0xc4]
call fcn.0041dcba
push eax
lea ecx, [esp + 0x54]
call fcn.00407204
push 0x18
call fcn.00420cd9
pop ecx
mov ecx, eax
call fcn.0041e00f
mov esi, eax
lea ecx, [esp + 0x84]
push esi
call fcn.0040bbca
mov ecx, esi
call fcn.00416898
test eax, eax
je 0x41f1e8
xor dl, dl
mov ecx, str.Cannot_load_codecs
call fcn.0041dfe6
jmp 0x41f597
lea ecx, [esp + 0x10]
mov byte [esp + 0xf], 0
call fcn.004070e4
lea eax, [esp + 0x10]
mov ecx, esi
push eax
lea eax, [esp + 0x13]
push eax
push dword [esp + 0x44]
lea eax, [esp + 0x5c]
push eax
lea edx, [esp + 0x98]
call fcn.00419f5b
mov edx, eax
test edx, edx
je 0x41f2b2
cmp byte [esp + 0xe], 0
jne 0x41f2a4
cmp edx, ebx
je 0x41f23d
cmp byte [esp + 0xf], 0
jne 0x41f23d
cmp edx, 0x80004004
je 0x41f2a4
jmp 0x41f24e
push 8
lea edx, [esp + 0x14]
pop ecx
call fcn.0040a3de
mov edx, 0x80004005
lea ecx, [esp + 0x10]
call fcn.00406774
test al, al
je 0x41f277
lea ecx, [esp + 0x40]
call fcn.0041de7b
push eax
lea ecx, [esp + 0x14]
call fcn.00407204
lea ecx, [esp + 0x40]
call fcn.0040675d
push 7
pop edx
lea ecx, [esp + 0x40]
call fcn.0040a2bf
mov ecx, eax
call fcn.00406788
push 0x10
push eax
lea ecx, [esp + 0x18]
call fcn.00406788
push eax
push 0
call edi
lea ecx, [esp + 0x40]
call fcn.0040675d
lea ecx, [esp + 0x10]
call fcn.0040675d
jmp 0x41f597
lea ecx, [esp + 0x10]
call fcn.0040675d
lea ecx, [esp + 0x110]
call fcn.0041def0
lea ecx, [esp + 0x50]
call fcn.00406788
mov ecx, eax
call fcn.004087b9
test al, al
je 0x41f58b
and dword [esp + 0x68], 0
lea ecx, [esp + 0xac]
call fcn.00406774
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
test al, al
jne 0x41f417
call fcn.0040b92a
push eax
lea ecx, [esp + 0x28]
call fcn.0040717a
and dword [esp + 0xdc], 0
lea ecx, [esp + 0x24]
and dword [esp + 0xe0], 0
mov dword [esp + 0xd4], 0x3c
mov dword [esp + 0xd8], 0x140
call fcn.00406788
lea ecx, [esp + 0x30]
mov dword [esp + 0xe4], eax
call fcn.00406774
test al, al
jne 0x41f36d
lea ecx, [esp + 0x94]
call fcn.0040739a
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x98]
call fcn.004073e4
lea ecx, [esp + 0x94]
call fcn.0040b92a
push eax
lea ecx, [esp + 0x60]
call fcn.0040717a
lea ecx, [esp + 0x5c]
call fcn.00406774
test al, al
je 0x41f39a
and dword [esp + 0xe8], 0
jmp 0x41f3aa
lea ecx, [esp + 0x5c]
call fcn.00406788
mov dword [esp + 0xe8], eax
and dword [esp + 0xec], 0
lea eax, [esp + 0xd4]
and dword [esp + 0x10c], 0
push eax
mov dword [esp + 0xf4], ebx
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
cmp dword [esp + 0xf4], 0x20
ja 0x41f3fe
cmp byte [esp + 0xe], 0
jne 0x41f3ec
xor dl, dl
mov ecx, str.Cannot_open_file
call fcn.0041dfe6
lea ecx, [esp + 0x5c]
call fcn.0040675d
lea ecx, [esp + 0x24]
jmp 0x41f52f
mov esi, dword [esp + 0x10c]
lea ecx, [esp + 0x5c]
call fcn.0040675d
lea ecx, [esp + 0x24]
jmp 0x41f54d
lea ecx, [esp + 0x6c]
call fcn.00406774
test al, al
je 0x41f42b
xor ebx, ebx
jmp 0x41f58b
push 0x4442b8
lea ecx, [esp + 0x28]
call fcn.00407108
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x74]
call fcn.0040758c
lea ecx, [esp + 0x24]
call fcn.0040675d
lea eax, [esp + 0x6c]
push eax
lea ecx, [esp + 0x7c]
call fcn.0040717a
lea eax, [esp + 0x50]
push eax
lea edx, [esp + 0x8c]
lea ecx, [esp + 0x34]
call fcn.0041ebdb
lea ecx, [esp + 0x30]
call fcn.00406774
test al, al
jne 0x41f49c
lea ecx, [esp + 0x6c]
call fcn.00407392
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x70]
call fcn.004073e4
xor ecx, ecx
mov dword [esp + 0x120], 0x44
xor eax, eax
mov dword [esp + 0x124], ecx
mov dword [esp + 0x128], ecx
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x14c], ecx
mov dword [esp + 0x154], ecx
lea ecx, [esp + 0x6c]
mov word [esp + 0x152], ax
call fcn.0040b92a
push eax
lea ecx, [esp + 0x28]
call fcn.0040717a
lea eax, [esp + 0x40]
xor edx, edx
push eax
lea eax, [esp + 0x124]
push eax
push edx
push edx
push edx
push edx
push edx
push edx
lea ecx, [esp + 0x44]
call fcn.00406788
push eax
push edx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x41f536
cmp byte [esp + 0xe], al
jne 0x41f522
lea ecx, [esp + 0x78]
call fcn.0041ea71
lea ecx, [esp + 0x24]
call fcn.0040675d
lea ecx, [esp + 0x78]
call fcn.0040675d
jmp 0x41f58b
push dword [esp + 0x44]
call edi
mov esi, dword [esp + 0x40]
lea ecx, [esp + 0x24]
call fcn.0040675d
lea ecx, [esp + 0x78]
call fcn.0040675d
test esi, esi
je 0x41f587
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [esp + 0x68]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push esi
call edi
lea eax, [esp + 0x3c]
mov dword [esp + 0x3c], ebx
push eax
lea ecx, [esp + 0x14]
call fcn.0041e3f8
mov ecx, eax
call fcn.0041feb6
mov ebx, dword [esp + 0x68]
lea ecx, [esp + 0x110]
call fcn.0041df1d
lea ecx, [esp + 0x84]
call fcn.0040b92d
lea ecx, [esp + 0xc4]
call fcn.0041deaa
lea ecx, [esp + 0x50]
call fcn.0040675d
lea ecx, [esp + 0x6c]
call fcn.0040675d
jmp 0x41f5d6
cmp byte [esp + 0xe], 0
jne 0x41f5d6
xor dl, dl
mov ecx, str.Cant_load_config_info
call fcn.0041dfe6
lea ecx, [esp + 0xa0]
call fcn.0040675d
lea ecx, [esp + 0x88]
call fcn.0040675d
lea ecx, [esp + 0x94]
call fcn.0040675d
lea ecx, [esp + 0xac]
call fcn.0040675d
lea ecx, [esp + 0x30]
call fcn.0040675d
lea ecx, [esp + 0xb8]
call fcn.0040675d
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10