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

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x970
mov rsi, rcx
mov rax, qword [0x140037010]
xor rax, rsp
mov qword [rsp + 0x968], rax
lea rdx, [rsp + 0x750]
xor ecx, ecx
mov r8d, 0x105
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x140002b2a
lea rcx, [rsp + 0x750]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
jne 0x140002b87
mov eax, dword [0x1400393c0]
mov ecx, dword [0x140037cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002dc8
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140038fa8]
lea rdx, str.Could_not_remove_file_spec_when_attempting_to_modify_service_description.____d_
jmp 0x140002b63
mov eax, dword [0x1400393c0]
mov ecx, dword [0x140037cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002e0b
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140038fa8]
lea rdx, str.Could_not_obtain_module_filename_when_attempting_to_modify_service_description.____d_
mov r8d, eax
call fcn.14000d2d0
mov rcx, qword [rsp + 0x968]
xor rcx, rsp
call fcn.1400192f0
nop
add rsp, 0x970
pop rbx
pop rdi
pop rsi
ret
lea rdx, str.updater.ini
lea rcx, [rsp + 0x750]
call int.14000e0c0
test eax, eax
je 0x140002c4c
lea rcx, [rsp + 0x750]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140002c8a
mov qword [rsp + 0x20], 0
lea rdx, str.MozillaMaintenanceDescription
lea rcx, [rsp + 0x750]
lea r9, [rsp + 0x40]
mov r8d, 1
call fcn.14000c360
test eax, eax
je 0x140002cc8
mov byte [rsp + 0x40], 0
lea rcx, [rsp + 0x4f8]
lea rdx, [rsp + 0x40]
mov r8d, 0x257
call fcn.140017220
mov byte [rsp + 0x74f], 0
mov eax, dword [0x1400393c0]
mov ecx, dword [0x140037cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002e91
lea rcx, [0x140038fa8]
lea rdx, str.updater.ini_file_does_not_contain_a_maintenance_service_description.
call fcn.14000d2d0
jmp 0x140002b6b
mov eax, dword [0x1400393c0]
mov ecx, dword [0x140037cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002e4e
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140038fa8]
lea rdx, str.Could_not_append_updater.ini_filename_when_attempting_to_modify_service_description.____d_
jmp 0x140002b63
mov eax, dword [0x1400393c0]
mov ecx, dword [0x140037cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002ed4
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140038fa8]
lea rdx, str.updater.ini_file_does_not_exist__will_not_modify_service_description.____d_
jmp 0x140002b63
lea rbx, [rsp + 0x4f8]
lea rdi, [rsp + 0x40]
mov r8d, 0x257
mov rcx, rbx
mov rdx, rdi
call fcn.140017220
mov byte [rsp + 0x74f], 0
mov rcx, rbx
call fcn.140017160
test rax, rax
je 0x140002c0f
mov qword [rsp + 0x20], rdi
mov dword [rsp + 0x28], 0x258
lea r8, [rsp + 0x4f8]
mov ecx, 0xfde9
xor edx, edx
mov r9d, 0xffffffff
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
test eax, eax
je 0x140002d8a
mov qword [rsp + 0x38], rdi
lea r8, [rsp + 0x38]
mov rcx, rsi
mov edx, 1
call qword [sym.imp.ADVAPI32.dll_ChangeServiceConfig2W]
mov esi, eax
mov eax, dword [0x1400393c0]
mov ecx, dword [0x140037cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002f17
test esi, esi
je 0x140002f5d
lea rcx, [0x140038fa8]
lea rdx, str.The_service_description_was_updated_successfully.
call fcn.14000d250
jmp 0x140002b6b
mov eax, dword [0x1400393c0]
mov ecx, dword [0x140037cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002f76
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140038fa8]
lea rdx, str.Could_not_convert_description_to_wide_string_format.____d_
jmp 0x140002b63
lea rcx, [0x1400393c0]
call fcn.14000e3b0
mov eax, dword [0x1400393c0]
cmp eax, 0xffffffff
jne 0x140002b14
mov qword [0x140038fa8], 0
lea rcx, [0x1400022c0]
call fcn.14000e568
lea rcx, [0x1400393c0]
call fcn.14000e418
jmp 0x140002b14
lea rcx, [0x1400393c0]
call fcn.14000e3b0
mov eax, dword [0x1400393c0]
cmp eax, 0xffffffff
jne 0x140002b4f
mov qword [0x140038fa8], 0
lea rcx, [0x1400022c0]
call fcn.14000e568
lea rcx, [0x1400393c0]
call fcn.14000e418
jmp 0x140002b4f
lea rcx, [0x1400393c0]
call fcn.14000e3b0
mov eax, dword [0x1400393c0]
cmp eax, 0xffffffff
jne 0x140002c71
mov qword [0x140038fa8], 0
lea rcx, [0x1400022c0]
call fcn.14000e568
lea rcx, [0x1400393c0]
call fcn.14000e418
jmp 0x140002c71
lea rcx, [0x1400393c0]
call fcn.14000e3b0
mov eax, dword [0x1400393c0]
cmp eax, 0xffffffff
jne 0x140002c34
mov qword [0x140038fa8], 0
lea rcx, [0x1400022c0]
call fcn.14000e568
lea rcx, [0x1400393c0]
call fcn.14000e418
jmp 0x140002c34
lea rcx, [0x1400393c0]
call fcn.14000e3b0
mov eax, dword [0x1400393c0]
cmp eax, 0xffffffff
jne 0x140002caf
mov qword [0x140038fa8], 0
lea rcx, [0x1400022c0]
call fcn.14000e568
lea rcx, [0x1400393c0]
call fcn.14000e418
jmp 0x140002caf
lea rcx, [0x1400393c0]
call fcn.14000e3b0
mov eax, dword [0x1400393c0]
cmp eax, 0xffffffff
jne 0x140002d6a
mov qword [0x140038fa8], 0
lea rcx, [0x1400022c0]
call fcn.14000e568
lea rcx, [0x1400393c0]
call fcn.14000e418
test esi, esi
jne 0x140002d72
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140038fa8]
lea rdx, str.Could_not_change_service_config.____d_
jmp 0x140002b63
lea rcx, [0x1400393c0]
call fcn.14000e3b0
mov eax, dword [0x1400393c0]
cmp eax, 0xffffffff
jne 0x140002daf
mov qword [0x140038fa8], 0
lea rcx, [0x1400022c0]
call fcn.14000e568
lea rcx, [0x1400393c0]
call fcn.14000e418
jmp 0x140002daf