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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x928
push ebx
push esi
push edi
call fcn.00418712
test eax, eax
jne 0x4187d6
mov edx, 0xff
xor ebx, ebx
mov ecx, edx
lea edi, [ebp - 0x526]
mov word [ebp - 0x528], bx
mov word [ebp - 0x928], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, edx
xor eax, eax
lea edi, [ebp - 0x926]
mov esi, dword [0x42073c]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, 0x200
lea eax, [ebp - 0x528]
push edi
push eax
push 0x46
push ebx
call esi
lea eax, [ebp - 0x928]
push edi
push eax
push 0x47
push ebx
call esi
lea eax, [ebp - 0x528]
push 0x10
push eax
lea eax, [ebp - 0x928]
push eax
push ebx
call dword [0x42076c]
jmp 0x418cb6
mov eax, dword [ebp + 8]
mov dword [0x420a10], eax
call fcn.004191f6
lea ecx, [ebp - 0xb8]
mov byte [0x420a14], al
call fcn.00409edc
lea ecx, [ebp - 0x20]
call fcn.00409edc
lea ecx, [ebp - 0x90]
call fcn.00409edc
lea ecx, [ebp - 0x74]
call fcn.00409edc
call dword [sym.imp.KERNEL32.DLL_GetCommandLineW]
push eax
lea ecx, [ebp - 0x38]
call fcn.00409eff
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0xb8]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00409623
push dword [ebp - 0x38]
call fcn.0040a54e
pop ecx
lea ecx, [ebp - 0x68]
call fcn.00409edc
lea eax, [ebp - 0x68]
push eax
call fcn.0040b0f6
lea ecx, [ebp - 0x20]
call fcn.0040a34d
lea ecx, [ebp - 0x20]
call fcn.0040a302
xor ebx, ebx
push 0x4206b4
lea ecx, [ebp - 0x20]
mov byte [ebp + 0xb], bl
call fcn.0040994e
test al, al
je 0x418894
mov eax, dword [ebp - 0x20]
lea ecx, [ebp - 0x20]
add eax, 4
mov byte [ebp + 0xb], 1
push eax
call fcn.00409fbd
lea ecx, [ebp - 0x20]
call fcn.0040a34d
lea ecx, [ebp - 0x20]
call fcn.0040a302
lea ecx, [ebp - 0x9c]
call fcn.00409b44
lea eax, [ebp - 0x9c]
push eax
push str.___InstallEnd__
push str.___Install__UTF_8_
push dword [ebp - 0x68]
call fcn.0041929a
test al, al
jne 0x4188d4
cmp byte [ebp + 0xb], bl
jne 0x4188cc
push str.Cant_load_config_info
push ebx
call fcn.0040ef80
push 1
pop ebx
jmp 0x419104
push 0x420680
lea ecx, [ebp - 0xac]
call fcn.00409f42
lea ecx, [ebp - 0x44]
call fcn.00409edc
push str._extractdir
mov byte [ebp - 0x14], 1
push dword [ebp - 0x20]
mov byte [ebp - 1], bl
call fcn.00409a14
test al, al
je 0x418911
mov byte [ebp + 0xb], 1
mov byte [ebp - 0x14], bl
mov byte [ebp - 1], 1
jmp 0x418919
cmp dword [ebp - 0x1c], ebx
je 0x418919
mov byte [ebp - 0x14], bl
cmp dword [ebp - 0x98], ebx
mov esi, dword [0x42076c]
je 0x418b08
lea ecx, [ebp - 0x10]
call fcn.00403cbe
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.0040a7ef
test al, al
jne 0x41895f
cmp byte [ebp + 0xb], bl
jne 0x418957
push str.Config_failed
push ebx
call fcn.0040ef80
push 1
pop ebx
jmp 0x418a16
lea eax, [ebp - 0x10]
push str.Title
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.0040ab44
lea eax, [ebp - 0x10]
push str.BeginPrompt
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0040ab44
lea eax, [ebp - 0x10]
push 0x420628
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.0040ab44
push 0x420624
push dword [ebp - 0xc4]
call fcn.004099bd
test al, al
je 0x4189af
mov byte [ebp - 0x14], bl
lea eax, [ebp - 0x10]
push str.Directory
push eax
call fcn.0040ab11
cmp eax, ebx
jl 0x4189d6
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + eax*4]
lea ecx, [ebp - 0xac]
add eax, 0xc
push eax
call fcn.0040a021
cmp dword [ebp - 0x28], ebx
je 0x418a72
cmp byte [ebp + 0xb], bl
jne 0x418a72
push 0x24
push dword [ebp - 0x38]
push dword [ebp - 0x2c]
push ebx
call esi
cmp eax, 6
je 0x418a72
push dword [ebp - 0xc4]
call fcn.0040a54e
push dword [ebp - 0x2c]
call fcn.0040a54e
push dword [ebp - 0x38]
call fcn.0040a54e
add esp, 0xc
lea ecx, [ebp - 0x10]
call fcn.00419689
push dword [ebp - 0x44]
call fcn.0040a54e
push dword [ebp - 0xac]
call fcn.0040a54e
push dword [ebp - 0x9c]
call fcn.0040a54e
push dword [ebp - 0x68]
call fcn.0040a54e
push dword [ebp - 0x74]
call fcn.0040a54e
push dword [ebp - 0x90]
call fcn.0040a54e
push dword [ebp - 0x20]
call fcn.0040a54e
push dword [ebp - 0xb8]
call fcn.0040a54e
add esp, 0x20
jmp 0x419140
lea eax, [ebp - 0x10]
push str.RunProgram
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0040ab44
push eax
lea ecx, [ebp - 0x44]
call fcn.0040a021
push dword [ebp - 0x5c]
call fcn.0040a54e
lea eax, [ebp - 0x10]
mov dword [esp], str.ExecuteFile
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0040ab44
push eax
lea ecx, [ebp - 0x90]
call fcn.0040a021
push dword [ebp - 0x5c]
call fcn.0040a54e
lea eax, [ebp - 0x10]
mov dword [esp], str.ExecuteParameters
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0040ab44
push eax
lea ecx, [ebp - 0x74]
call fcn.0040a021
push dword [ebp - 0x5c]
call fcn.0040a54e
push dword [ebp - 0xc4]
call fcn.0040a54e
push dword [ebp - 0x2c]
call fcn.0040a54e
push dword [ebp - 0x38]
call fcn.0040a54e
add esp, 0x10
lea ecx, [ebp - 0x10]
call fcn.00419689
lea ecx, [ebp - 0x80]
mov byte [ebp - 0x84], bl
call fcn.00409edc
cmp byte [ebp - 1], bl
jne 0x418b48
push dword [0x41cc24]
lea ecx, [ebp - 0x84]
call fcn.0040bb91
test al, al
jne 0x418b48
cmp byte [ebp + 0xb], bl
jne 0x418b40
push str.Can_not_create_temp_folder_archive
push ebx
call fcn.0040ef80
push 1
pop ebx
jmp 0x4190db
push 0x18
call fcn.0040a527
cmp eax, ebx
pop ecx
je 0x418b5f
mov ecx, eax
call fcn.0041922c
mov edi, eax
jmp 0x418b61
xor edi, edi
cmp edi, ebx
je 0x418b6b
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov ecx, edi
call fcn.0040f714
test eax, eax
je 0x418b8d
push str.Can_not_load_codecs
push ebx
call fcn.0040ef80
cmp edi, ebx
je 0x418b40
mov eax, dword [edi]
push edi
call dword [eax + 8]
jmp 0x418b40
cmp byte [ebp - 1], bl
je 0x418b9a
mov eax, dword [ebp - 0x20]
add eax, 0x18
jmp 0x418b9d
mov eax, dword [ebp - 0x80]
push eax
lea ecx, [ebp - 0x50]
call fcn.00409eff
lea ecx, [ebp - 0x10]
mov byte [ebp - 2], bl
call fcn.00409edc
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 2]
push eax
lea eax, [ebp - 0x50]
push dword [ebp - 0x14]
push eax
lea eax, [ebp - 0x68]
push eax
push edi
call fcn.00417c90
cmp eax, ebx
je 0x418cbe
cmp byte [ebp + 0xb], bl
jne 0x418c38
cmp eax, 1
je 0x418be1
cmp byte [ebp - 2], bl
je 0x418bf1
lea eax, [ebp - 0x10]
push eax
push 8
call fcn.0040d479
mov eax, 0x80004005
cmp eax, 0x80004004
je 0x418c38
cmp dword [ebp - 0xc], ebx
jne 0x418c19
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0040b1b5
push eax
lea ecx, [ebp - 0x10]
call fcn.0040a021
push dword [ebp - 0x5c]
call fcn.0040a54e
pop ecx
lea eax, [ebp - 0x5c]
push 7
push eax
call fcn.0040d206
mov eax, dword [eax]
push 0x10
push eax
push dword [ebp - 0x10]
push ebx
call esi
push dword [ebp - 0x5c]
call fcn.0040a54e
pop ecx
push dword [ebp - 0x10]
call fcn.0040a54e
push dword [ebp - 0x50]
call fcn.0040a54e
pop ecx
cmp edi, ebx
pop ecx
je 0x418c54
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea ecx, [ebp - 0x84]
call fcn.0040bc21
push dword [ebp - 0x80]
call fcn.0040a54e
push dword [ebp - 0x44]
call fcn.0040a54e
push dword [ebp - 0xac]
call fcn.0040a54e
push dword [ebp - 0x9c]
call fcn.0040a54e
push dword [ebp - 0x68]
call fcn.0040a54e
push dword [ebp - 0x74]
call fcn.0040a54e
push dword [ebp - 0x90]
call fcn.0040a54e
push dword [ebp - 0x20]
call fcn.0040a54e
push dword [ebp - 0xb8]
call fcn.0040a54e
add esp, 0x24
push 1
pop eax
jmp 0x419142
push dword [ebp - 0x10]
call fcn.0040a54e
pop ecx
lea ecx, [ebp - 0x10]
call fcn.00409b44
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x68]
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0xa0], esp
push eax
call fcn.00409f8f
call fcn.00419493
test al, al
je 0x418d53
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0x2c]
push eax
call fcn.00409f8f
lea eax, [ebp - 0x2c]
push eax
call fcn.0040c8b2
push str.postSigningData
lea ecx, [ebp - 0x2c]
call fcn.0040a19f
or dword [ebp - 0x14], 0xffffffff
push 1
pop esi
lea ecx, [ebp - 0x14]
push esi
push dword [ebp - 0x2c]
call fcn.0040c778
lea eax, [ebp - 0xa0]
lea ecx, [ebp - 0x14]
push eax
mov dword [ebp - 0xa0], ebx
push dword [ebp - 0xc]
push dword [ebp - 0x10]
call fcn.0040c7f6
lea ecx, [ebp - 0x14]
call fcn.0040c587
push dword [ebp - 0x2c]
call fcn.0040a54e
pop ecx
jmp 0x418d56
push 1
pop esi
push dword [ebp - 0x10]
call fcn.0040a54e
cmp byte [ebp - 1], bl
pop ecx
jne 0x4190c8
lea ecx, [ebp - 0xd4]
call fcn.00409edc
lea eax, [ebp - 0xd4]
mov byte [ebp - 0xc8], 1
push eax
call fcn.0040b8c6
push dword [ebp - 0x50]
call fcn.0040b87c
test al, al
jne 0x418db7
lea ecx, [ebp - 0xd4]
call fcn.00419165
push dword [ebp - 0x50]
call fcn.0040a54e
cmp edi, ebx
pop ecx
je 0x418db0
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ebx, esi
jmp 0x4190db
cmp dword [ebp - 0x8c], ebx
je 0x418e90
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00419149
mov eax, dword [ebp - 0x38]
cmp dword [ebp - 0x1c], ebx
mov dword [ebp - 0x110], 0x3c
mov dword [ebp - 0x10c], 0x140
mov dword [ebp - 0x108], ebx
mov dword [ebp - 0x104], ebx
mov dword [ebp - 0x100], eax
je 0x418e15
lea ecx, [ebp - 0x74]
call fcn.0040a193
lea eax, [ebp - 0x20]
lea ecx, [ebp - 0x74]
push eax
call fcn.0040a1eb
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00419149
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0xf8], ebx
neg eax
sbb eax, eax
mov dword [ebp - 0xf4], esi
and eax, dword [ebp - 0x2c]
mov dword [ebp - 0xd8], ebx
mov dword [ebp - 0xfc], eax
lea eax, [ebp - 0x110]
push eax
call dword [0x42070c]
cmp dword [ebp - 0xf0], 0x20
ja 0x418e7a
cmp byte [ebp + 0xb], bl
jne 0x418e6a
push str.Can_not_open_file
push ebx
call fcn.0040ef80
push dword [ebp - 0x2c]
call fcn.0040a54e
push dword [ebp - 0x38]
jmp 0x418ff4
push dword [ebp - 0x2c]
mov esi, dword [ebp - 0xd8]
call fcn.0040a54e
push dword [ebp - 0x38]
jmp 0x4190a2
cmp dword [ebp - 0x40], ebx
jne 0x418ec7
push str.setup.exe
lea ecx, [ebp - 0x44]
call fcn.00409fbd
push dword [ebp - 0x44]
call fcn.0040c409
test al, al
jne 0x418ec7
cmp byte [ebp + 0xb], bl
jne 0x418ffb
push str.Can_not_find_setup.exe
push ebx
call fcn.0040ef80
jmp 0x418ffb
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0x38]
push eax
call fcn.00409f8f
lea eax, [ebp - 0x38]
push eax
call fcn.0040c8b2
push str.__T_
lea ecx, [ebp - 0x10]
call fcn.00409eff
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x44]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0040a3cc
push dword [ebp - 0x10]
call fcn.0040a54e
push dword [ebp - 0x38]
call fcn.0040a54e
pop ecx
lea eax, [ebp - 0x44]
pop ecx
push eax
lea ecx, [ebp - 0x2c]
call fcn.00409f8f
push 0x4204e0
lea ecx, [ebp - 0x38]
call fcn.00409eff
lea eax, [ebp - 0x50]
lea ecx, [ebp - 0x44]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.0040a3cc
push dword [ebp - 0x38]
call fcn.0040a54e
cmp dword [ebp - 0x1c], ebx
pop ecx
je 0x418f56
lea ecx, [ebp - 0x44]
call fcn.0040a18b
lea eax, [ebp - 0x20]
lea ecx, [ebp - 0x44]
push eax
call fcn.0040a1eb
lea eax, [ebp - 0x44]
mov dword [ebp - 0x118], 0x44
push eax
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x5c]
push eax
mov dword [ebp - 0x114], ebx
mov dword [ebp - 0x110], ebx
mov dword [ebp - 0x10c], ebx
mov dword [ebp - 0xec], ebx
mov word [ebp - 0xe6], bx
mov dword [ebp - 0xe4], ebx
call fcn.00409e7f
push eax
lea eax, [ebp - 0xc4]
push eax
call fcn.00419149
push dword [ebp - 0x5c]
call fcn.0040a54e
pop ecx
lea eax, [ebp - 0x128]
push eax
lea eax, [ebp - 0x118]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0xc4]
push ebx
call dword [sym.imp.KERNEL32.DLL_CreateProcessA]
test eax, eax
jne 0x419082
cmp byte [ebp + 0xb], bl
jne 0x418fe6
lea eax, [ebp - 0x2c]
push eax
call fcn.00419423
push dword [ebp - 0xc4]
call fcn.0040a54e
push dword [ebp - 0x2c]
call fcn.0040a54e
pop ecx
pop ecx
lea ecx, [ebp - 0xd4]
call fcn.00419165
push dword [ebp - 0x50]
call fcn.0040a54e
cmp edi, ebx
pop ecx
je 0x419019
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea ecx, [ebp - 0x84]
call fcn.0040bc21
push dword [ebp - 0x80]
call fcn.0040a54e
push dword [ebp - 0x44]
call fcn.0040a54e
push dword [ebp - 0xac]
call fcn.0040a54e
push dword [ebp - 0x9c]
call fcn.0040a54e
push dword [ebp - 0x68]
call fcn.0040a54e
push dword [ebp - 0x74]
call fcn.0040a54e
push dword [ebp - 0x90]
call fcn.0040a54e
push dword [ebp - 0x20]
call fcn.0040a54e
push dword [ebp - 0xb8]
call fcn.0040a54e
add esp, 0x24
mov eax, esi
jmp 0x419142
push dword [ebp - 0x124]
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push dword [ebp - 0xc4]
mov esi, dword [ebp - 0x128]
call fcn.0040a54e
push dword [ebp - 0x2c]
call fcn.0040a54e
pop ecx
cmp esi, ebx
pop ecx
je 0x4190bd
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
lea ecx, [ebp - 0xd4]
call fcn.00419165
push dword [ebp - 0x50]
call fcn.0040a54e
cmp edi, ebx
pop ecx
je 0x4190db
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea ecx, [ebp - 0x84]
call fcn.0040bc21
push dword [ebp - 0x80]
call fcn.0040a54e
push dword [ebp - 0x44]
call fcn.0040a54e
push dword [ebp - 0xac]
call fcn.0040a54e
add esp, 0xc
push dword [ebp - 0x9c]
call fcn.0040a54e
push dword [ebp - 0x68]
call fcn.0040a54e
push dword [ebp - 0x74]
call fcn.0040a54e
push dword [ebp - 0x90]
call fcn.0040a54e
push dword [ebp - 0x20]
call fcn.0040a54e
push dword [ebp - 0xb8]
call fcn.0040a54e
add esp, 0x18
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret 0x10