Function at 0x140002a70
Capabilities:
Check if file exists
Get file attributes
Modify service

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x260
mov rbx, rcx
mov rax, qword [0x140033138]
xor rax, rsp
mov qword [rsp + 0x258], rax
lea rdx, [rsp + 0x40]
xor ecx, ecx
mov r8d, 0x105
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x140002b75
lea rcx, [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je 0x140002bb3
lea rdx, str.updater.ini
lea rcx, [rsp + 0x40]
call fcn.140009d40
test eax, eax
je 0x140002bee
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140002c29
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x20], 0
lea rdx, str.MozillaMaintenanceDescription
lea rcx, [rsp + 0x40]
lea r9, [rsp + 0x38]
mov r8d, 1
call fcn.140007710
mov r15, qword [rsp + 0x38]
test eax, eax
je 0x140002c91
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 0x140002e68
lea rcx, [0x140033c68]
lea rdx, str.updater.ini_file_does_not_contain_a_maintenance_service_description.
call fcn.140008690
xor edi, edi
test r15, r15
jne 0x140002d95
jmp 0x140002c6c
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 0x140002da2
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140033c68]
lea rdx, str.Could_not_obtain_module_filename_when_attempting_to_modify_service_description.____lu_
jmp 0x140002c62
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 0x140002de4
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140033c68]
lea rdx, str.Could_not_remove_file_spec_when_attempting_to_modify_service_description.____lu_
jmp 0x140002c62
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 0x140002e26
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140033c68]
lea rdx, str.Could_not_append_updater.ini_filename_when_attempting_to_modify_service_description.____lu_
jmp 0x140002c62
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 0x140002eaa
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140033c68]
lea rdx, str.updater.ini_file_does_not_exist__will_not_modify_service_description.____lu_
mov r8d, eax
call fcn.140008690
xor edi, edi
mov rcx, qword [rsp + 0x258]
xor rcx, rsp
call fcn.14000acd0
mov eax, edi
add rsp, 0x260
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [r15], 0
je 0x140002b2d
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r12, qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
xor edi, edi
mov ecx, 0xfde9
xor edx, edx
mov r8, r15
mov r9d, 0xffffffff
call r12
movsxd r13, eax
mov rax, r13
add rax, r13
mov rsi, 0xffffffffffffffff
cmovae rsi, rax
mov rcx, rsi
call fcn.14000a920
mov r14, rax
mov rcx, rax
xor edx, edx
mov r8, rsi
call fcn.14000cba0
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r14
mov ecx, 0xfde9
xor edx, edx
mov r8, r15
mov r9d, 0xffffffff
call r12
test eax, eax
je 0x140002d51
mov qword [rsp + 0x38], r14
mov edi, 1
lea r8, [rsp + 0x38]
mov rcx, rbx
mov edx, 1
call qword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2W]
mov esi, eax
call fcn.140001950
mov rbx, rax
test esi, esi
je 0x140002d73
lea rdx, str.The_service_description_was_updated_successfully.
mov rcx, rbx
call fcn.140008610
jmp 0x140002d8d
call fcn.140001950
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.Could_not_convert_description_to_wide_string_format.____lu_
mov rcx, rsi
mov r8d, eax
call fcn.140008690
jmp 0x140002d8d
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.Could_not_change_service_config.____lu_
mov rcx, rbx
mov r8d, eax
call fcn.140008690
xor edi, edi
mov rcx, r14
call fcn.14000a928
mov rcx, r15
call fcn.14000a928
jmp 0x140002c6c
lea rcx, [0x140033e78]
call fcn.14000aa90
cmp dword [0x140033e78], 0xffffffff
jne 0x140002b9a
lea rcx, [0x140033c68]
call fcn.140008560
lea rcx, [0x140002160]
call fcn.14000acf4
lea rcx, [0x140033e78]
call fcn.14000aaf8
jmp 0x140002b9a
lea rcx, [0x140033e78]
call fcn.14000aa90
cmp dword [0x140033e78], 0xffffffff
jne 0x140002bd8
lea rcx, [0x140033c68]
call fcn.140008560
lea rcx, [0x140002160]
call fcn.14000acf4
lea rcx, [0x140033e78]
call fcn.14000aaf8
jmp 0x140002bd8
lea rcx, [0x140033e78]
call fcn.14000aa90
cmp dword [0x140033e78], 0xffffffff
jne 0x140002c13
lea rcx, [0x140033c68]
call fcn.140008560
lea rcx, [0x140002160]
call fcn.14000acf4
lea rcx, [0x140033e78]
call fcn.14000aaf8
jmp 0x140002c13
lea rcx, [0x140033e78]
call fcn.14000aa90
cmp dword [0x140033e78], 0xffffffff
jne 0x140002b52
lea rcx, [0x140033c68]
call fcn.140008560
lea rcx, [0x140002160]
call fcn.14000acf4
lea rcx, [0x140033e78]
call fcn.14000aaf8
jmp 0x140002b52
lea rcx, [0x140033e78]
call fcn.14000aa90
cmp dword [0x140033e78], 0xffffffff
jne 0x140002c4e
lea rcx, [0x140033c68]
call fcn.140008560
lea rcx, [0x140002160]
call fcn.14000acf4
lea rcx, [0x140033e78]
call fcn.14000aaf8
jmp 0x140002c4e