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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x198
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
lea esi, [ebx + 0x18]
push 3
mov byte [ebp - 5], 0
mov dword [ebp - 0x14], esi
call fcn.00415b64
mov esi, eax
push ebx
test esi, esi
je 0x404d44
call fcn.00408128
mov eax, dword [eax]
add esi, 4
push eax
push esi
mov dword [ebp - 0xc], esi
call fcn.0040904e
test eax, eax
jne 0x404cd1
mov edi, ebx
call fcn.0040722d
pop edi
pop esi
pop ebx
leave
ret 4
lea ecx, [ebx + 0x28]
push esi
mov dword [ebp - 0x10], ecx
call fcn.0040b298
mov eax, esi
lea edi, [ebp - 0x18]
call fcn.00409ef5
mov esi, 0x459e60
mov edi, esi
call fcn.004088e1
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
call fcn.0040464c
call fcn.00409ce0
push ebx
call fcn.00408128
push dword [eax]
lea eax, [ebp - 0x18]
call fcn.00404558
add ebx, 0x128
push ebx
lea ebx, [ebp - 0x18]
call fcn.004046a8
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
call fcn.0040464c
mov edi, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
add edi, 4
call fcn.004088e1
mov ebx, dword [ebp + 8]
mov byte [ebp - 5], 1
jmp 0x404d57
lea esi, [ebx + 0x28]
mov dword [ebp - 0x10], esi
call fcn.00408128
push eax
mov ecx, esi
call fcn.0040b298
lea esi, [ebx + 0x24]
lea edi, [ebx + 0x9c]
mov eax, esi
mov dword [ebp - 0x20], esi
call fcn.004088e1
cmp byte [0x459e5c], 0
je 0x404de2
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
push str.Full_command_line:
lea eax, [ebp - 0xc]
call fcn.00416c77
push eax
call fcn.00416c88
push eax
call fcn.00416c88
push eax
mov edi, 0x459e2c
mov eax, edi
call fcn.00416005
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
call fcn.0040464c
cmp byte [0x459e5c], 0
je 0x404de2
push dword [esi]
lea eax, [ebp - 0xc]
push str.Command_line_to_pass_to_MSI:
call fcn.00416c77
push eax
call fcn.00416c88
push eax
call fcn.00416c88
push eax
mov eax, edi
call fcn.00416005
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
call fcn.0040464c
lea edi, [ebx + 0x16c]
add ebx, 0x88
mov eax, ebx
mov dword [ebp - 0x18], edi
call fcn.004088e1
push 1
mov eax, edi
call fcn.004156d9
mov eax, ebx
lea edi, [ebp - 0xc]
call fcn.00409ef5
push dword [eax]
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
call fcn.0040464c
mov ebx, dword [ebp - 0x10]
call fcn.0040b4c5
mov edi, eax
xor ebx, ebx
cmp edi, ebx
je 0x404e55
mov eax, dword [ebp - 0x10]
lea esi, [ebp - 0xc]
call fcn.0040b6c1
mov esi, dword [ebp + 8]
push edi
call fcn.004080f6
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
call fcn.0040464c
xor eax, eax
inc eax
jmp 0x404cca
push dword [ebp - 0x10]
lea esi, [ebp - 0x194]
call fcn.00411c3f
mov esi, dword [ebp + 8]
test byte [esi + 0x6c], 2
mov dword [ebp - 0x3c], 0x451fb8
mov dword [ebp - 0x38], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
je 0x404ee9
lea eax, [ebp - 0x3c]
push eax
mov ecx, esi
call fcn.004054a8
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x194]
push eax
call fcn.0041238a
lea ebx, [ebp - 0x194]
call fcn.00412305
mov eax, dword [eax]
push ecx
sub eax, 0x10
mov edi, esp
call fcn.00409c66
push dword [ebp - 0x10]
add eax, 0x10
mov dword [edi], eax
call fcn.0040b337
call fcn.0041217f
push eax
push dword [ebp - 0x10]
call fcn.0040d5e9
lea edi, [esi + 0x104]
lea eax, [ebp - 0x13c]
call fcn.004088e1
push esi
lea eax, [ebp - 0x150]
call fcn.0040714b
xor ebx, ebx
mov esi, dword [ebp - 0x14]
push 6
call fcn.00415b64
mov esi, eax
cmp esi, ebx
je 0x404f09
push 1
lea eax, [ebp - 0x194]
push eax
call fcn.00411f67
jmp 0x404f46
mov esi, dword [ebp - 0x14]
push 7
call fcn.00415b64
mov esi, eax
cmp esi, ebx
je 0x404f1d
push 1
jmp 0x404f3b
mov esi, dword [ebp - 0x14]
push 8
call fcn.00415b64
mov esi, eax
cmp esi, ebx
je 0x404f46
push ebx
lea eax, [ebp - 0x194]
push eax
call fcn.00411f67
push ebx
lea ecx, [ebp - 0x194]
call fcn.0041204d
lea eax, [ebp - 0x194]
push eax
call fcn.00411f36
mov ebx, dword [ebp + 8]
test al, al
mov byte [ebx + 0x1c8], al
sete al
push ebx
mov byte [0x458598], al
call fcn.004054e1
push str.Advinst_
lea eax, [ebp - 0x14]
call fcn.00404558
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 0x10]
call fcn.0040b580
mov eax, dword [eax]
push dword [eax - 0xc]
push eax
lea eax, [ebp - 0x14]
call fcn.004022eb
mov eax, dword [ebp - 0xc]
add eax, 0xfffffff0
call fcn.0040464c
lea edi, [ebx + 0x140]
lea eax, [ebp - 0x14]
call fcn.004088e1
push dword [ebp - 0x14]
mov eax, 0x458e74
call fcn.0040edc4
test esi, esi
jne 0x40500d
cmp byte [0x458e80], 0
je 0x40500d
lea edi, [ebx + 0x134]
mov dword [ebx + 0xb8], 3
call fcn.0040e00f
inc esi
push esi
push 0xcc
call fcn.00416e36
pop ecx
pop ecx
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
call fcn.0040464c
lea ebx, [ebp - 0x38]
call fcn.004097ee
lea eax, [ebp - 0x194]
call fcn.0040529b
mov eax, esi
jmp 0x404cca
mov edi, dword [ebp - 0x18]
push 0
mov esi, 0xdc
push esi
call fcn.0041576b
test byte [ebx + 0x6c], 2
je 0x405041
lea eax, [ebp - 0x194]
mov dword [ebp - 0x24], eax
push esi
lea esi, [ebp - 0x2c]
mov eax, ebx
mov dword [ebp - 0x2c], 0x44a924
mov dword [ebp - 0x28], ebx
call fcn.00406051
lea eax, [ebp - 0x194]
push eax
call fcn.0040559c
test al, al
je 0x405055
xor esi, esi
jmp 0x404fe8
test byte [ebx + 0x6c], 4
je 0x405082
push 0x8a
lea esi, [ebp - 0x2c]
mov eax, ebx
mov dword [ebp - 0x2c], 0x44a92c
mov dword [ebp - 0x28], ebx
call fcn.00406051
cmp byte [ebp - 0x24], 0
je 0x405082
xor esi, esi
inc esi
jmp 0x404fe8
lea eax, [ebp - 0x194]
push eax
push ebx
call fcn.0040733d
test al, al
jne 0x40507a
cmp byte [ebp - 5], al
jne 0x4050b1
mov edx, ebx
call fcn.00407186
test al, al
je 0x4050b1
mov edi, ebx
call fcn.0040722d
mov esi, eax
jmp 0x404fe8
lea eax, [ebp - 0x194]
push eax
push ebx
call fcn.004068a7
xor edi, edi
cmp eax, edi
je 0x4050c9
mov dword [ebx + 0x10], eax
jmp 0x4050aa
mov eax, dword [ebp - 0x16c]
cmp dword [eax - 0xc], edi
je 0x4050db
mov byte [ebp - 0x103], 1
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x54], eax
mov al, byte [ebx + 0x1c8]
mov byte [ebp - 0x48], al
lea eax, [ebp - 0x58]
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x138]
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x194]
mov dword [ebp - 0x60], eax
push 0xec
lea esi, [ebp - 0x6c]
mov eax, ebx
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x4c], edi
mov dword [ebp - 0x6c], 0x44a984
call fcn.00406051
cmp byte [ebp - 0x5c], 0
je 0x40507a
mov eax, ebx
call fcn.00405658
lea eax, [ebp - 0x194]
push eax
push ebx
call fcn.004056b6
push ebx
lea eax, [ebp - 0x194]
call fcn.0040584d
cmp byte [ebx + 0x1c0], 0
mov dword [ebp + 8], eax
je 0x405162
or esi, 0xffffffff
jmp 0x404fe8
mov eax, dword [ebp - 0x20]
mov eax, dword [eax]
sub eax, 0x10
call fcn.00409c66
add eax, 0x10
mov dword [ebp - 0x1c], eax
cmp dword [eax - 0xc], edi
jne 0x4051a9
lea eax, [ebp - 0x184]
lea edi, [ebp - 0x1c]
call fcn.004088e1
push 0
mov eax, edi
push eax
lea eax, [ebp - 0x20]
push eax
call fcn.00416535
add esp, 0xc
call fcn.004088e1
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
call fcn.0040464c
mov eax, dword [ebp - 0x18]
call fcn.00415800
lea eax, [ebp - 0x3c]
push eax
push dword [ebp - 0x10]
lea eax, [ebp - 0x1c]
push eax
lea edi, [ebp - 0xa0]
call fcn.004170b9
test byte [ebx + 0x6c], 2
je 0x4051de
cmp dword [ebp + 8], 0
jne 0x4051de
push ebx
mov esi, edi
call fcn.00405ee2
mov dword [ebp + 8], eax
cmp dword [ebp + 8], 0xffffffff
jne 0x4051ee
push 0x459e64
call fcn.00418505
cmp dword [ebp + 8], 0
jne 0x40520f
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x194]
push eax
lea eax, [ebp - 0x1c]
push eax
push ebx
call fcn.0040608a
mov dword [ebp + 8], eax
mov eax, ebx
call fcn.004086de
lea edi, [ebp - 0xa0]
call fcn.004176b8
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x40], eax
push 0x10a
lea esi, [ebp - 0x44]
mov eax, ebx
mov dword [ebp - 0x44], 0x44a994
call fcn.00406051
lea edi, [ebp - 0x78]
call fcn.00409768
mov eax, dword [ebp - 0x80]
add eax, 0xfffffff0
call fcn.0040464c
mov eax, dword [ebp - 0x84]
add eax, 0xfffffff0
call fcn.0040464c
mov eax, dword [ebp - 0x8c]
add eax, 0xfffffff0
call fcn.0040464c
mov eax, dword [ebp - 0x90]
add eax, 0xfffffff0
call fcn.0040464c
mov eax, dword [ebp - 0x94]
add eax, 0xfffffff0
call fcn.0040464c
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
call fcn.0040464c
mov esi, dword [ebp + 8]
jmp 0x404fe8