Function at 0x411130
Capabilities:
Accept command line arguments
Create process on windows
Set current directory

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0x14c
push ebx
push esi
push edi
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov eax, dword [ebp + 0x70]
mov dword [0x41f470], eax
lea eax, [ebp - 0x88]
call fcn.004063ec
lea eax, [ebp + 0x40]
call fcn.004063ec
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ebx, eax
lea eax, [ebp + 0x5c]
call fcn.00402175
lea ebx, [ebp + 0x40]
lea ecx, [ebp - 0x88]
lea edx, [ebp + 0x5c]
call fcn.00409793
push dword [ebp + 0x5c]
call fcn.00411a77
pop ecx
push 0x11
lea eax, [ebp + 0x5c]
push eax
call fcn.0040c241
mov edi, eax
mov eax, 0x41f564
call fcn.0040990b
push dword [ebp + 0x5c]
call fcn.00411a77
pop ecx
push 0x12
lea eax, [ebp + 0x5c]
push eax
call fcn.0040c241
mov edi, eax
mov eax, 0x41f570
call fcn.0040990b
push dword [ebp + 0x5c]
call fcn.00411a77
pop ecx
push 0x16
lea eax, [ebp + 0x5c]
push eax
call fcn.0040c241
mov edi, eax
mov eax, 0x41f57c
call fcn.0040990b
push dword [ebp + 0x5c]
call fcn.00411a77
pop ecx
push 0x17
lea eax, [ebp + 0x5c]
push eax
call fcn.0040c241
mov edi, eax
mov eax, 0x41f588
call fcn.0040990b
push dword [ebp + 0x5c]
call fcn.00411a77
pop ecx
push 0xf
lea eax, [ebp + 0x5c]
push eax
call fcn.0040c241
mov edi, eax
mov eax, 0x41f594
call fcn.0040990b
push dword [ebp + 0x5c]
call fcn.00411a77
pop ecx
lea eax, [ebp - 0x1c]
call fcn.004063ec
mov ebx, 0x41a6e0
lea eax, [ebp + 0x34]
call fcn.00402175
mov esi, str.__k
push esi
push dword [ebp + 0x40]
xor bl, bl
call fcn.0041247a
mov edi, eax
test edi, edi
pop ecx
pop ecx
jne 0x41126c
mov esi, 0x41a98c
push esi
push dword [ebp + 0x40]
call fcn.0041247a
mov edi, eax
test edi, edi
pop ecx
pop ecx
je 0x411270
mov bl, 1
jmp 0x41129c
mov esi, 0x41a984
push esi
push dword [ebp + 0x40]
call fcn.0041247a
mov edi, eax
test edi, edi
pop ecx
pop ecx
jne 0x41129c
mov esi, 0x41a97c
push esi
push dword [ebp + 0x40]
call fcn.0041247a
mov edi, eax
test edi, edi
pop ecx
pop ecx
je 0x4112c2
push esi
call fcn.0041200d
lea eax, [edi + eax*2]
test eax, eax
pop ecx
je 0x4112c2
test bl, bl
lea ecx, [ebp + 0x34]
push ecx
push eax
mov ecx, 0x41a974
jne 0x4112bd
mov ecx, 0x41a96c
call fcn.00411082
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x4112e7
add eax, eax
push eax
call fcn.00411ade
push dword [ebp + 0x34]
mov ebx, eax
push ebx
call fcn.004124d8
add esp, 0xc
lea eax, [ebp - 0x1c]
call fcn.0040a474
push dword [ebp + 0x34]
call fcn.00411a77
mov esi, dword [ebp + 0x40]
mov dword [esp], 0x41a964
push esi
call fcn.0041247a
test eax, eax
pop ecx
pop ecx
jne 0x41133c
push 0x41a95c
push esi
call fcn.0041247a
test eax, eax
pop ecx
pop ecx
jne 0x41133c
push 0x41a954
push esi
call fcn.0041247a
test eax, eax
pop ecx
pop ecx
jne 0x41133c
push 0x41a94c
push esi
call fcn.0041247a
test eax, eax
pop ecx
pop ecx
mov byte [ebp + 0x58], 0
je 0x411340
mov byte [ebp + 0x58], 1
lea eax, [ebp + 0x34]
call fcn.004063ec
lea eax, [ebp + 0x34]
push eax
push dword [0x41f470]
call fcn.0040a7a6
lea eax, [ebp - 0x28]
call fcn.00409f24
mov ecx, dword [ebp + 0x34]
push str.___InstallEnd__
push str.___Install__UTF_8_
lea edx, [ebp - 0x28]
call fcn.00410e30
test al, al
jne 0x411392
cmp byte [ebp + 0x58], al
jne 0x41138a
push dword [0x41f564]
push 0
call fcn.0040d00f
xor ebx, ebx
inc ebx
jmp 0x411954
lea eax, [ebp + 0x40]
push eax
call fcn.00409af0
lea eax, [ebp + 0x40]
push eax
call fcn.00409a92
mov ebx, 0x41a944
lea eax, [ebp + 0x4c]
mov byte [ebp + 0x73], 0
call fcn.00402175
mov esi, eax
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x40]
push eax
push 2
pop ecx
call fcn.00409a05
mov esi, dword [esi]
push dword [eax]
mov ecx, esi
call fcn.00409d00
push dword [ebp + 0x5c]
mov ebx, eax
neg ebx
sbb bl, bl
inc bl
call fcn.00411a77
push dword [ebp + 0x4c]
call fcn.00411a77
test bl, bl
pop ecx
pop ecx
je 0x411427
push 2
lea eax, [ebp + 0x5c]
push eax
lea eax, [ebp + 0x40]
mov byte [ebp + 0x73], 1
call fcn.00409937
mov edi, eax
lea eax, [ebp + 0x40]
call fcn.0040990b
push dword [ebp + 0x5c]
call fcn.00411a77
pop ecx
lea eax, [ebp + 0x40]
push eax
call fcn.00409af0
lea eax, [ebp + 0x40]
push eax
call fcn.00409a92
lea eax, [ebp + 0x10]
call fcn.004063ec
xor edi, edi
cmp dword [ebp - 0x24], edi
je 0x411552
lea eax, [ebp - 0x3c]
call fcn.0041198e
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.0040a0af
test al, al
jne 0x411475
cmp byte [ebp + 0x58], al
jne 0x411464
push dword [0x41f570]
push edi
call fcn.0040d00f
lea eax, [ebp - 0x3c]
push eax
call fcn.004119a7
xor ebx, ebx
inc ebx
jmp 0x41194b
mov ebx, str.Title
lea eax, [ebp + 0x5c]
call fcn.00402175
lea ecx, [ebp + 0x5c]
lea esi, [ebp - 0x3c]
lea ebx, [ebp + 0x4c]
call fcn.0040a315
push dword [ebp + 0x5c]
call fcn.00411a77
pop ecx
mov ebx, str.BeginPrompt
lea eax, [ebp + 0x5c]
call fcn.00402175
lea ecx, [ebp + 0x5c]
lea ebx, [ebp + 0x28]
call fcn.0040a315
push dword [ebp + 0x5c]
call fcn.00411a77
xor ebx, ebx
cmp dword [ebp + 0x2c], ebx
pop ecx
je 0x4114ff
cmp byte [ebp + 0x73], bl
jne 0x4114ff
cmp byte [ebp + 0x58], bl
jne 0x4114ff
push 0x24
push dword [ebp + 0x4c]
push dword [ebp + 0x28]
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
je 0x4114ff
push dword [ebp + 0x28]
call fcn.00411a77
push dword [ebp + 0x4c]
call fcn.00411a77
pop ecx
pop ecx
lea eax, [ebp - 0x3c]
push eax
call fcn.004119a7
jmp 0x41194b
mov ebx, str.RunProgram
lea eax, [ebp + 0x5c]
call fcn.00402175
lea ecx, [ebp + 0x5c]
lea esi, [ebp - 0x3c]
lea ebx, [ebp + 0x1c]
call fcn.0040a315
mov edi, eax
lea eax, [ebp + 0x10]
call fcn.0040990b
push dword [ebp + 0x1c]
call fcn.00411a77
push dword [ebp + 0x5c]
call fcn.00411a77
push dword [ebp + 0x28]
call fcn.00411a77
push dword [ebp + 0x4c]
call fcn.00411a77
add esp, 0x10
lea eax, [ebp - 0x3c]
push eax
call fcn.004119a7
xor edi, edi
lea esi, [ebp - 4]
call fcn.00410def
push dword [0x41ea94]
mov eax, esi
call fcn.0040b5b6
test al, al
jne 0x411584
cmp byte [ebp + 0x58], al
jne 0x41157c
push dword [0x41f57c]
push edi
call fcn.0040d00f
xor ebx, ebx
inc ebx
jmp 0x411942
push dword [ebp + 0x58]
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 0x5c]
push eax
lea ecx, [ebp]
call fcn.0040a873
push eax
lea eax, [ebp + 0x34]
push eax
call fcn.004108bd
push dword [ebp + 0x5c]
mov esi, eax
call fcn.00411a77
cmp esi, edi
pop ecx
je 0x4115fa
xor ebx, ebx
inc ebx
cmp byte [ebp + 0x58], 0
jne 0x411942
cmp esi, ebx
jne 0x4115c9
push dword [0x41f588]
jmp 0x4115d7
cmp esi, 0x80004005
jne 0x4115e2
push dword [0x41f594]
push edi
call fcn.0040d00f
jmp 0x411942
cmp esi, 0x80004004
je 0x411942
push esi
push edi
call fcn.0040d03e
jmp 0x411942
lea eax, [ebp - 0x94]
push eax
call fcn.00410fb2
push dword [ebp]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
test eax, eax
jne 0x41161b
xor ebx, ebx
inc ebx
jmp 0x411937
cmp dword [ebp + 0x14], edi
jne 0x411657
mov ebx, str.Setup.exe
lea eax, [ebp + 0x10]
call fcn.0040a474
lea eax, [ebp + 0x5c]
push eax
lea ecx, [ebp + 0x10]
call fcn.0040d8c4
push dword [eax]
call fcn.0040bbff
push dword [ebp + 0x5c]
mov bl, al
neg bl
sbb bl, bl
inc bl
call fcn.00411a77
test bl, bl
pop ecx
jne 0x411613
xor edi, edi
lea eax, [ebp + 0x1c]
mov dword [ebp - 0xe4], 0x44
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xdc], edi
mov dword [ebp - 0xd8], edi
mov dword [ebp - 0xb8], edi
mov word [ebp - 0xb2], di
mov dword [ebp - 0xb0], edi
call fcn.00409f24
push dword [ebp]
lea eax, [ebp + 0x1c]
call fcn.0040b049
test al, al
jne 0x4116ec
lea eax, [ebp + 0x4c]
call fcn.004063ec
lea eax, [ebp + 0x5c]
push eax
lea ecx, [ebp]
call fcn.0040a873
push dword [eax]
lea eax, [ebp + 0x4c]
call fcn.0040b003
push dword [ebp + 0x5c]
call fcn.00411a77
pop ecx
lea eax, [ebp + 0x5c]
push eax
lea ecx, [ebp + 0x4c]
call fcn.0040d8c4
mov edi, eax
lea eax, [ebp + 0x1c]
call fcn.0040b60c
push dword [ebp + 0x5c]
call fcn.00411a77
push dword [ebp + 0x4c]
call fcn.00411a77
pop ecx
pop ecx
lea edi, [ebp + 0x10]
lea eax, [ebp + 0x28]
call fcn.004068aa
mov ebx, 0x41a8ec
lea eax, [ebp + 0x5c]
call fcn.00402175
lea eax, [ebp + 0x4c]
push eax
lea ecx, [ebp + 0x1c]
call fcn.0040a873
lea ecx, [ebp + 0x5c]
mov ebx, eax
push ecx
lea eax, [ebp + 0x28]
call fcn.0040d9b3
push dword [ebp + 0x4c]
call fcn.00411a77
push dword [ebp + 0x5c]
call fcn.00411a77
pop ecx
pop ecx
push 0x20
lea esi, [ebp + 0x28]
call fcn.00406405
lea edi, [ebp + 0x40]
call fcn.0040a73a
lea edi, [ebp + 0x1c]
lea eax, [ebp - 0xa0]
call fcn.00409f3d
mov eax, edi
call fcn.0040bf49
lea eax, [ebp + 0x4c]
call fcn.00409f24
lea eax, [ebp + 0x5c]
push eax
lea ecx, [ebp + 0x34]
call fcn.0040d8c4
push dword [eax]
lea eax, [ebp + 0x4c]
call fcn.0040b049
push dword [ebp + 0x5c]
mov bl, al
neg bl
sbb bl, bl
inc bl
call fcn.00411a77
test bl, bl
pop ecx
je 0x4117c5
lea eax, [ebp + 0x5c]
call fcn.004063ec
push dword [ebp + 0x34]
lea eax, [ebp + 0x5c]
call fcn.0040b003
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp + 0x5c]
call fcn.0040d8c4
mov edi, eax
lea eax, [ebp + 0x4c]
call fcn.0040b60c
push dword [ebp - 0x10]
call fcn.00411a77
push dword [ebp + 0x5c]
call fcn.00411a77
pop ecx
pop ecx
lea eax, [ebp + 0x4c]
push eax
push str.__m_
lea eax, [ebp - 0x6c]
call fcn.0040b5d2
push eax
lea eax, [ebp - 0x54]
push eax
lea ecx, [ebp + 0x28]
call fcn.0040d8c4
push eax
push 0x41a8e0
lea eax, [ebp - 0x60]
call fcn.0040b5d2
lea ecx, [ebp + 0x5c]
push ecx
mov ecx, eax
call fcn.0040b767
lea ecx, [ebp - 0x10]
push ecx
mov ecx, eax
call fcn.0040b767
lea ecx, [ebp - 0x48]
push ecx
mov ecx, eax
call fcn.0040b767
push dword [ebp - 0x10]
call fcn.00411a77
push dword [ebp + 0x5c]
call fcn.00411a77
push dword [ebp - 0x60]
call fcn.00411a77
push dword [ebp - 0x54]
call fcn.00411a77
push dword [ebp - 0x6c]
call fcn.00411a77
add esp, 0x14
push 0x41a8dc
lea eax, [ebp + 0x5c]
call fcn.0040b5d2
push eax
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0040d8c4
push eax
push str.___k_
lea eax, [ebp - 0x60]
call fcn.0040b5d2
lea ecx, [ebp - 0x54]
push ecx
mov ecx, eax
call fcn.0040b767
lea ecx, [ebp - 0x6c]
push ecx
mov ecx, eax
call fcn.0040b767
mov edi, eax
lea esi, [ebp - 0x48]
call fcn.0040b823
push dword [ebp - 0x6c]
call fcn.00411a77
push dword [ebp - 0x54]
call fcn.00411a77
push dword [ebp - 0x60]
call fcn.00411a77
push dword [ebp - 0x10]
call fcn.00411a77
push dword [ebp + 0x5c]
call fcn.00411a77
add esp, 0x14
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0xe4]
push eax
push dword [ebp]
xor esi, esi
push esi
push esi
push esi
push esi
push esi
push dword [ebp - 0x48]
push esi
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x4118de
push esi
call fcn.0040d080
xor ebx, ebx
inc ebx
jmp 0x411909
push 0xffffffffffffffff
push dword [ebp - 0x7c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp + 0xc]
push eax
push dword [ebp - 0x7c]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push dword [ebp - 0x78]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [ebp - 0x7c]
call esi
mov ebx, dword [ebp + 0xc]
push dword [ebp - 0x48]
call fcn.00411a77
push dword [ebp + 0x4c]
call fcn.00411a77
push dword [ebp - 0xa0]
call fcn.00411a77
push dword [ebp + 0x28]
call fcn.00411a77
push dword [ebp + 0x1c]
call fcn.00411a77
add esp, 0x14
lea esi, [ebp - 0x94]
call fcn.00410fe1
lea eax, [ebp - 4]
push eax
call fcn.00410dfd
push dword [ebp + 0x10]
call fcn.00411a77
pop ecx
push dword [ebp - 0x28]
call fcn.00411a77
push dword [ebp + 0x34]
call fcn.00411a77
push dword [ebp - 0x1c]
call fcn.00411a77
push dword [ebp + 0x40]
call fcn.00411a77
push dword [ebp - 0x88]
call fcn.00411a77
add esp, 0x14
pop edi
pop esi
mov eax, ebx
pop ebx
add ebp, 0x68
leave
ret 0x10