Function at 0x1400068e0
Capabilities:
Copy file

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc98
mov rax, qword [0x140036138]
xor rax, rsp
mov qword [rsp + 0xc90], rax
cmp ecx, 2
jg 0x14000693e
mov eax, dword [0x140037038]
mov ecx, dword [0x140037098]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14000709b
lea rcx, [0x140036e28]
lea rdx, str.Not_enough_command_line_arguments_to_execute_a_service_command
jmp 0x140006b0c
mov rsi, rdx
mov r14d, ecx
lea rdi, [rsp + 0xa80]
mov r8d, 0x20a
mov rcx, rdi
xor edx, edx
call fcn.14000c660
mov rcx, rdi
call fcn.140009dc0
mov ecx, dword [0x140037038]
mov edx, dword [0x140037098]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
mov edx, dword [rdx + 4]
test eax, eax
je 0x1400069b0
cmp ecx, edx
jg 0x1400070dd
mov r8, qword [rsi + 0x10]
lea rcx, [0x140036e28]
lea rdx, str.Executing_service_command__ls__ID:__ls
lea r9, [rsp + 0xa80]
call fcn.1400084d0
jmp 0x1400069cf
cmp ecx, edx
jg 0x1400071a3
mov r8, qword [rsi + 0x10]
lea rcx, [0x140036e28]
lea rdx, str.Executing_service_command__ls
call fcn.1400084d0
mov rcx, qword [rsi + 0x10]
lea rdx, str.software_update
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x140006a7b
mov eax, dword [0x140037038]
mov ecx, dword [0x140037098]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14000711f
mov r8, qword [rsi + 0x10]
lea rcx, [0x140036e28]
lea rdx, str.Service_command_not_recognized:__ls.
call fcn.1400086f0
xor ebp, ebp
mov eax, dword [0x140037038]
mov ecx, dword [0x140037098]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140007161
test ebp, ebp
lea rax, str.Failure
lea r9, str.Success
cmove r9, rax
mov r8, qword [rsi + 8]
lea rcx, [0x140036e28]
lea rdx, str.service_command__ls_complete_with_result:__ls.
call fcn.1400084d0
jmp 0x140006b13
cmp r14d, 5
jb 0x140006ad9
mov rcx, qword [rsi + 0x20]
call fcn.140008d90
test al, al
je 0x140006ad9
mov rdi, qword [rsi + 0x20]
mov rcx, rdi
call fcn.1400148ac
cmp rax, 9
ja 0x140006b35
mov eax, dword [0x140037038]
mov ecx, dword [0x140037098]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140007227
lea rcx, [0x140036e28]
lea rdx, str.The_patch_directory_path_length_is_not_valid_for_this_application.
jmp 0x140006b0c
mov eax, dword [0x140037038]
mov ecx, dword [0x140037098]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400071e5
lea rcx, [0x140036e28]
lea rdx, str.The_patch_directory_path_is_not_valid_for_this_application.
call fcn.1400086f0
xor ebp, ebp
mov rcx, qword [rsp + 0xc90]
xor rcx, rsp
call fcn.14000ac40
mov eax, ebp
add rsp, 0xc98
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
lea rcx, [rdi + rax*2]
add rcx, 0xffffffffffffffec
lea rdx, [0x14002fab4]
mov r8d, 0xa
call fcn.140012b9c
test eax, eax
je 0x140006b64
call fcn.140001950
lea rdx, str.The_patch_directory_path_subdirectory_is_not_valid_for_this_application.
mov rcx, rax
jmp 0x140006b0c
mov rcx, qword [rsi + 0x20]
call fcn.140009270
mov rcx, qword [rsi + 0x20]
call fcn.140009150
test eax, eax
je 0x140006dfb
cmp r14d, 6
jb 0x140006db6
mov rcx, qword [rsi + 0x28]
call fcn.140008d90
test al, al
je 0x140006db6
mov rcx, qword [rsi + 0x28]
call fcn.140008a10
test al, al
je 0x140006db6
lea rdi, [rsi + 0x18]
lea ebx, [r14 - 3]
mov ecx, ebx
mov rdx, rdi
call fcn.1400055b0
test al, al
je 0x140006e0c
lea r14, [rsp + 0x870]
mov r8d, 0x20a
mov rcx, r14
xor edx, edx
call fcn.14000c660
mov ecx, ebx
mov rdx, rdi
mov r8, r14
call fcn.140005c80
test eax, eax
je 0x140006e88
call fcn.140009c60
test eax, eax
je 0x140006f29
lea r14, [rsp + 0x660]
mov r8d, 0x20a
mov rcx, r14
xor edx, edx
call fcn.14000c660
lea rdx, [rsp + 0x870]
mov r8d, 0x104
mov rcx, r14
call fcn.140014d74
lea rdx, str.updater.exe
mov rcx, r14
call fcn.140009d70
test eax, eax
jne 0x140006c53
call fcn.140001950
lea rdx, str.Install_directory_updater_could_not_be_determined.
mov rcx, rax
call fcn.1400086f0
mov r8, qword [rsi + 0x20]
lea rcx, [rsp + 0x660]
lea rdx, [rsp + 0x870]
call fcn.140005dd0
mov r14d, eax
xor ebp, ebp
lea rcx, [rsp + 0x450]
mov r8d, 0x20a
xor edx, edx
call fcn.14000c660
test r14b, r14b
je 0x140006ec6
lea r14, [rsp + 0x450]
mov rcx, r14
call fcn.1400065a0
test eax, eax
je 0x140006ec6
call fcn.140001950
mov r8, qword [rdi]
mov qword [rsp + 0x20], r14
lea rdx, str.Passed_in_path:__ls__ignored___Install_dir_has:__ls__Using_this_path_for_updating:__ls.
lea r15, [rsp + 0x660]
mov rcx, rax
mov r9, r15
call fcn.1400084d0
mov rcx, r14
call fcn.140006720
mov rcx, r15
mov rdx, r14
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x140006ec6
mov qword [rdi], r14
lea rcx, [rsp + 0x240]
mov r8d, 0x20a
xor edx, edx
call fcn.14000c660
lea r15, [rsp + 0x30]
mov r8d, 0x20a
mov rcx, r15
xor edx, edx
call fcn.14000c660
lea r8, str.updater.ini
mov rcx, r15
mov rdx, r14
call fcn.140008ea0
test eax, eax
je 0x140006d98
lea r8, str.updater.ini
lea rcx, [rsp + 0x240]
lea rdx, [rsp + 0x660]
call fcn.140008ea0
test eax, eax
je 0x140006d98
lea rcx, [rsp + 0x240]
lea rdx, [rsp + 0x30]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x140006d98
call fcn.140001950
mov r14, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
lea rdx, str.Could_not_copy_updater.ini_from:__ls_to__ls.____lu_
lea r8, [rsp + 0x240]
lea r9, [rsp + 0x30]
mov rcx, r14
call fcn.1400086f0
mov ecx, ebx
mov rdx, rdi
call fcn.140005630
mov ebp, eax
lea rcx, [rsp + 0x450]
call fcn.140006720
jmp 0x140006f0c
call fcn.140001950
lea rdx, str.The_install_directory_path_is_not_valid_for_this_application.
mov rcx, rax
call fcn.1400086f0
mov rcx, qword [rsi + 0x20]
mov edx, 0x37
call fcn.140009960
xor ebp, ebp
test eax, eax
jne 0x140006b13
call fcn.140001950
lea rdx, str.Could_not_write_update.status_for_previous_failure.
mov rcx, rax
call fcn.1400086f0
jmp 0x140006b13
call fcn.140001950
lea rdx, str.Unable_to_write_to_secure_ID_file.
jmp 0x140006b5f
cmp r14d, 7
jb 0x140006e66
mov rcx, qword [rsi + 0x30]
call fcn.140008d90
test al, al
je 0x140006e66
mov rdx, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x30]
mov r8d, 0x104
call fcn.140012b9c
test eax, eax
je 0x140006bc4
cmp r14d, 8
jae 0x140006fcb
call fcn.140001950
lea rdx, str.Installation_directory_and_working_directory_must_be_the_same_for_non_staged_updates._Exiting.
mov rcx, rax
call fcn.1400086f0
mov rcx, qword [rsi + 0x20]
mov edx, 0x36
jmp 0x140006dd3
call fcn.140001950
lea rdx, str.The_working_directory_path_is_not_valid_for_this_application.
mov rcx, rax
call fcn.1400086f0
mov rcx, qword [rsi + 0x20]
mov edx, 0x38
jmp 0x140006dd3
call fcn.140001950
lea rdx, str.Could_not_get_the_installation_directory
mov rcx, rax
call fcn.1400086f0
mov rcx, qword [rsi + 0x20]
mov edx, 0x21
call fcn.140009960
test eax, eax
jne 0x140006b11
call fcn.140001950
lea rdx, str.Could_not_write_update.status_for_previous_failure.
mov rcx, rax
jmp 0x140006b0c
call fcn.140001950
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.Could_not_copy_path_to_secure_location.____lu_
mov rcx, rdi
mov r8d, eax
call fcn.1400086f0
mov rcx, qword [rsi + 0x20]
mov edx, 0x31
call fcn.140009960
test eax, eax
jne 0x140006f0c
call fcn.140001950
lea rdx, str.Could_not_write_update.status_could_not_copy_updater_error
mov rcx, rax
call fcn.1400086f0
call fcn.140001950
mov r8, qword [rsi + 0x10]
lea rdx, str.Service_command__ls_complete.
mov rcx, rax
call fcn.1400084d0
jmp 0x140006a26
lea rcx, [rsp + 0x870]
lea rdx, [rsp + 0x660]
call fcn.1400072f0
test eax, eax
je 0x140006fbd
call fcn.140001950
lea rdx, str.Checking_for_Maintenance_Service_registry._key:__ls
lea r14, [rsp + 0x660]
mov rcx, rax
mov r8, r14
call fcn.1400084d0
mov qword [rsp + 0x450], 0
lea rax, [rsp + 0x450]
mov qword [rsp + 0x20], rax
mov rcx, 0xffffffff80000002
mov rdx, r14
xor r8d, r8d
mov r9d, 0x20119
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14000705a
call fcn.140001950
lea rdx, str.The_maintenance_service_registry_key_does_not_exist.
mov rcx, rax
call fcn.1400086f0
mov rcx, qword [rsi + 0x20]
mov edx, 0x39
jmp 0x140006ea5
mov rcx, qword [rsi + 0x20]
mov edx, 0x35
jmp 0x140006ea5
mov rcx, qword [rsi + 0x38]
lea rdx, [0x14002faae]
call fcn.140014858
test eax, eax
je 0x140006ff8
mov rcx, qword [rsi + 0x38]
lea rdx, str._replace
call fcn.14000c91c
test rax, rax
je 0x140006e44
mov r9, qword [rsi + 0x30]
lea r14, [rsp + 0x870]
mov rcx, r14
call fcn.140007270
mov rcx, r14
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je 0x14000706d
mov rdx, qword [rsi + 0x28]
lea rcx, [rsp + 0x870]
mov r8d, 0x104
call fcn.140012b9c
test eax, eax
je 0x140006bc4
call fcn.140001950
lea rdx, str.The_apply_to_directory_must_be_the_same_as_or_a_child_of_the_installation_directory__Exiting.
mov rcx, rax
call fcn.1400086f0
mov rcx, qword [rsi + 0x20]
mov edx, 0x34
jmp 0x140006ea5
mov rcx, qword [rsp + 0x450]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x140006bfe
call fcn.140001950
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.Couldnt_remove_file_spec_when_attempting_to_verify_the_working_directory_path.____lu_
mov rcx, rdi
mov r8d, eax
call fcn.1400086f0
mov rcx, qword [rsi + 0x20]
mov edx, 0x47
jmp 0x140006ea5
lea rcx, [0x140037038]
call fcn.14000aa30
cmp dword [0x140037038], 0xffffffff
jne 0x14000692b
lea rcx, [0x140036e28]
call fcn.140008420
lea rcx, [0x140002160]
call fcn.14000ac60
lea rcx, [0x140037038]
call fcn.14000aa98
jmp 0x14000692b
lea rcx, [0x140037038]
call fcn.14000aa30
cmp dword [0x140037038], 0xffffffff
jne 0x14000698f
lea rcx, [0x140036e28]
call fcn.140008420
lea rcx, [0x140002160]
call fcn.14000ac60
lea rcx, [0x140037038]
call fcn.14000aa98
jmp 0x14000698f
lea rcx, [0x140037038]
call fcn.14000aa30
cmp dword [0x140037038], 0xffffffff
jne 0x140006a0d
lea rcx, [0x140036e28]
call fcn.140008420
lea rcx, [0x140002160]
call fcn.14000ac60
lea rcx, [0x140037038]
call fcn.14000aa98
jmp 0x140006a0d
lea rcx, [0x140037038]
call fcn.14000aa30
cmp dword [0x140037038], 0xffffffff
jne 0x140006a4b
lea rcx, [0x140036e28]
call fcn.140008420
lea rcx, [0x140002160]
call fcn.14000ac60
lea rcx, [0x140037038]
call fcn.14000aa98
jmp 0x140006a4b
lea rcx, [0x140037038]
call fcn.14000aa30
cmp dword [0x140037038], 0xffffffff
jne 0x1400069b8
lea rcx, [0x140036e28]
call fcn.140008420
lea rcx, [0x140002160]
call fcn.14000ac60
lea rcx, [0x140037038]
call fcn.14000aa98
jmp 0x1400069b8
lea rcx, [0x140037038]
call fcn.14000aa30
cmp dword [0x140037038], 0xffffffff
jne 0x140006afe
lea rcx, [0x140036e28]
call fcn.140008420
lea rcx, [0x140002160]
call fcn.14000ac60
lea rcx, [0x140037038]
call fcn.14000aa98
jmp 0x140006afe
lea rcx, [0x140037038]
call fcn.14000aa30
cmp dword [0x140037038], 0xffffffff
jne 0x140006ac9
lea rcx, [0x140036e28]
call fcn.140008420
lea rcx, [0x140002160]
call fcn.14000ac60
lea rcx, [0x140037038]
call fcn.14000aa98
jmp 0x140006ac9