Function at 0x420b20
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x11bc
call fcn.0041e5d0
mov eax, dword [0x429130]
xor eax, ebp
mov dword [ebp - 8], eax
push esi
mov dword [ebp - 0x1070], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x1040], 0
mov dword [ebp - 0x1060], 0
mov dword [ebp - 0x103c], 0
mov dword [ebp - 0x106c], 0
mov dword [ebp - 0x10a0], 0
mov dword [ebp - 0x109c], 0
mov dword [ebp - 0x102c], 0
mov dword [ebp - 0x1098], 0
mov dword [ebp - 0x1038], 0
mov dword [ebp - 0x1078], 0
mov dword [ebp - 0x1074], 0
mov dword [ebp - 0x1068], 0xffffffff
mov dword [ebp - 0x1034], 5
lea ecx, [ebp - 0x24]
call fcn.00401160
push 0x425ba0
lea ecx, [ebp - 0x105c]
call fcn.00401190
push 0x425ba4
lea ecx, [ebp - 0x1094]
call fcn.00401190
mov dword [ebp - 0x1030], 0
mov dword [ebp - 0x1064], 1
mov eax, dword [ebp + 8]
mov dword [0x42b020], eax
lea ecx, [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0x1040], eax
cmp dword [ebp - 0x1040], 0
jne 0x420c7e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1070], eax
mov edx, dword [ebp - 0x1070]
push edx
call fcn.00401da0
add esp, 4
mov dword [ebp - 0x1070], eax
cmp dword [ebp - 0x1070], 0
jl 0x420c63
mov dword [ebp - 0x1070], 0x80004005
mov eax, dword [ebp - 0x1070]
push eax
push 0x465
push str.._setupexe.cpp
call fcn.0040e572
jmp 0x421703
mov dword [ebp - 0x10a4], 1
jmp 0x420c99
mov ecx, dword [ebp - 0x10a4]
add ecx, 1
mov dword [ebp - 0x10a4], ecx
mov edx, dword [ebp - 0x10a4]
cmp edx, dword [ebp - 4]
jge 0x4211ab
mov eax, dword [ebp - 0x10a4]
mov ecx, dword [ebp - 0x1040]
mov edx, dword [ecx + eax*4]
movzx eax, word [edx]
cmp eax, 0x2d
je 0x420cda
mov ecx, dword [ebp - 0x10a4]
mov edx, dword [ebp - 0x1040]
mov eax, dword [edx + ecx*4]
movzx ecx, word [eax]
cmp ecx, 0x2f
jne 0x42118e
push 0xffffffffffffffff
push 0x425bb8
push 0xffffffffffffffff
mov edx, dword [ebp - 0x10a4]
mov eax, dword [ebp - 0x1040]
mov ecx, dword [eax + edx*4]
add ecx, 2
push ecx
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
je 0x420d30
push 0xffffffffffffffff
push str.extract
push 0xffffffffffffffff
mov edx, dword [ebp - 0x10a4]
mov eax, dword [ebp - 0x1040]
mov ecx, dword [eax + edx*4]
add ecx, 2
push ecx
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x420d89
mov edx, dword [ebp - 0x10a4]
add edx, 1
cmp edx, dword [ebp - 4]
jl 0x420d56
mov dword [ebp - 0x1070], 0x80070057
cmp dword [ebp - 0x1070], 0
jge 0x420d56
jmp 0x421703
mov dword [ebp - 0x1060], 1
mov eax, dword [ebp - 0x10a4]
add eax, 1
mov dword [ebp - 0x10a4], eax
mov ecx, dword [ebp - 0x10a4]
mov edx, dword [ebp - 0x1040]
mov eax, dword [edx + ecx*4]
mov dword [ebp - 0x10a0], eax
jmp 0x42118c
push 0xffffffffffffffff
push 0x425bd0
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x10a4]
mov edx, dword [ebp - 0x1040]
mov eax, dword [edx + ecx*4]
add eax, 2
push eax
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x420e0d
mov ecx, dword [ebp - 0x10a4]
add ecx, 1
cmp ecx, dword [ebp - 4]
jl 0x420dda
mov dword [ebp - 0x1070], 0x80070057
cmp dword [ebp - 0x1070], 0
jge 0x420dda
jmp 0x421703
mov dword [ebp - 0x103c], 1
mov edx, dword [ebp - 0x10a4]
add edx, 1
mov dword [ebp - 0x10a4], edx
mov eax, dword [ebp - 0x10a4]
mov ecx, dword [ebp - 0x1040]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x10a0], edx
jmp 0x42118c
push 0xffffffffffffffff
push str.msicl
push 0xffffffffffffffff
mov eax, dword [ebp - 0x10a4]
mov ecx, dword [ebp - 0x1040]
mov edx, dword [ecx + eax*4]
add edx, 2
push edx
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x420e7d
mov eax, dword [ebp - 0x10a4]
add eax, 1
mov dword [ebp - 0x10a4], eax
push 0
mov ecx, dword [ebp - 0x10a4]
mov edx, dword [ebp - 0x1040]
mov eax, dword [edx + ecx*4]
push eax
lea ecx, [ebp - 0x109c]
push ecx
call fcn.0040db4e
push 0
push 0x425be4
lea edx, [ebp - 0x109c]
push edx
call fcn.0040db4e
jmp 0x42118c
push 0xffffffffffffffff
push 0x425be8
push 0xffffffffffffffff
mov eax, dword [ebp - 0x10a4]
mov ecx, dword [ebp - 0x1040]
mov edx, dword [ecx + eax*4]
add edx, 2
push edx
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x420eb7
mov dword [ebp - 0x1034], 2
jmp 0x42118c
push 0xffffffffffffffff
push str.passive
push 0xffffffffffffffff
mov eax, dword [ebp - 0x10a4]
mov ecx, dword [ebp - 0x1040]
mov edx, dword [ecx + eax*4]
add edx, 2
push edx
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x420ef1
mov dword [ebp - 0x1034], 3
jmp 0x42118c
push 0xffffffffffffffff
push str.norestart
push 0xffffffffffffffff
mov eax, dword [ebp - 0x10a4]
mov ecx, dword [ebp - 0x1040]
mov edx, dword [ecx + eax*4]
add edx, 2
push edx
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x420f34
push 0
push str.REBOOTReallySuppress
lea eax, [ebp - 0x109c]
push eax
call fcn.0040db4e
jmp 0x42118c
push 0xffffffffffffffff
push str.forcerestart
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x10a4]
mov edx, dword [ebp - 0x1040]
mov eax, dword [edx + ecx*4]
add eax, 2
push eax
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x420f77
push 0
push str.REBOOTForce
lea ecx, [ebp - 0x109c]
push ecx
call fcn.0040db4e
jmp 0x42118c
push 0xffffffffffffffff
push str.promptrestart
push 0xffffffffffffffff
mov edx, dword [ebp - 0x10a4]
mov eax, dword [ebp - 0x1040]
mov ecx, dword [eax + edx*4]
add ecx, 2
push ecx
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x420fba
push 0
push str.REBOOTPROMPT
lea edx, [ebp - 0x109c]
push edx
call fcn.0040db4e
jmp 0x42118c
push 0xffffffffffffffff
push 0x425cbc
push 0xffffffffffffffff
mov eax, dword [ebp - 0x10a4]
mov ecx, dword [ebp - 0x1040]
mov edx, dword [ecx + eax*4]
add edx, 2
push edx
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x421007
cmp dword [ebp - 0x1034], 5
jne 0x420ff8
mov dword [ebp - 0x1034], 3
mov dword [ebp - 0x1064], 7
jmp 0x42118c
push 0xffffffffffffffff
push 0x425cd0
push 0xffffffffffffffff
mov eax, dword [ebp - 0x10a4]
mov ecx, dword [ebp - 0x1040]
mov edx, dword [ecx + eax*4]
add edx, 2
push edx
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x421064
mov eax, dword [ebp - 0x10a4]
add eax, 1
mov dword [ebp - 0x10a4], eax
push 0
mov ecx, dword [ebp - 0x10a4]
mov edx, dword [ebp - 0x1040]
mov eax, dword [edx + ecx*4]
push eax
lea ecx, [ebp - 0x102c]
push ecx
call fcn.0040dad4
jmp 0x42118c
push 0xffffffffffffffff
push 0x425cd8
push 0xffffffffffffffff
mov edx, dword [ebp - 0x10a4]
mov eax, dword [ebp - 0x1040]
mov ecx, dword [eax + edx*4]
add ecx, 2
push ecx
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x4210e7
mov edx, dword [ebp - 0x10a4]
add edx, 1
cmp edx, dword [ebp - 4]
jl 0x4210b5
mov dword [ebp - 0x1070], 0x80070057
cmp dword [ebp - 0x1070], 0
jge 0x4210b5
jmp 0x421703
mov eax, dword [ebp - 0x10a4]
add eax, 1
mov dword [ebp - 0x10a4], eax
mov ecx, dword [ebp - 0x10a4]
mov edx, dword [ebp - 0x1040]
mov eax, dword [edx + ecx*4]
push eax
call fcn.0040f725
add esp, 4
mov dword [ebp - 0x1068], eax
jmp 0x42118c
push 0xffffffffffffffff
push 0x425ce4
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x10a4]
mov edx, dword [ebp - 0x1040]
mov eax, dword [edx + ecx*4]
add eax, 2
push eax
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
je 0x421168
push 0xffffffffffffffff
push 0x425ce8
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x10a4]
mov edx, dword [ebp - 0x1040]
mov eax, dword [edx + ecx*4]
add eax, 2
push eax
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
je 0x421168
push 0xffffffffffffffff
push 0x425cec
push 0xffffffffffffffff
mov ecx, dword [ebp - 0x10a4]
mov edx, dword [ebp - 0x1040]
mov eax, dword [edx + ecx*4]
add eax, 2
push eax
push 1
push 0x7f
call dword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x421174
mov dword [ebp - 0x106c], 1
jmp 0x42118c
mov dword [ebp - 0x1070], 0x80070057
cmp dword [ebp - 0x1070], 0
jge 0x42118c
jmp 0x421703
jmp 0x4211a6
mov dword [ebp - 0x1070], 0x80070057
cmp dword [ebp - 0x1070], 0
jge 0x4211a6
jmp 0x421703
jmp 0x420c8a
cmp dword [ebp - 0x1034], 3
jne 0x4211df
cmp dword [ebp - 0x109c], 0
je 0x4211df
push 0x425cf8
mov ecx, dword [ebp - 0x109c]
push ecx
call fcn.00401d80
add esp, 8
test eax, eax
je 0x4211df
mov dword [ebp - 0x1034], 2
cmp dword [ebp - 0x109c], 0
je 0x4211fa
mov edx, dword [ebp - 0x109c]
push edx
lea ecx, [ebp - 0x1094]
call fcn.00401210
lea eax, [ebp - 0x10ac]
push eax
lea ecx, [ebp - 0x1094]
call fcn.00403700
jmp 0x421219
lea ecx, [ebp - 0x10ac]
call fcn.004037b0
lea ecx, [ebp - 0x112c]
push ecx
lea ecx, [ebp - 0x1094]
call fcn.00403730
push eax
lea ecx, [ebp - 0x10ac]
call fcn.00403760
movzx edx, al
test edx, edx
je 0x421282
lea ecx, [ebp - 0x10ac]
call fcn.00403790
movzx eax, word [eax]
push eax
call fcn.0040febc
add esp, 4
test eax, eax
je 0x421280
lea ecx, [ebp - 0x10ac]
call fcn.00403790
movzx ecx, word [eax]
push ecx
call fcn.0040fe3f
add esp, 4
mov esi, eax
lea ecx, [ebp - 0x10ac]
call fcn.00403790
mov word [eax], si
jmp 0x42120e
push 0x800
lea edx, [ebp - 0x1028]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x4212b9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00401da0
add esp, 4
mov dword [ebp - 0x1070], eax
mov dword [ebp - 0x1070], 0
cmp dword [ebp - 0x1070], 0
jge 0x4212c7
jmp 0x421703
cmp dword [ebp - 0x109c], 0
je 0x4212f1
push 0x425d08
lea ecx, [ebp - 0x1094]
call fcn.00401230
push eax
call fcn.0040fa8b
add esp, 8
test eax, eax
jne 0x421494
lea eax, [ebp - 0x1028]
push eax
lea ecx, [ebp - 0x24]
call fcn.00401210
push 1
push str._d_d_b
lea ecx, [ebp - 0x1118]
call fcn.004037d0
lea ecx, [ebp - 0x1110]
call fcn.004038c0
push 0
lea ecx, [ebp - 0x1118]
push ecx
lea edx, [ebp - 0x1110]
push edx
lea eax, [ebp - 0x24]
push eax
call fcn.00404850
add esp, 0x10
movzx ecx, al
test ecx, ecx
je 0x42147e
push 0
lea edx, [ebp - 0x1118]
push edx
lea eax, [ebp - 0x1110]
push eax
lea ecx, [ebp - 0x24]
push ecx
call fcn.00404850
add esp, 0x10
movzx edx, al
test edx, edx
je 0x4213ec
lea eax, [ebp - 0x1164]
push eax
push 1
lea ecx, [ebp - 0x1110]
call fcn.00403910
mov ecx, eax
call fcn.00403980
lea ecx, [ebp - 0x1164]
push ecx
lea ecx, [ebp - 0x1148]
call fcn.00401aa0
push eax
lea ecx, [ebp - 0x105c]
call fcn.004011f0
lea ecx, [ebp - 0x1148]
call fcn.004011d0
lea ecx, [ebp - 0x1164]
call fcn.004011d0
lea edx, [ebp - 0x1180]
push edx
lea ecx, [ebp - 0x1110]
call fcn.00406490
mov ecx, eax
call fcn.004039b0
push eax
lea ecx, [ebp - 0x24]
call fcn.004011f0
lea ecx, [ebp - 0x1180]
call fcn.004011d0
jmp 0x421344
push 0
push 0x425d28
lea eax, [ebp - 0x109c]
push eax
call fcn.0040db4e
push 0
lea ecx, [ebp - 0x105c]
call fcn.00401230
push eax
lea ecx, [ebp - 0x109c]
push ecx
call fcn.0040db4e
push 0
push 0x425d34
lea edx, [ebp - 0x109c]
push edx
call fcn.0040db4e
push 0x425d38
lea eax, [ebp - 0x105c]
push eax
push 0x425d3c
lea ecx, [ebp - 0x119c]
push ecx
call fcn.004048b0
add esp, 0xc
push eax
lea edx, [ebp - 0x11b8]
push edx
call fcn.004018a0
add esp, 0xc
push eax
lea ecx, [ebp - 0x1094]
call fcn.00401ae0
lea ecx, [ebp - 0x11b8]
call fcn.004011d0
lea ecx, [ebp - 0x119c]
call fcn.004011d0
lea ecx, [ebp - 0x1110]
call fcn.004035f0
lea ecx, [ebp - 0x1118]
call fcn.00403860
lea eax, [ebp - 0x1030]
push eax
push 0x7d6
mov ecx, dword [0x42b020]
push ecx
call fcn.0040de42
mov dword [ebp - 0x1070], eax
push 0x716
call fcn.00401da0
add esp, 4
cmp eax, dword [ebp - 0x1070]
jne 0x4214d1
mov dword [ebp - 0x1070], 0
push 0x425d48
mov edx, dword [ebp - 0x1030]
push edx
call fcn.0040f622
add esp, 8
test eax, eax
je 0x42154a
cmp dword [ebp - 0x109c], 0
je 0x42150f
push 0x425d4c
lea ecx, [ebp - 0x1094]
call fcn.00401230
push eax
call fcn.0040fa8b
add esp, 8
test eax, eax
jne 0x42154a
push 0
push str.VID
lea eax, [ebp - 0x109c]
push eax
call fcn.0040db4e
push 0
mov ecx, dword [ebp - 0x1030]
push ecx
lea edx, [ebp - 0x109c]
push edx
call fcn.0040db4e
push 0
push 0x425d64
lea eax, [ebp - 0x109c]
push eax
call fcn.0040db4e
cmp dword [ebp - 0x106c], 0
je 0x4215c8
lea ecx, [ebp - 0x1038]
push ecx
push 0xc739
mov edx, dword [0x42b020]
push edx
call fcn.0040de42
mov dword [ebp - 0x1070], eax
cmp dword [ebp - 0x1070], 0
jge 0x42157f
jmp 0x421703
lea eax, [ebp - 0x1078]
push eax
push 0x7d5
mov ecx, dword [0x42b020]
push ecx
call fcn.0040de42
mov dword [ebp - 0x1070], eax
cmp dword [ebp - 0x1070], 0
jge 0x4215ab
jmp 0x421703
push 0
mov edx, dword [ebp - 0x1038]
push edx
mov eax, dword [ebp - 0x1078]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x421703
cmp dword [ebp - 0x1060], 0
je 0x4215f9
mov ecx, dword [ebp - 0x10a0]
push ecx
call fcn.0041f2e0
add esp, 4
mov dword [ebp - 0x1070], eax
cmp dword [ebp - 0x1070], 0
jge 0x4215f4
jmp 0x421703
jmp 0x421703
cmp dword [ebp - 0x103c], 0
je 0x421681
mov dword [ebp - 0x1124], 0
mov dword [ebp - 0x1120], 0
lea edx, [ebp - 0x1120]
push edx
lea eax, [ebp - 0x1124]
push eax
push str.MANIFEST
push 0
call fcn.0040deb8
mov dword [ebp - 0x1070], eax
cmp dword [ebp - 0x1070], 0
jge 0x421644
jmp 0x421703
mov ecx, dword [ebp - 0x1124]
add ecx, 4
mov dword [ebp - 0x111c], ecx
push 2
mov edx, dword [ebp - 0x10a0]
push edx
mov eax, dword [ebp - 0x111c]
push eax
call fcn.0040dfd0
mov dword [ebp - 0x1070], eax
cmp dword [ebp - 0x1070], 0
jge 0x42167c
jmp 0x421703
jmp 0x421703
lea ecx, [ebp - 0x1074]
push ecx
lea edx, [ebp - 0x1098]
push edx
push 0xc73a
push 0
call fcn.0040deb8
mov dword [ebp - 0x1070], eax
push 0x716
call fcn.00401da0
add esp, 4
cmp eax, dword [ebp - 0x1070]
jne 0x4216c0
mov dword [ebp - 0x1070], 0
cmp dword [ebp - 0x1070], 0
jge 0x4216cb
jmp 0x421703
mov eax, dword [ebp - 0x1064]
push eax
mov ecx, dword [ebp - 0x1034]
push ecx
mov edx, dword [ebp - 0x102c]
push edx
mov eax, dword [ebp - 0x1068]
push eax
mov ecx, dword [ebp - 0x109c]
push ecx
mov edx, dword [ebp - 0x1098]
push edx
call fcn.00420400
add esp, 0x18
mov dword [ebp - 0x1070], eax
cmp dword [ebp - 0x109c], 0
je 0x421718
mov eax, dword [ebp - 0x109c]
push eax
call fcn.0040d598
cmp dword [ebp - 0x1038], 0
je 0x42172d
mov ecx, dword [ebp - 0x1038]
push ecx
call fcn.0040d598
cmp dword [ebp - 0x1078], 0
je 0x421742
mov edx, dword [ebp - 0x1078]
push edx
call fcn.0040d598
cmp dword [ebp - 0x102c], 0
je 0x421757
mov eax, dword [ebp - 0x102c]
push eax
call fcn.0040d598
cmp dword [ebp - 0x1030], 0
je 0x42176c
mov ecx, dword [ebp - 0x1030]
push ecx
call fcn.0040d598
mov edx, dword [ebp - 0x1070]
and edx, 0xffff
mov dword [ebp - 0x11bc], edx
lea ecx, [ebp - 0x1094]
call fcn.004011d0
lea ecx, [ebp - 0x105c]
call fcn.004011d0
lea ecx, [ebp - 0x24]
call fcn.004011d0
mov eax, dword [ebp - 0x11bc]
pop esi
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.0040f2fd
mov esp, ebp
pop ebp
ret 0x10