Function at 0x410d75
Capabilities:
Accept command line arguments
Check os version
Create process on windows
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa28
push ebx
push esi
push edi
call fcn.00410d36
test eax, eax
jne 0x410dfd
mov edx, 0xff
xor ebx, ebx
mov ecx, edx
lea edi, [ebp - 0x626]
mov word [ebp - 0x628], bx
mov word [ebp - 0xa28], bx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, edx
xor eax, eax
lea edi, [ebp - 0xa26]
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov edi, 0x200
lea eax, [ebp - 0x628]
push edi
push eax
push 0x46
push ebx
call esi
lea eax, [ebp - 0xa28]
push edi
push eax
push 0x47
push ebx
call esi
lea eax, [ebp - 0x628]
push 0x10
push eax
lea eax, [ebp - 0xa28]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
inc eax
jmp 0x411786
mov eax, dword [ebp + 8]
mov dword [ebp - 0x228], 0x94
mov dword [0x418ad0], eax
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
xor ebx, ebx
test eax, eax
jne 0x410e26
xor al, al
jmp 0x410e30
cmp dword [ebp - 0x218], 2
sete al
mov byte [0x418ad4], al
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push 0xf
lea ecx, [ebp - 0xbc]
pop edi
mov dword [ebp - 0xbc], ebx
push edi
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xb4], ebx
call fcn.00406ff7
push edi
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
call fcn.00406ff7
push edi
lea ecx, [ebp - 0x84]
mov dword [ebp - 0x84], ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
call fcn.00406ff7
push edi
lea ecx, [ebp - 0x60]
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
call fcn.00406ff7
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
lea ecx, [ebp - 0x10]
call fcn.0040a9f1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0040a86b
push dword [ebp - 0x10]
call sub.MSVCRT.dll_free
pop ecx
mov dword [ebp - 0x6c], ebx
push edi
lea ecx, [ebp - 0x6c]
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
call fcn.00406ff7
lea eax, [ebp - 0x6c]
push eax
push dword [0x418ad0]
call fcn.0040bcd0
lea ecx, [ebp - 0x2c]
call fcn.0040ac18
lea ecx, [ebp - 0x2c]
call fcn.0040abdd
push 0x418660
lea ecx, [ebp - 0x20]
mov byte [ebp + 0xb], bl
call fcn.0040a9f1
mov esi, eax
lea eax, [ebp - 0x10]
push 2
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040ab44
push dword [esi]
push dword [eax]
call fcn.0040af63
push dword [ebp - 0x10]
neg eax
sbb al, al
inc al
mov byte [ebp - 1], al
call sub.MSVCRT.dll_free
push dword [ebp - 0x20]
call sub.MSVCRT.dll_free
cmp byte [ebp - 1], bl
pop ecx
pop ecx
je 0x410f72
lea eax, [ebp - 0x10]
push 2
push eax
lea ecx, [ebp - 0x2c]
mov byte [ebp + 0xb], 1
call fcn.0040aa74
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040aa36
push dword [ebp - 0x10]
call sub.MSVCRT.dll_free
pop ecx
lea ecx, [ebp - 0x2c]
call fcn.0040ac18
lea ecx, [ebp - 0x2c]
call fcn.0040abdd
push 0x418658
lea ecx, [ebp - 0xa4]
mov byte [ebp - 0x3c], 1
call fcn.0040a9f1
mov esi, eax
lea eax, [ebp - 0x48]
push 3
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040ab44
push dword [esi]
push dword [eax]
call fcn.0040af63
test eax, eax
je 0x411042
push str._INI
lea ecx, [ebp - 0x20]
call fcn.0040a9f1
mov esi, eax
lea eax, [ebp - 0x10]
push 4
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040ab44
push dword [esi]
push dword [eax]
call fcn.0040af63
push dword [ebp - 0x10]
neg eax
sbb al, al
inc al
mov byte [ebp - 1], al
call sub.MSVCRT.dll_free
push dword [ebp - 0x20]
call sub.MSVCRT.dll_free
cmp byte [ebp - 1], bl
pop ecx
pop ecx
jne 0x411042
push 0x418644
lea ecx, [ebp - 0xb0]
call fcn.0040a9f1
mov esi, eax
lea eax, [ebp - 0xc8]
push 2
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040ab44
push dword [esi]
push dword [eax]
call fcn.0040af63
push dword [ebp - 0xc8]
neg eax
sbb al, al
inc al
mov byte [ebp - 1], al
call sub.MSVCRT.dll_free
push dword [ebp - 0xb0]
call sub.MSVCRT.dll_free
cmp byte [ebp - 1], bl
pop ecx
pop ecx
mov byte [ebp - 1], bl
je 0x411046
mov byte [ebp - 1], 1
push dword [ebp - 0x48]
call sub.MSVCRT.dll_free
push dword [ebp - 0xa4]
call sub.MSVCRT.dll_free
cmp byte [ebp - 1], bl
pop ecx
pop ecx
je 0x411063
mov byte [ebp - 0x3c], bl
push edi
lea ecx, [ebp - 0x78]
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], ebx
call fcn.0040aff5
lea eax, [ebp - 0x78]
push eax
push str.___InstallEnd__
push str.___Install__UTF_8_
push dword [ebp - 0x6c]
call fcn.004117bd
test al, al
jne 0x4110a7
cmp byte [ebp + 0xb], bl
jne 0x41109f
push str.Cant_load_config_info
push ebx
call fcn.0040e162
xor ebx, ebx
inc ebx
jmp 0x41174b
push 0x41860c
lea ecx, [ebp - 0xe8]
call fcn.0040a9f1
push edi
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
call fcn.00406ff7
cmp dword [ebp - 0x74], ebx
je 0x41136c
lea ecx, [ebp - 0x98]
call fcn.0041197d
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.0040b1d2
test al, al
jne 0x411114
cmp byte [ebp + 0xb], bl
jne 0x411101
push str.Config_failed
push ebx
call fcn.0040e162
lea ecx, [ebp - 0x98]
call fcn.00411998
xor ebx, ebx
inc ebx
jmp 0x411736
push str.Title
lea ecx, [ebp - 0x10]
call fcn.0040a9f1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xc8]
push eax
call fcn.0040b507
push dword [ebp - 0x10]
call sub.MSVCRT.dll_free
lea ecx, [ebp - 0x10]
mov dword [esp], str.BeginPrompt
call fcn.0040a9f1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.0040b507
push dword [ebp - 0x10]
call sub.MSVCRT.dll_free
lea ecx, [ebp - 0x10]
mov dword [esp], 0x4185b8
call fcn.0040a9f1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xb0]
push eax
call fcn.0040b507
push dword [ebp - 0x10]
call sub.MSVCRT.dll_free
lea ecx, [ebp - 0x10]
mov dword [esp], 0x4185b0
call fcn.0040a9f1
push dword [ebp - 0x10]
push dword [ebp - 0xb0]
call fcn.0040af63
push dword [ebp - 0x10]
neg eax
sbb al, al
inc al
mov byte [ebp - 1], al
call sub.MSVCRT.dll_free
cmp byte [ebp - 1], bl
pop ecx
je 0x4111d3
mov byte [ebp - 0x3c], bl
push str.Directory
lea ecx, [ebp - 0x10]
call fcn.0040a9f1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x98]
push eax
call fcn.0040b4d1
push dword [ebp - 0x10]
mov esi, eax
call sub.MSVCRT.dll_free
cmp esi, ebx
pop ecx
jl 0x411217
mov eax, dword [ebp - 0x8c]
lea ecx, [ebp - 0xe8]
mov eax, dword [eax + esi*4]
add eax, 0xc
push eax
call fcn.0040aa36
cmp dword [ebp - 0xa0], ebx
je 0x411272
cmp byte [ebp + 0xb], bl
jne 0x411272
push 0x24
push dword [ebp - 0xc8]
push dword [ebp - 0xa4]
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
je 0x411272
push dword [ebp - 0xb0]
call sub.MSVCRT.dll_free
push dword [ebp - 0xa4]
call sub.MSVCRT.dll_free
push dword [ebp - 0xc8]
call sub.MSVCRT.dll_free
add esp, 0xc
lea ecx, [ebp - 0x98]
call fcn.00411998
jmp 0x411736
push str.RunProgram
lea ecx, [ebp - 0x10]
call fcn.0040a9f1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0040b507
push eax
lea ecx, [ebp - 0x38]
call fcn.0040aa36
push dword [ebp - 0x20]
call sub.MSVCRT.dll_free
push dword [ebp - 0x10]
call sub.MSVCRT.dll_free
pop ecx
pop ecx
push str.ExecuteFile
lea ecx, [ebp - 0x10]
call fcn.0040a9f1
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0040b507
push eax
lea ecx, [ebp - 0x84]
call fcn.0040aa36
push dword [ebp - 0x20]
call sub.MSVCRT.dll_free
push dword [ebp - 0x10]
call sub.MSVCRT.dll_free
pop ecx
pop ecx
push str.ExecuteParameters
lea ecx, [ebp - 0x10]
call fcn.0040a9f1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.0040b507
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0040ba0b
push eax
lea ecx, [ebp - 0x60]
call fcn.0040aa36
push dword [ebp - 0x20]
call sub.MSVCRT.dll_free
push dword [ebp - 0x48]
call sub.MSVCRT.dll_free
push dword [ebp - 0x10]
call sub.MSVCRT.dll_free
push dword [ebp - 0xb0]
call sub.MSVCRT.dll_free
push dword [ebp - 0xa4]
call sub.MSVCRT.dll_free
push dword [ebp - 0xc8]
call sub.MSVCRT.dll_free
add esp, 0x18
lea ecx, [ebp - 0x98]
call fcn.00411998
lea ecx, [ebp - 0xf8]
call fcn.0040c95d
push dword [0x41840c]
lea ecx, [ebp - 0xf8]
call fcn.0040c98d
test al, al
jne 0x4113a4
cmp byte [ebp + 0xb], bl
jne 0x41139c
push str.Can_not_create_temp_folder_archive
push ebx
call fcn.0040e162
xor ebx, ebx
inc ebx
jmp 0x41172b
lea eax, [ebp - 0xf4]
mov dword [ebp - 0xd8], ebx
push eax
lea eax, [ebp - 0xd4]
push eax
mov dword [ebp - 0xdc], 0x414904
call fcn.0040bf0b
push edi
lea ecx, [ebp - 0x54]
mov byte [ebp - 0x11], bl
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x4c], ebx
call fcn.00406ff7
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x11]
push eax
lea eax, [ebp - 0xdc]
push dword [ebp - 0x3c]
push eax
lea eax, [ebp - 0xd4]
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.00410474
cmp eax, ebx
je 0x411469
cmp byte [ebp + 0xb], bl
jne 0x411461
cmp eax, 1
je 0x411411
cmp byte [ebp - 0x11], bl
je 0x411433
lea eax, [ebp - 0x10]
push 8
push eax
call fcn.0040d606
push eax
lea ecx, [ebp - 0x54]
call fcn.0040aa36
push dword [ebp - 0x10]
call sub.MSVCRT.dll_free
pop ecx
mov eax, 0x80004005
cmp eax, 0x80004004
je 0x411461
cmp dword [ebp - 0x50], ebx
je 0x411461
lea eax, [ebp - 0x10]
push 7
push eax
call fcn.0040d606
push 0x10
push dword [eax]
push dword [ebp - 0x54]
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
push dword [ebp - 0x10]
call sub.MSVCRT.dll_free
pop ecx
xor ebx, ebx
inc ebx
jmp 0x411716
lea ecx, [ebp - 0x150]
call fcn.0041192c
push dword [ebp - 0xf4]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x41148c
xor ebx, ebx
inc ebx
jmp 0x41170b
cmp dword [ebp - 0x80], ebx
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
je 0x411572
lea eax, [ebp - 0x84]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0040bb69
mov eax, dword [ebp - 0x20]
cmp dword [ebp - 0x28], ebx
mov dword [ebp - 0x134], 0x3c
mov dword [ebp - 0x130], 0x140
mov dword [ebp - 0x12c], ebx
mov dword [ebp - 0x128], ebx
mov dword [ebp - 0x124], eax
je 0x4114e5
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x60]
push eax
call fcn.0040b9d5
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.0040bb69
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x11c], ebx
neg eax
sbb eax, eax
xor esi, esi
and eax, dword [ebp - 0x48]
inc esi
mov dword [ebp - 0x118], esi
mov dword [ebp - 0xfc], ebx
mov dword [ebp - 0x120], eax
lea eax, [ebp - 0x134]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
cmp dword [ebp - 0x114], 0x20
jg 0x411556
cmp byte [ebp + 0xb], bl
jne 0x41153d
push str.Can_not_open_file
push ebx
call fcn.0040e162
push dword [ebp - 0x48]
call sub.MSVCRT.dll_free
push dword [ebp - 0x20]
call sub.MSVCRT.dll_free
pop ecx
mov ebx, esi
pop ecx
jmp 0x41170b
push dword [ebp - 0x48]
mov esi, dword [ebp - 0xfc]
call sub.MSVCRT.dll_free
push dword [ebp - 0x20]
call sub.MSVCRT.dll_free
pop ecx
jmp 0x4116fa
cmp dword [ebp - 0x34], ebx
jne 0x4115c8
push str.setup.exe
lea ecx, [ebp - 0x38]
call fcn.0040bd9e
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0040bb69
push dword [eax]
call fcn.0040cf76
push dword [ebp - 0x20]
neg al
sbb al, al
inc al
mov byte [ebp - 1], al
call sub.MSVCRT.dll_free
cmp byte [ebp - 1], bl
pop ecx
je 0x4115c8
cmp byte [ebp + 0xb], bl
jne 0x411484
push str.Can_not_find_setup.exe
push ebx
call fcn.0040e162
jmp 0x411484
lea eax, [ebp - 0xd4]
lea ecx, [ebp - 0x20]
push eax
call fcn.0040709a
lea eax, [ebp - 0x20]
push eax
call fcn.0040d3bc
push str.__T_
lea ecx, [ebp - 0x48]
call fcn.0040a9f1
lea eax, [ebp - 0x20]
lea ecx, [ebp - 0x38]
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.0040fc5c
push dword [ebp - 0x48]
call sub.MSVCRT.dll_free
push dword [ebp - 0x20]
call sub.MSVCRT.dll_free
pop ecx
pop ecx
push 0x418484
lea ecx, [ebp - 0x20]
call fcn.0040a9f1
lea eax, [ebp - 0xd4]
lea ecx, [ebp - 0x38]
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.0040fc5c
push dword [ebp - 0x20]
call sub.MSVCRT.dll_free
cmp dword [ebp - 0x28], ebx
pop ecx
je 0x411653
push 0x20
lea ecx, [ebp - 0x38]
call fcn.00406bc0
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x38]
push eax
call fcn.0040b9d5
lea eax, [ebp - 0x38]
mov dword [ebp - 0x194], 0x44
push eax
lea eax, [ebp - 0xe8]
push eax
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 0x190], ebx
mov dword [ebp - 0x18c], ebx
mov dword [ebp - 0x188], ebx
mov dword [ebp - 0x168], ebx
mov word [ebp - 0x162], bx
mov dword [ebp - 0x160], ebx
call fcn.0040ba0b
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.0040bb69
push dword [ebp - 0x20]
call sub.MSVCRT.dll_free
pop ecx
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x194]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x10]
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x4116e4
cmp byte [ebp + 0xb], bl
jne 0x4116d6
push ebx
call fcn.0040e1ff
push dword [ebp - 0x10]
call sub.MSVCRT.dll_free
pop ecx
jmp 0x411484
push dword [ebp - 0x140]
call edi
push dword [ebp - 0x10]
mov esi, dword [ebp - 0x144]
call sub.MSVCRT.dll_free
cmp esi, ebx
pop ecx
je 0x41170b
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call edi
lea ecx, [ebp - 0x150]
call fcn.00411968
push dword [ebp - 0x54]
call sub.MSVCRT.dll_free
push dword [ebp - 0xd4]
call sub.MSVCRT.dll_free
pop ecx
pop ecx
lea ecx, [ebp - 0xf8]
call fcn.0041178d
push dword [ebp - 0x38]
call sub.MSVCRT.dll_free
push dword [ebp - 0xe8]
call sub.MSVCRT.dll_free
pop ecx
pop ecx
push dword [ebp - 0x78]
call sub.MSVCRT.dll_free
push dword [ebp - 0x6c]
call sub.MSVCRT.dll_free
push dword [ebp - 0x60]
call sub.MSVCRT.dll_free
push dword [ebp - 0x84]
call sub.MSVCRT.dll_free
push dword [ebp - 0x2c]
call sub.MSVCRT.dll_free
push dword [ebp - 0xbc]
call sub.MSVCRT.dll_free
add esp, 0x18
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret 0x10