Function at 0x405b24
Capabilities:
Accept command line arguments
Set current directory

Disassembly:
sub esp, 0xe8
push ebx
push ebp
mov ebp, ecx
mov byte [esp + 0xf], 0
push esi
push edi
push 3
lea edi, [ebp + 0x24]
mov ecx, edi
call fcn.00414203
xor ebx, ebx
mov ecx, ebp
inc ebx
mov esi, eax
mov dword [esp + 0x1c], ebx
call fcn.004089c5
test esi, esi
je 0x405bf0
push dword [eax]
lea ecx, [esi + 4]
mov dword [esp + 0x1c], ecx
call fcn.0040a0e8
test eax, eax
jne 0x405b77
mov ecx, ebp
call fcn.00407ca5
jmp 0x40611c
push dword [esp + 0x18]
lea ecx, [ebp + 0x38]
call fcn.0040c303
mov esi, dword [esp + 0x18]
lea ecx, [esp + 0x10]
mov edx, esi
call fcn.0040ad8c
push eax
mov ecx, 0x449ac8
call fcn.00409e7f
mov ecx, dword [esp + 0x10]
lea ecx, [ecx - 0x10]
call fcn.004052ff
mov ecx, 0x449ac8
call fcn.0040ab6c
mov ecx, ebp
call fcn.004089c5
lea ecx, [esp + 0x18]
push dword [eax]
call fcn.00404f61
lea eax, [esp + 0x18]
push eax
lea ecx, [ebp + 0x138]
call fcn.00405361
mov ecx, dword [esp + 0x18]
lea ecx, [ecx - 0x10]
call fcn.004052ff
push esi
lea ecx, [ebp + 8]
call fcn.00409e7f
mov byte [esp + 0x17], bl
jmp 0x405bf9
push eax
lea ecx, [ebp + 0x38]
call fcn.0040c303
lea eax, [ebp + 0x30]
push eax
lea ecx, [ebp + 0xac]
call fcn.00409e7f
cmp byte [0x449ac4], 0
je 0x405c96
lea ecx, [esp + 0x10]
call fcn.00415236
mov esi, eax
push str.Full_command_line:
mov ecx, esi
call fcn.004028da
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
mov ecx, esi
call fcn.0041524a
push eax
mov ecx, 0x449a94
call fcn.0041466e
mov ecx, dword [esp + 0x10]
lea ecx, [ecx - 0x10]
call fcn.004052ff
cmp byte [0x449ac4], 0
je 0x405c96
mov edi, dword [ebp + 0x30]
lea ecx, [esp + 0x10]
call fcn.00415236
mov esi, eax
push str.Command_line_to_pass_to_MSI:
mov ecx, esi
call fcn.004028da
push edi
mov ecx, esi
call fcn.0041524a
push eax
mov ecx, 0x449a94
call fcn.0041466e
mov ecx, dword [esp + 0x10]
lea ecx, [ecx - 0x10]
call fcn.004052ff
lea edi, [ebp + 0x24]
lea esi, [ebp + 0x98]
lea ecx, [ebp + 0x17c]
push esi
call fcn.00409e7f
push ebx
lea ecx, [ebp + 0x17c]
call fcn.00413db6
mov edx, esi
lea ecx, [esp + 0x10]
call fcn.0040ad8c
push dword [eax]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov ecx, dword [esp + 0x10]
lea ecx, [ecx - 0x10]
call fcn.004052ff
lea esi, [ebp + 0x38]
mov ecx, esi
call fcn.0040c54b
mov dword [esp + 0x10], eax
test eax, eax
je 0x405d0e
lea eax, [esp + 0x18]
mov ecx, esi
push eax
call fcn.0040c75a
push eax
push dword [esp + 0x14]
mov ecx, ebp
call fcn.0040897f
mov ecx, dword [esp + 0x18]
lea ecx, [ecx - 0x10]
call fcn.004052ff
jmp 0x40611a
push esi
lea ecx, [esp + 0x74]
call fcn.004133e4
xor eax, eax
mov dword [esp + 0x30], 0x443a10
test byte [ebp + 0x7c], 2
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
je 0x405db1
lea eax, [esp + 0x30]
mov ecx, ebp
push eax
call fcn.00406187
lea eax, [ebp + 0x1f8]
push eax
lea ecx, [esp + 0x34]
call fcn.0041543b
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x74]
call fcn.004138a6
lea ecx, [ebp + 4]
mov eax, dword [ecx]
call dword [eax + 0x28]
push ecx
mov esi, esp
mov ecx, dword [eax]
sub ecx, 0x10
call fcn.0040ab13
add eax, 0x10
mov dword [esi], eax
lea esi, [ebp + 0x38]
mov ecx, esi
call fcn.0040c3b9
mov ecx, ebp
call fcn.00409600
push eax
mov ecx, esi
call fcn.0040e2b8
lea eax, [ebp + 0x240]
push eax
lea ecx, [ebp + 0x114]
call fcn.00409e7f
lea eax, [ebp + 0x22c]
mov ecx, ebp
push eax
call fcn.00407bcb
push 6
mov ecx, edi
call fcn.00414203
mov dword [esp + 0x18], eax
test eax, eax
je 0x405dcc
push ebx
mov ecx, ebp
call fcn.004092b7
jmp 0x405e03
push 7
mov ecx, edi
call fcn.00414203
mov dword [esp + 0x18], eax
test eax, eax
je 0x405de0
push ebx
jmp 0x405dfc
push 8
mov ecx, edi
call fcn.00414203
mov dword [esp + 0x18], eax
test eax, eax
je 0x405e03
push 0
mov ecx, ebp
call fcn.004092b7
push 0
mov ecx, ebp
call fcn.00409385
mov ecx, ebp
call fcn.00409282
test al, al
mov byte [ebp + 0x1ec], al
mov ecx, ebp
sete byte [0x448988]
call fcn.004061c4
push str.Advinst_
lea ecx, [esp + 0x14]
call fcn.00404f61
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.0040c61b
lea ecx, [esp + 0x10]
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
call fcn.00402b67
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff0
call fcn.004052ff
mov edi, dword [esp + 0x10]
push edi
call fcn.0040f9be
cmp dword [esp + 0x18], 0
jne 0x405e8a
cmp byte [0x448aa4], 0
je 0x405e8a
mov dl, bl
mov dword [ebp + 0xc8], 3
mov ecx, 0xcc
call fcn.004162d2
jmp 0x405f8d
push ecx
push 0
push 0xdc
lea ecx, [ebp + 0x17c]
call fcn.00413e2a
test byte [ebp + 0x7c], 2
je 0x405ec0
push 0xdc
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0x440088
push eax
mov ecx, ebp
mov dword [esp + 0x2c], ebp
call fcn.00406a4a
mov ecx, ebp
call fcn.00406277
test al, al
je 0x405ed5
and dword [esp + 0x1c], 0
jmp 0x405f8d
test byte [ebp + 0x7c], 4
je 0x405f03
push 0x8a
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0x440080
push eax
mov ecx, ebp
mov dword [esp + 0x2c], ebp
call fcn.00406a4a
cmp byte [esp + 0x28], 0
jne 0x405f89
lea eax, [esp + 0x70]
mov ecx, ebp
push eax
call fcn.00407dc4
test al, al
jne 0x405f89
mov eax, dword [esp + 0x98]
cmp dword [eax - 0xc], 0
je 0x405f2c
lea ecx, [esp + 0xd4]
call fcn.0042084b
and dword [esp + 0x50], 0
lea eax, [ebp + 0x17c]
and dword [esp + 0x54], 0
mov ecx, ebp
mov dword [esp + 0x48], eax
mov al, byte [ebp + 0x1ec]
mov byte [esp + 0x58], al
lea eax, [esp + 0x48]
mov dword [esp + 0x60], eax
lea eax, [esp + 0xd4]
mov dword [esp + 0x64], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x5c]
push 0xec
push eax
mov dword [esp + 0x54], esi
mov dword [esp + 0x64], 0x440078
call fcn.00406a4a
cmp byte [esp + 0x6c], 0
jne 0x405f96
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x1c]
jmp 0x406100
mov ecx, ebp
call fcn.00406336
lea eax, [esp + 0x70]
mov ecx, ebp
push eax
call fcn.0040656d
cmp byte [ebp + 0x1f0], 0
mov ebx, eax
mov dword [esp + 0x1c], ebx
je 0x405fc0
or ebx, 0xffffffff
jmp 0x406100
cmp byte [esp + 0x17], 0
jne 0x405fe0
mov ecx, ebp
call fcn.00407c08
test al, al
je 0x405fe0
mov ecx, ebp
call fcn.00407ca5
mov ebx, eax
jmp 0x406100
mov ecx, ebp
call fcn.00407208
mov ecx, ebp
call fcn.00406394
mov ecx, dword [ebp + 0x30]
sub ecx, 0x10
call fcn.0040ab13
add eax, 0x10
mov dword [esp + 0x2c], eax
cmp dword [eax - 0xc], 0
jne 0x40602e
push 0
lea edx, [ebp + 0x1f8]
lea ecx, [esp + 0x24]
call fcn.004149c7
pop ecx
push eax
lea ecx, [esp + 0x30]
call fcn.00409e7f
mov ecx, dword [esp + 0x20]
lea ecx, [ecx - 0x10]
call fcn.004052ff
lea ecx, [ebp + 0x188]
call fcn.0040f4f8
cmp ebx, 0xffffffff
jne 0x406048
mov ecx, 0x449acc
call fcn.00416762
test ebx, ebx
jne 0x406061
lea eax, [esp + 0x70]
mov ecx, ebp
push eax
lea eax, [esp + 0x30]
push eax
call fcn.00406a91
mov ebx, eax
jmp 0x4060d0
cmp byte [ebp + 0x1ec], 0
jne 0x4060d0
push 0
lea ecx, [ebp + 0x17c]
call fcn.00413db6
push dword [ebp + 0x14]
mov ebx, eax
lea eax, [esp + 0x24]
push 0x114
push eax
call fcn.0040569b
add esp, 0xc
mov ecx, dword [eax]
sub ecx, 0x10
call fcn.0040ab13
mov ecx, dword [esp + 0x20]
lea esi, [eax + 0x10]
lea ecx, [ecx - 0x10]
mov dword [esp + 0x10], esi
call fcn.004052ff
call dword [sym.imp.USER32.dll_GetActiveWindow]
push 0x10
push ebx
lea edx, [esp + 0x18]
mov ecx, eax
call fcn.00410fa4
pop ecx
pop ecx
lea ecx, [esi - 0x10]
call fcn.004052ff
mov ebx, dword [esp + 0x1c]
lea esi, [ebp + 0x38]
mov ecx, ebp
call fcn.00409188
push 0x10a
lea eax, [esp + 0x44]
mov dword [esp + 0x44], 0x440068
push eax
mov ecx, ebp
mov dword [esp + 0x4c], esi
call fcn.00406a4a
mov ecx, dword [esp + 0x2c]
lea ecx, [ecx - 0x10]
call fcn.004052ff
lea ecx, [edi - 0x10]
call fcn.004052ff
lea ecx, [esp + 0x34]
call fcn.0040a74d
lea ecx, [esp + 0x70]
call fcn.00406129
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret 4