Function at 0x140006a80
Capabilities:
Copy file

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc98
mov rax, qword [0x140033138]
xor rax, rsp
mov qword [rsp + 0xc90], rax
cmp ecx, 2
jg 0x140006ade
mov eax, dword [0x140033e78]
mov ecx, dword [0x140033ed8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14000724d
lea rcx, [0x140033c68]
lea rdx, str.Not_enough_command_line_arguments_to_execute_a_service_command
jmp 0x140006caa
mov rsi, rdx
mov ebp, ecx
lea rdi, [rsp + 0xa80]
mov r8d, 0x20a
mov rcx, rdi
xor edx, edx
call fcn.14000cba0
mov rcx, rdi
call fcn.140009d90
mov ecx, dword [0x140033e78]
mov edx, dword [0x140033ed8]
mov rbx, qword gs:[0x58]
mov rdx, qword [rbx + rdx*8]
mov edx, dword [rdx + 4]
test eax, eax
je 0x140006b4f
cmp ecx, edx
jg 0x14000728f
mov r8, qword [rsi + 0x10]
lea rcx, [0x140033c68]
lea rdx, str.Executing_service_command__ls__ID:__ls
lea r9, [rsp + 0xa80]
call fcn.140008610
jmp 0x140006b6e
cmp ecx, edx
jg 0x140007355
mov r8, qword [rsi + 0x10]
lea rcx, [0x140033c68]
lea rdx, str.Executing_service_command__ls
call fcn.140008610
mov rcx, qword [rsi + 0x10]
lea rdx, str.software_update
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x140006c1a
mov eax, dword [0x140033e78]
mov ecx, dword [0x140033ed8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400072d1
mov r8, qword [rsi + 0x10]
lea rcx, [0x140033c68]
lea rdx, str.Service_command_not_recognized:__ls.
call fcn.140008690
xor ebp, ebp
mov eax, dword [0x140033e78]
mov ecx, dword [0x140033ed8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140007313
test ebp, ebp
lea rax, str.Failure
lea r9, str.Success
cmove r9, rax
mov r8, qword [rsi + 8]
lea rcx, [0x140033c68]
lea rdx, str.service_command__ls_complete_with_result:__ls.
call fcn.140008610
jmp 0x140006cb1
cmp ebp, 5
jb 0x140006c77
mov rcx, qword [rsi + 0x20]
call fcn.140008d20
test al, al
je 0x140006c77
mov rdi, qword [rsi + 0x20]
mov rcx, rdi
call fcn.14001433c
cmp rax, 9
ja 0x140006cd3
mov eax, dword [0x140033e78]
mov ecx, dword [0x140033ed8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400073d9
lea rcx, [0x140033c68]
lea rdx, str.The_patch_directory_path_length_is_not_valid_for_this_application.
jmp 0x140006caa
mov eax, dword [0x140033e78]
mov ecx, dword [0x140033ed8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140007397
lea rcx, [0x140033c68]
lea rdx, str.The_patch_directory_path_is_not_valid_for_this_application.
call fcn.140008690
xor ebp, ebp
mov rcx, qword [rsp + 0xc90]
xor rcx, rsp
call fcn.14000acd0
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, [0x14002d36c]
mov r8d, 0xa
call fcn.140012a28
test eax, eax
je 0x140006d02
call fcn.140001950
lea rdx, str.The_patch_directory_path_subdirectory_is_not_valid_for_this_application.
mov rcx, rax
jmp 0x140006caa
mov rcx, qword [rsi + 0x20]
call fcn.140009270
mov rcx, qword [rsi + 0x20]
call fcn.1400090e0
test eax, eax
je 0x140006f99
cmp ebp, 6
jb 0x140006f54
mov rcx, qword [rsi + 0x28]
call fcn.140008d20
test al, al
je 0x140006f54
mov rcx, qword [rsi + 0x28]
call fcn.1400089b0
test al, al
je 0x140006f54
lea rdi, [rsi + 0x18]
lea r15d, [rbp - 3]
mov ecx, r15d
mov rdx, rdi
call fcn.140005760
test al, al
je 0x140006faa
lea rbp, [rsp + 0x870]
mov r8d, 0x20a
mov rcx, rbp
xor edx, edx
call fcn.14000cba0
mov ecx, r15d
mov rdx, rdi
mov r8, rbp
call fcn.140005e30
test eax, eax
je 0x140007024
call fcn.140009c30
test eax, eax
je 0x1400070c5
lea rbp, [rsp + 0x660]
mov r8d, 0x20a
mov rcx, rbp
xor edx, edx
call fcn.14000cba0
lea rdx, [rsp + 0x870]
mov r8d, 0x104
mov rcx, rbp
call fcn.140014804
lea rdx, str.updater.exe
mov rcx, rbp
call fcn.140009d40
test eax, eax
jne 0x140006df2
call fcn.140001950
lea rdx, str.Install_directory_updater_could_not_be_determined.
mov rcx, rax
call fcn.140008690
mov r8, qword [rsi + 0x20]
lea rcx, [rsp + 0x660]
lea rdx, [rsp + 0x870]
call fcn.140005f70
mov ebx, eax
xor ebp, ebp
lea rcx, [rsp + 0x450]
mov r8d, 0x20a
xor edx, edx
call fcn.14000cba0
test bl, bl
je 0x140007062
lea r14, [rsp + 0x450]
mov rcx, r14
call fcn.140006740
test eax, eax
je 0x140007062
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 rbx, [rsp + 0x660]
mov rcx, rax
mov r9, rbx
call fcn.140008610
mov rcx, r14
call fcn.1400068c0
mov rcx, rbx
mov rdx, r14
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x140007062
mov qword [rdi], r14
lea rcx, [rsp + 0x240]
mov r8d, 0x20a
xor edx, edx
call fcn.14000cba0
lea rbx, [rsp + 0x30]
mov r8d, 0x20a
mov rcx, rbx
xor edx, edx
call fcn.14000cba0
lea r8, str.updater.ini
mov rcx, rbx
mov rdx, r14
call fcn.140008e30
test eax, eax
je 0x140006f35
lea r8, str.updater.ini
lea rcx, [rsp + 0x240]
lea rdx, [rsp + 0x660]
call fcn.140008e30
test eax, eax
je 0x140006f35
lea rcx, [rsp + 0x240]
lea rdx, [rsp + 0x30]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x140006f35
call fcn.140001950
mov rbx, 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, rbx
call fcn.140008690
mov ecx, r15d
mov rdx, rdi
call fcn.1400057e0
mov ebp, eax
lea rcx, [rsp + 0x450]
call fcn.1400068c0
jmp 0x1400070a8
call fcn.140001950
lea rdx, str.The_install_directory_path_is_not_valid_for_this_application.
mov rcx, rax
call fcn.140008690
mov rcx, qword [rsi + 0x20]
mov edx, 0x37
call fcn.140009930
xor ebp, ebp
test eax, eax
jne 0x140006cb1
call fcn.140001950
lea rdx, str.Could_not_write_update.status_for_previous_failure.
mov rcx, rax
call fcn.140008690
jmp 0x140006cb1
call fcn.140001950
lea rdx, str.Unable_to_write_to_secure_ID_file.
jmp 0x140006cfd
cmp ebp, 7
jb 0x140007002
mov rcx, qword [rsi + 0x30]
call fcn.140008d20
test al, al
je 0x140007002
mov rdx, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x30]
mov r8d, 0x104
call fcn.140012a28
test eax, eax
je 0x140006d62
cmp ebp, 8
jae 0x140007167
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.140008690
mov rcx, qword [rsi + 0x20]
mov edx, 0x36
jmp 0x140006f71
call fcn.140001950
lea rdx, str.The_working_directory_path_is_not_valid_for_this_application.
mov rcx, rax
call fcn.140008690
mov rcx, qword [rsi + 0x20]
mov edx, 0x38
jmp 0x140006f71
call fcn.140001950
lea rdx, str.Could_not_get_the_installation_directory
mov rcx, rax
call fcn.140008690
mov rcx, qword [rsi + 0x20]
mov edx, 0x21
call fcn.140009930
test eax, eax
jne 0x140006caf
call fcn.140001950
lea rdx, str.Could_not_write_update.status_for_previous_failure.
mov rcx, rax
jmp 0x140006caa
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.140008690
mov rcx, qword [rsi + 0x20]
mov edx, 0x31
call fcn.140009930
test eax, eax
jne 0x1400070a8
call fcn.140001950
lea rdx, str.Could_not_write_update.status_could_not_copy_updater_error
mov rcx, rax
call fcn.140008690
call fcn.140001950
mov r8, qword [rsi + 0x10]
lea rdx, str.Service_command__ls_complete.
mov rcx, rax
call fcn.140008610
jmp 0x140006bc5
lea rcx, [rsp + 0x870]
lea rdx, [rsp + 0x660]
call fcn.1400074a0
test eax, eax
je 0x140007159
call fcn.140001950
lea rdx, str.Checking_for_Maintenance_Service_registry._key:__ls
lea rbp, [rsp + 0x660]
mov rcx, rax
mov r8, rbp
call fcn.140008610
mov qword [rsp + 0x450], 0
lea rax, [rsp + 0x450]
mov qword [rsp + 0x20], rax
mov rcx, 0xffffffff80000002
mov rdx, rbp
xor r8d, r8d
mov r9d, 0x20119
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x1400071f3
call fcn.140001950
lea rdx, str.The_maintenance_service_registry_key_does_not_exist.
mov rcx, rax
call fcn.140008690
mov rcx, qword [rsi + 0x20]
mov edx, 0x39
jmp 0x140007041
mov rcx, qword [rsi + 0x20]
mov edx, 0x35
jmp 0x140007041
mov rcx, qword [rsi + 0x38]
lea rdx, [0x14002d366]
call fcn.1400142e8
test eax, eax
je 0x140007194
mov rcx, qword [rsi + 0x38]
lea rdx, str._replace
call fcn.14000ce78
test rax, rax
je 0x140006fe0
mov r9, qword [rsi + 0x30]
lea rbp, [rsp + 0x870]
mov rcx, rbp
call fcn.140007420
mov rcx, rbp
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je 0x140007206
mov rdx, qword [rsi + 0x28]
lea rcx, [rsp + 0x870]
mov r8d, 0x104
call fcn.140012a28
test eax, eax
je 0x140006d62
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.140008690
mov rcx, qword [rsi + 0x20]
mov edx, 0x34
jmp 0x14000722f
mov rcx, qword [rsp + 0x450]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x140006d9d
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.140008690
mov rcx, qword [rsi + 0x20]
mov edx, 0x47
call fcn.140009930
test eax, eax
jne 0x140006caf
call fcn.140001950
lea rdx, str.Could_not_write_update.status_for_previous_failure.
jmp 0x140006cfd
lea rcx, [0x140033e78]
call fcn.14000aa90
cmp dword [0x140033e78], 0xffffffff
jne 0x140006acb
lea rcx, [0x140033c68]
call fcn.140008560
lea rcx, [0x140002160]
call fcn.14000acf4
lea rcx, [0x140033e78]
call fcn.14000aaf8
jmp 0x140006acb
lea rcx, [0x140033e78]
call fcn.14000aa90
cmp dword [0x140033e78], 0xffffffff
jne 0x140006b2e
lea rcx, [0x140033c68]
call fcn.140008560
lea rcx, [0x140002160]
call fcn.14000acf4
lea rcx, [0x140033e78]
call fcn.14000aaf8
jmp 0x140006b2e
lea rcx, [0x140033e78]
call fcn.14000aa90
cmp dword [0x140033e78], 0xffffffff
jne 0x140006bac
lea rcx, [0x140033c68]
call fcn.140008560
lea rcx, [0x140002160]
call fcn.14000acf4
lea rcx, [0x140033e78]
call fcn.14000aaf8
jmp 0x140006bac
lea rcx, [0x140033e78]
call fcn.14000aa90
cmp dword [0x140033e78], 0xffffffff
jne 0x140006bea
lea rcx, [0x140033c68]
call fcn.140008560
lea rcx, [0x140002160]
call fcn.14000acf4
lea rcx, [0x140033e78]
call fcn.14000aaf8
jmp 0x140006bea
lea rcx, [0x140033e78]
call fcn.14000aa90
cmp dword [0x140033e78], 0xffffffff
jne 0x140006b57
lea rcx, [0x140033c68]
call fcn.140008560
lea rcx, [0x140002160]
call fcn.14000acf4
lea rcx, [0x140033e78]
call fcn.14000aaf8
jmp 0x140006b57
lea rcx, [0x140033e78]
call fcn.14000aa90
cmp dword [0x140033e78], 0xffffffff
jne 0x140006c9c
lea rcx, [0x140033c68]
call fcn.140008560
lea rcx, [0x140002160]
call fcn.14000acf4
lea rcx, [0x140033e78]
call fcn.14000aaf8
jmp 0x140006c9c
lea rcx, [0x140033e78]
call fcn.14000aa90
cmp dword [0x140033e78], 0xffffffff
jne 0x140006c67
lea rcx, [0x140033c68]
call fcn.140008560
lea rcx, [0x140002160]
call fcn.14000acf4
lea rcx, [0x140033e78]
call fcn.14000aaf8
jmp 0x140006c67