Function at 0x40c180
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 0x40c23c
cmp word [esi], di
je 0x40c23c
push edi
push str.ignored
lea eax, [ebp - 0x14]
push eax
call fcn.0042ee66
mov dword [ebp - 8], eax
cmp eax, edi
jge 0x40c1d1
push str.Failed_to_initialize_command_line.
push eax
call fcn.0042d996
pop ecx
pop ecx
jmp 0x40ca39
push edi
push esi
lea eax, [ebp - 0x14]
push eax
call fcn.0042ee66
mov dword [ebp - 8], eax
cmp eax, edi
jge 0x40c1ea
push str.Failed_to_copy_command_line.
jmp 0x40c1c4
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 0x40c23c
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
jle 0x40c212
and eax, 0xffff
or eax, 0x80070000
mov dword [ebp - 8], eax
cmp eax, edi
jl 0x40c220
mov dword [ebp - 8], 0x80004005
push dword [ebp - 8]
push 0x389
push str.core.cpp
call fcn.0042fdc3
push str.Failed_to_get_command_line.
push dword [ebp - 8]
jmp 0x40c1c5
xor eax, eax
push ebx
inc eax
push 2
mov dword [ebp - 4], eax
pop ebx
cmp dword [ebp - 0x10], eax
jle 0x40c9dd
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 0x40c271
cmp ecx, 0x2f
jne 0x40c9c0
push 0xffffffffffffffff
push 0x43f4fc
push 0xffffffffffffffff
add eax, 2
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40c986
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x43f4f4
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40c986
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x43f4f0
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40c97e
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x43f4ec
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40c97e
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x43f4e0
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40c97e
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x43f4dc
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40c973
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x43f4d0
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40c973
mov eax, dword [esi]
push 0xffffffffffffffff
push 0x43f4cc
push 0xffffffffffffffff
add eax, ebx
push eax
push 1
push 0x7f
call edi
cmp eax, ebx
je 0x40c973
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 0x40c973
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 0x40c3a4
mov eax, dword [ebp + 8]
mov dword [eax + 4], 3
cmp dword [eax + 8], 0
jne 0x40c9ce
mov dword [eax + 8], 3
jmp 0x40c9ce
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 0x40c3cb
mov eax, dword [ebp + 8]
mov dword [eax + 8], 1
jmp 0x40c9ce
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 0x40c3f2
mov eax, dword [ebp + 8]
mov dword [eax + 8], 4
jmp 0x40c9ce
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 0x40c415
mov eax, dword [ebp + 8]
mov dword [eax + 8], ebx
jmp 0x40c9ce
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 0x40c488
mov eax, dword [ebp + 8]
cmp dword [eax], 1
je 0x40c437
mov dword [eax], ebx
mov ecx, dword [ebp - 4]
inc ecx
cmp ecx, dword [ebp - 0x10]
jge 0x40c9ce
mov eax, dword [esi + 4]
movzx eax, word [eax]
cmp eax, 0x2d
je 0x40c9ce
cmp eax, 0x2f
je 0x40c9ce
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.0042f598
mov dword [ebp - 8], eax
test eax, eax
jns 0x40c9ce
push str.Failed_to_copy_path_for_layout_directory.
jmp 0x40c8ff
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 0x40c4b7
mov eax, dword [ebp + 8]
cmp dword [eax], 1
je 0x40c9ce
mov dword [eax], 3
jmp 0x40c9ce
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 0x40c4e6
mov eax, dword [ebp + 8]
cmp dword [eax], 1
je 0x40c9ce
mov dword [eax], 6
jmp 0x40c9ce
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 0x40c515
mov eax, dword [ebp + 8]
cmp dword [eax], 1
je 0x40c9ce
mov dword [eax], 5
jmp 0x40c9ce
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 0x40c963
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 0x40c963
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 0x40c570
mov eax, dword [ebp + 0x18]
and dword [eax], 0
jmp 0x40c9ce
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 0x40c59b
mov eax, dword [ebp + 0x18]
cmp dword [eax], 0
je 0x40c9ce
mov dword [eax], ebx
jmp 0x40c9ce
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 0x40c5e8
mov eax, dword [ebp - 4]
inc eax
cmp eax, dword [ebp - 0x10]
jge 0x40ca50
mov ecx, dword [ebp - 0xc]
push 0
push dword [ecx + eax*4]
mov dword [ebp - 4], eax
push dword [ebp + 0x2c]
call fcn.0042ecb2
mov dword [ebp - 8], eax
test eax, eax
jns 0x40c9ce
push str.Failed_to_copy_parent.
jmp 0x40c8ff
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 0x40c624
push 0
push 0x4385b4
push dword [ebp + 0x2c]
call fcn.0042ecb2
mov dword [ebp - 8], eax
test eax, eax
jns 0x40c9ce
push str.Failed_to_initialize_parent_to_none.
jmp 0x40c8ff
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 0x40c672
mov eax, dword [ebp - 4]
inc eax
cmp eax, dword [ebp - 0x10]
jge 0x40ca6f
mov ecx, dword [ebp - 0xc]
push 0
push dword [ecx + eax*4]
mov dword [ebp - 4], eax
push dword [ebp + 0x28]
call fcn.0042ecb2
mov dword [ebp - 8], eax
test eax, eax
js 0x40ca8b
mov eax, dword [ebp + 0x24]
or dword [eax], 1
jmp 0x40c9ce
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 0x40c6c9
mov eax, dword [ebp - 4]
add eax, 3
cmp eax, dword [ebp - 0x10]
jge 0x40ca95
mov eax, dword [ebp + 0x1c]
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.0040bae4
mov dword [ebp - 8], eax
test eax, eax
js 0x40cab1
add dword [ebp - 4], ebx
jmp 0x40c9ce
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 0x40c71b
mov eax, dword [ebp - 4]
add eax, 3
cmp eax, dword [ebp - 0x10]
jge 0x40cabb
mov eax, dword [ebp + 0x1c]
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.0040bae4
mov dword [ebp - 8], eax
test eax, eax
jns 0x40c6c1
push str.Failed_to_parse_unelevated_connection.
jmp 0x40c76b
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 0x40c773
mov eax, dword [ebp - 4]
add eax, 3
cmp eax, dword [ebp - 0x10]
jge 0x40cad7
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.0040bae4
mov dword [ebp - 8], eax
test eax, eax
jns 0x40c6c1
push str.Failed_to_parse_embedded_connection.
push dword [ebp - 8]
jmp 0x40c900
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 0x40c7ae
xor eax, eax
inc eax
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x1c], eax
push eax
call fcn.00410d4a
push eax
push 0x20000003
push ebx
call fcn.004015e7
add esp, 0xc
jmp 0x40c9ce
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 0x40c7cf
mov eax, dword [ebp + 8]
mov dword [eax + 0x1c], ebx
push ebx
jmp 0x40c795
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 0x40c7ec
push 3
pop eax
jmp 0x40c78e
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 0x40c808
push 4
jmp 0x40c7e9
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 0x40c824
push 6
jmp 0x40c7e9
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 0x40c84b
mov eax, dword [ebp + 8]
mov dword [eax + 0x20], 1
jmp 0x40c9ce
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 0x40c871
mov eax, dword [ebp + 0x20]
mov dword [eax], 1
jmp 0x40c9ce
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 0x40c891
mov eax, dword [ebp + 0x14]
jmp 0x40c4ac
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 0x40c90c
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 0x40cafa
add eax, 2
xor ecx, ecx
cmp cx, word [eax]
je 0x40cafa
push ecx
push eax
push dword [ebp + 0x30]
call fcn.0042ecb2
mov dword [ebp - 8], eax
test eax, eax
jns 0x40c9ce
push str.Failed_to_allocate_the_list_of_dependencies_to_ignore.
push eax
call fcn.0042d996
pop ecx
pop ecx
jmp 0x40ca29
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 0x40c9bd
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 0x40c9c0
mov eax, dword [esi]
add eax, ebx
push eax
push 0xa0000002
jmp 0x40c7a0
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jne 0x40c9ce
mov dword [eax], 4
jmp 0x40c9ce
mov eax, dword [ebp + 8]
mov dword [eax + 4], ebx
jmp 0x40c38e
mov eax, dword [ebp + 8]
jmp 0x40c866
mov eax, dword [ebp + 0x24]
and dword [eax], 0xfffffffe
mov eax, dword [ebp - 4]
inc eax
cmp eax, dword [ebp - 0x10]
jge 0x40cb2a
mov ecx, dword [ebp - 0xc]
push 0
push dword [ecx + eax*4]
mov dword [ebp - 4], eax
push dword [ebp + 0x28]
call fcn.0042ecb2
mov dword [ebp - 8], eax
test eax, eax
jns 0x40c9ce
push str.Failed_to_copy_log_file_path.
jmp 0x40c8ff
push 2
pop ebx
push dword [esi]
mov eax, dword [ebp + 8]
add eax, 0xc
push eax
call fcn.0042f230
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp - 0x10]
jl 0x40c255
mov ecx, dword [ebp + 0x14]
mov edx, dword [ecx]
cmp edx, 3
je 0x40cb46
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax]
cmp eax, ebx
je 0x40c9fd
cmp eax, 3
jne 0x40cb46
mov dword [ecx], 1
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp dword [eax], ecx
jne 0x40ca12
mov dword [eax], 4
cmp dword [eax + 4], ecx
jne 0x40ca1e
mov dword [eax + 4], 4
cmp dword [eax + 8], ecx
jne 0x40ca29
mov eax, dword [ebp + 8]
mov dword [eax + 8], ebx
cmp dword [ebp - 0xc], 0
pop ebx
je 0x40ca39
push dword [ebp - 0xc]
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp - 0x14], 0
pop edi
pop esi
je 0x40ca49
push dword [ebp - 0x14]
call fcn.0042dd7e
mov eax, dword [ebp - 8]
leave
ret 0x2c
mov esi, 0x80070057
push esi
push 0x405
push str.core.cpp
call fcn.0042fdc3
push str.Must_specify_a_value_for_parent.
jmp 0x40caf1
mov esi, 0x80070057
push esi
push 0x416
push str.core.cpp
call fcn.0042fdc3
push str.Must_specify_a_path_for_append_log.
jmp 0x40caf1
push str.Failed_to_copy_append_log_file_path.
jmp 0x40c8ff
mov esi, 0x80070057
push esi
push 0x424
push str.core.cpp
call fcn.0042fdc3
push str.Must_specify_the_elevated_name__token_and_parent_process_id.
jmp 0x40caf1
push str.Failed_to_parse_elevated_connection.
jmp 0x40c76b
mov esi, 0x80070057
push esi
push 0x434
push str.core.cpp
call fcn.0042fdc3
push str.Must_specify_the_unelevated_name__token_and_parent_process_id.
jmp 0x40caf1
mov esi, 0x80070057
push esi
push 0x444
push str.core.cpp
call fcn.0042fdc3
push str.Must_specify_the_embedded_name__token_and_parent_process_id.
mov dword [ebp - 8], esi
push esi
jmp 0x40c900
mov esi, 0x80070057
push esi
push 0x480
push str.core.cpp
call fcn.0042fdc3
push str.burn.ignoredependencies
push str.Missing_required_parameter_for_switch:__ls
push esi
mov dword [ebp - 8], esi
call fcn.0042d996
add esp, 0xc
jmp 0x40ca29
mov esi, 0x80070057
push esi
push 0x399
push str.core.cpp
call fcn.0042fdc3
push str.Must_specify_a_path_for_log.
jmp 0x40caf1
cmp edx, ebx
jne 0x40ca03
mov eax, dword [ebp + 8]
mov dword [eax + 4], 1
jmp 0x40ca06