Function at 0x40c603
Capabilities:
Accept command line arguments

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push esi
push edi
xor edi, edi
mov esi, eax
mov dword [ebp - 8], edi
mov dword [ebp - 0x10], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x14], edi
cmp esi, edi
je 0x40c6bf
cmp word [esi], di
je 0x40c6bf
push edi
push str.ignored
lea eax, [ebp - 0x14]
push eax
call fcn.00430658
mov dword [ebp - 8], eax
cmp eax, edi
jge 0x40c654
push str.Failed_to_initialize_command_line.
push eax
call fcn.0042eef6
pop ecx
pop ecx
jmp 0x40cfd3
push edi
push esi
lea eax, [ebp - 0x14]
push eax
call fcn.00430658
mov dword [ebp - 8], eax
cmp eax, edi
jge 0x40c66d
push str.Failed_to_copy_command_line.
jmp 0x40c647
lea eax, [ebp - 0x10]
push eax
push dword [ebp - 0x14]
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov dword [ebp - 0xc], eax
cmp eax, edi
jne 0x40c6bf
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jle 0x40c695
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 8], eax
cmp eax, edi
jl 0x40c6a3
mov dword [ebp - 8], 0x80004005
push dword [ebp - 8]
push 0x3a7
push str.core.cpp
call fcn.0043166e
push str.Failed_to_get_command_line.
push dword [ebp - 8]
jmp 0x40c648
xor eax, eax
push ebx
inc eax
push 2
mov dword [ebp - 4], eax
pop ebx
cmp dword [ebp - 0x10], eax
jle 0x40cf77
mov edi, dword [sym.imp.KERNEL32.dll_CompareStringW]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 4]
lea esi, [eax + ecx*4]
mov eax, dword [esi]
movzx ecx, word [eax]
cmp ecx, 0x2d
je 0x40c6f4
cmp ecx, 0x2f
jne 0x40cf5a
push 0xffffffffffffffff
push 0x4409e8
push 0xffffffffffffffff
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40cf20
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x4409e0
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40cf20
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x4409dc
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40cf18
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x4409d8
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40cf18
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x4409cc
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40cf18
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x4409c8
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40cf0d
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x4409bc
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40cf0d
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x4409b8
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40cf0d
mov eax, dword [esi]
push 0xffffffffffffffff
push str.silent
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40cf0d
mov eax, dword [esi]
push 0xffffffffffffffff
push str.passive
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40c827
mov eax, dword [ebp + 8]
mov dword [eax + 4], 3
cmp dword [eax + 8], 0
jne 0x40cf68
mov dword [eax + 8], 3
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.norestart
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40c84e
mov eax, dword [ebp + 8]
mov dword [eax + 8], 1
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.forcerestart
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40c875
mov eax, dword [ebp + 8]
mov dword [eax + 8], 4
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.promptrestart
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40c898
mov eax, dword [ebp + 8]
mov dword [eax + 8], ebx
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.layout
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40c90b
mov eax, dword [ebp + 8]
cmp dword [eax], 1
je 0x40c8ba
mov dword [eax], ebx
mov ecx, dword [ebp - 4]
inc ecx
cmp ecx, dword [ebp - 0x10]
jge 0x40cf68
mov eax, dword [esi + 4]
movzx eax, word [eax]
cmp eax, 0x2d
je 0x40cf68
cmp eax, 0x2f
je 0x40cf68
mov eax, dword [ebp - 0xc]
push 3
push dword [eax + ecx*4]
mov eax, dword [ebp + 8]
add eax, 0x24
push eax
mov dword [ebp - 4], ecx
call fcn.00430e43
mov dword [ebp - 8], eax
test eax, eax
jns 0x40cf68
push str.Failed_to_copy_path_for_layout_directory.
jmp 0x40ce99
mov eax, dword [esi]
push 0xffffffffffffffff
push str.uninstall
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40c93a
mov eax, dword [ebp + 8]
cmp dword [eax], 1
je 0x40cf68
mov dword [eax], 3
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.repair
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40c969
mov eax, dword [ebp + 8]
cmp dword [eax], 1
je 0x40cf68
mov dword [eax], 6
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.modify
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40c998
mov eax, dword [ebp + 8]
cmp dword [eax], 1
je 0x40cf68
mov dword [eax], 5
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.package
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40cefd
mov eax, dword [esi]
push 0xffffffffffffffff
push str.update
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40cefd
mov eax, dword [esi]
push 0xffffffffffffffff
push str.noaupause
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40c9f3
mov eax, dword [ebp + 0x18]
and dword [eax], 0
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.keepaupaused
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40ca1e
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
je 0x40cf68
mov dword [eax], ebx
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.parallelcacheandexecute
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40ca44
mov eax, dword [ebp + 0x1c]
mov dword [eax], 1
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.serialcacheandexecute
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40ca61
mov eax, dword [ebp + 0x1c]
jmp 0x40ca17
mov eax, dword [esi]
push 0xffffffffffffffff
push str.disablesystemrestore
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40ca7e
mov eax, dword [ebp + 0x20]
jmp 0x40ca39
mov eax, dword [esi]
push 0xffffffffffffffff
push str.originalsource
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cacb
mov eax, dword [ebp - 4]
inc eax
cmp eax, dword [ebp - 0x10]
jge 0x40cfea
mov ecx, dword [ebp - 0xc]
push 0
push dword [ecx + eax*4]
mov dword [ebp - 4], eax
push dword [ebp + 0x24]
call fcn.004304a4
mov dword [ebp - 8], eax
test eax, eax
jns 0x40cf68
push str.Failed_to_copy_last_used_source.
jmp 0x40ce99
mov eax, dword [esi]
push 0xffffffffffffffff
push str.parent
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cb18
mov eax, dword [ebp - 4]
inc eax
cmp eax, dword [ebp - 0x10]
jge 0x40d009
mov ecx, dword [ebp - 0xc]
push 0
push dword [ecx + eax*4]
mov dword [ebp - 4], eax
push dword [ebp + 0x38]
call fcn.004304a4
mov dword [ebp - 8], eax
test eax, eax
jns 0x40cf68
push str.Failed_to_copy_parent.
jmp 0x40ce99
mov eax, dword [esi]
push 0xffffffffffffffff
push str.parent:none
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cb54
push 0
push 0x4395e8
push dword [ebp + 0x38]
call fcn.004304a4
mov dword [ebp - 8], eax
test eax, eax
jns 0x40cf68
push str.Failed_to_initialize_parent_to_none.
jmp 0x40ce99
mov eax, dword [esi]
push 0xffffffffffffffff
push str.burn.log.append
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cba2
mov eax, dword [ebp - 4]
inc eax
cmp eax, dword [ebp - 0x10]
jge 0x40d028
mov ecx, dword [ebp - 0xc]
push 0
push dword [ecx + eax*4]
mov dword [ebp - 4], eax
push dword [ebp + 0x34]
call fcn.004304a4
mov dword [ebp - 8], eax
test eax, eax
js 0x40d044
mov eax, dword [ebp + 0x30]
or dword [eax], 1
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.burn.elevated
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cbf9
mov eax, dword [ebp - 4]
add eax, 3
cmp eax, dword [ebp - 0x10]
jge 0x40d04e
mov eax, dword [ebp + 0x28]
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov dword [eax], 3
mov eax, dword [ebp - 0xc]
lea esi, [eax + ecx*4]
mov eax, dword [ebp + 0xc]
call fcn.0040bf64
mov dword [ebp - 8], eax
test eax, eax
js 0x40d06a
add dword [ebp - 4], ebx
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.burn.unelevated
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cc4b
mov eax, dword [ebp - 4]
add eax, 3
cmp eax, dword [ebp - 0x10]
jge 0x40d074
mov eax, dword [ebp + 0x28]
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov dword [eax], 1
mov eax, dword [ebp - 0xc]
lea esi, [eax + ecx*4]
mov eax, dword [ebp + 0xc]
call fcn.0040bf64
mov dword [ebp - 8], eax
test eax, eax
jns 0x40cbf1
push str.Failed_to_parse_unelevated_connection.
jmp 0x40cc9b
mov eax, dword [esi]
push 0xffffffffffffffff
push str.burn.embedded
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cca3
mov eax, dword [ebp - 4]
add eax, 3
cmp eax, dword [ebp - 0x10]
jge 0x40d090
mov eax, dword [ebp + 0x14]
inc dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov dword [eax], ebx
mov eax, dword [ebp - 0xc]
lea esi, [eax + ecx*4]
mov eax, dword [ebp + 0x10]
call fcn.0040bf64
mov dword [ebp - 8], eax
test eax, eax
jns 0x40cbf1
push str.Failed_to_parse_embedded_connection.
push dword [ebp - 8]
jmp 0x40ce9a
mov eax, dword [esi]
push 0xffffffffffffffff
push str.burn.related.detect
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40ccde
xor eax, eax
inc eax
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x1c], eax
push eax
call fcn.0041165f
push eax
push 0x20000003
push ebx
call fcn.00401607
add esp, 0xc
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.burn.related.upgrade
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40ccff
mov eax, dword [ebp + 8]
mov dword [eax + 0x1c], ebx
push ebx
jmp 0x40ccc5
mov eax, dword [esi]
push 0xffffffffffffffff
push str.burn.related.addon
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cd1c
push 3
pop eax
jmp 0x40ccbe
mov eax, dword [esi]
push 0xffffffffffffffff
push str.burn.related.patch
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cd38
push 4
jmp 0x40cd19
mov eax, dword [esi]
push 0xffffffffffffffff
push str.burn.related.update
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cd54
push 6
jmp 0x40cd19
mov eax, dword [esi]
push 0xffffffffffffffff
push str.burn.passthrough
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cd7b
mov eax, dword [ebp + 8]
mov dword [eax + 0x20], 1
jmp 0x40cf68
mov eax, dword [esi]
push 0xffffffffffffffff
push str.burn.disable.unelevate
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cd9b
mov eax, dword [ebp + 0x2c]
jmp 0x40ca39
mov eax, dword [esi]
push 0xffffffffffffffff
push str.burn.runonce
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cdbb
mov eax, dword [ebp + 0x14]
jmp 0x40c92f
push str.burn.ignoredependencies
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
mov eax, str.burn.ignoredependencies
push eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
mov eax, dword [esi]
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40ce2b
push str.burn.ignoredependencies
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [esi]
lea eax, [ecx + eax*2 + 2]
push 0x3d
pop ecx
cmp cx, word [eax]
jne 0x40d0b3
add eax, 2
xor ecx, ecx
cmp cx, word [eax]
je 0x40d0b3
push ecx
push eax
push dword [ebp + 0x3c]
call fcn.004304a4
mov dword [ebp - 8], eax
test eax, eax
jns 0x40cf68
push str.Failed_to_allocate_the_list_of_dependencies_to_ignore.
jmp 0x40ce99
push str.burn.ancestors
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
mov eax, str.burn.ancestors
push eax
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
mov eax, dword [esi]
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cea6
push str.burn.ancestors
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ecx, dword [esi]
lea eax, [ecx + eax*2 + 2]
push 0x3d
pop ecx
cmp cx, word [eax]
jne 0x40d0cf
add eax, 2
xor ecx, ecx
cmp cx, word [eax]
je 0x40d0cf
push ecx
push eax
push dword [ebp + 0x40]
call fcn.004304a4
mov dword [ebp - 8], eax
test eax, eax
jns 0x40cf68
push str.Failed_to_allocate_the_list_of_ancestors.
push eax
call fcn.0042eef6
pop ecx
pop ecx
jmp 0x40cfc3
mov eax, dword [esi]
add eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push str.burn.
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp ebx, eax
jl 0x40cf57
mov ebx, str.burn.
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push eax
mov eax, dword [esi]
push 2
pop ebx
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
jne 0x40cf5a
mov eax, dword [esi]
add eax, ebx
push eax
push 0xa0000002
jmp 0x40ccd0
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jne 0x40cf68
mov dword [eax], 4
jmp 0x40cf68
mov eax, dword [ebp + 8]
mov dword [eax + 4], ebx
jmp 0x40c811
mov eax, dword [ebp + 8]
jmp 0x40ca39
mov eax, dword [ebp + 0x30]
and dword [eax], 0xfffffffe
mov eax, dword [ebp - 4]
inc eax
cmp eax, dword [ebp - 0x10]
jge 0x40d0ff
mov ecx, dword [ebp - 0xc]
push 0
push dword [ecx + eax*4]
mov dword [ebp - 4], eax
push dword [ebp + 0x34]
call fcn.004304a4
mov dword [ebp - 8], eax
test eax, eax
jns 0x40cf68
push str.Failed_to_copy_log_file_path.
jmp 0x40ce99
push 2
pop ebx
push dword [esi]
mov eax, dword [ebp + 8]
add eax, 0xc
push eax
call fcn.00430adb
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x10]
jl 0x40c6d8
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
cmp edx, 3
je 0x40d11b
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
cmp eax, ebx
je 0x40cf97
cmp eax, 3
jne 0x40d11b
mov dword [ecx], 1
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp dword [eax], ecx
jne 0x40cfac
mov dword [eax], 4
cmp dword [eax + 4], ecx
jne 0x40cfb8
mov dword [eax + 4], 4
cmp dword [eax + 8], ecx
jne 0x40cfc3
mov eax, dword [ebp + 8]
mov dword [eax + 8], ebx
cmp dword [ebp - 0xc], 0
pop ebx
je 0x40cfd3
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp - 0x14], 0
pop edi
pop esi
je 0x40cfe3
push dword [ebp - 0x14]
call fcn.0042f657
mov eax, dword [ebp - 8]
leave
ret 0x3c
mov esi, 0x80070057
push esi
push 0x431
push str.core.cpp
call fcn.0043166e
push str.Must_specify_a_path_for_original_source.
jmp 0x40d0aa
mov esi, 0x80070057
push esi
push 0x43c
push str.core.cpp
call fcn.0043166e
push str.Must_specify_a_value_for_parent.
jmp 0x40d0aa
mov esi, 0x80070057
push esi
push 0x44d
push str.core.cpp
call fcn.0043166e
push str.Must_specify_a_path_for_append_log.
jmp 0x40d0aa
push str.Failed_to_copy_append_log_file_path.
jmp 0x40ce99
mov esi, 0x80070057
push esi
push 0x45b
push str.core.cpp
call fcn.0043166e
push str.Must_specify_the_elevated_name__token_and_parent_process_id.
jmp 0x40d0aa
push str.Failed_to_parse_elevated_connection.
jmp 0x40cc9b
mov esi, 0x80070057
push esi
push 0x46b
push str.core.cpp
call fcn.0043166e
push str.Must_specify_the_unelevated_name__token_and_parent_process_id.
jmp 0x40d0aa
mov esi, 0x80070057
push esi
push 0x47b
push str.core.cpp
call fcn.0043166e
push str.Must_specify_the_embedded_name__token_and_parent_process_id.
mov dword [ebp - 8], esi
push esi
jmp 0x40ce9a
mov esi, 0x80070057
push esi
push 0x4b7
push str.core.cpp
call fcn.0043166e
push str.burn.ignoredependencies
jmp 0x40d0e9
mov esi, 0x80070057
push esi
push 0x4c3
push str.core.cpp
call fcn.0043166e
push str.burn.ancestors
push str.Missing_required_parameter_for_switch:__ls
push esi
mov dword [ebp - 8], esi
call fcn.0042eef6
add esp, 0xc
jmp 0x40cfc3
mov esi, 0x80070057
push esi
push 0x3b7
push str.core.cpp
call fcn.0043166e
push str.Must_specify_a_path_for_log.
jmp 0x40d0aa
cmp edx, ebx
jne 0x40cf9d
mov eax, dword [ebp + 8]
mov dword [eax + 4], 1
jmp 0x40cfa0