Function at 0x1400029d0
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 [0x140038010]
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 0x140002a5a
lea rcx, [rsp + 0x750]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
jne 0x140002ab7
mov eax, dword [0x14003a1b8]
mov ecx, dword [0x140038cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002cf8
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140039fa8]
lea rdx, str.Could_not_remove_file_spec_when_attempting_to_modify_service_description.____d_
jmp 0x140002a93
mov eax, dword [0x14003a1b8]
mov ecx, dword [0x140038cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002d39
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140039fa8]
lea rdx, str.Could_not_obtain_module_filename_when_attempting_to_modify_service_description.____d_
mov r8d, eax
call fcn.14000cf10
mov rcx, qword [rsp + 0x968]
xor rcx, rsp
call fcn.140019600
nop
add rsp, 0x970
pop rbx
pop rdi
pop rsi
ret
lea rdx, str.updater.ini
lea rcx, [rsp + 0x750]
call fcn.14000e380
test eax, eax
je 0x140002b7c
lea rcx, [rsp + 0x750]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140002bba
mov qword [rsp + 0x20], 0
lea rdx, str.MozillaMaintenanceDescription
lea rcx, [rsp + 0x750]
lea r9, [rsp + 0x40]
mov r8d, 1
call fcn.14000c020
test eax, eax
je 0x140002bf8
mov byte [rsp + 0x40], 0
lea rcx, [rsp + 0x4f8]
lea rdx, [rsp + 0x40]
mov r8d, 0x257
call fcn.140017530
mov byte [rsp + 0x74f], 0
mov eax, dword [0x14003a1b8]
mov ecx, dword [0x140038cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002dbb
lea rcx, [0x140039fa8]
lea rdx, str.updater.ini_file_does_not_contain_a_maintenance_service_description.
call fcn.14000cf10
jmp 0x140002a9b
mov eax, dword [0x14003a1b8]
mov ecx, dword [0x140038cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002d7a
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140039fa8]
lea rdx, str.Could_not_append_updater.ini_filename_when_attempting_to_modify_service_description.____d_
jmp 0x140002a93
mov eax, dword [0x14003a1b8]
mov ecx, dword [0x140038cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002dfc
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140039fa8]
lea rdx, str.updater.ini_file_does_not_exist__will_not_modify_service_description.____d_
jmp 0x140002a93
lea rbx, [rsp + 0x4f8]
lea rdi, [rsp + 0x40]
mov r8d, 0x257
mov rcx, rbx
mov rdx, rdi
call fcn.140017530
mov byte [rsp + 0x74f], 0
mov rcx, rbx
call fcn.140017470
test rax, rax
je 0x140002b3f
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 0x140002cba
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 [0x14003a1b8]
mov ecx, dword [0x140038cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002e3d
test esi, esi
je 0x140002e81
lea rcx, [0x140039fa8]
lea rdx, str.The_service_description_was_updated_successfully.
call fcn.14000ce90
jmp 0x140002a9b
mov eax, dword [0x14003a1b8]
mov ecx, dword [0x140038cbc]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140002e9a
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140039fa8]
lea rdx, str.Could_not_convert_description_to_wide_string_format.____d_
jmp 0x140002a93
lea rcx, [0x14003a1b8]
call fcn.14000e750
cmp dword [0x14003a1b8], 0xffffffff
jne 0x140002a44
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e908
lea rcx, [0x14003a1b8]
call fcn.14000e7b8
jmp 0x140002a44
lea rcx, [0x14003a1b8]
call fcn.14000e750
cmp dword [0x14003a1b8], 0xffffffff
jne 0x140002a7f
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e908
lea rcx, [0x14003a1b8]
call fcn.14000e7b8
jmp 0x140002a7f
lea rcx, [0x14003a1b8]
call fcn.14000e750
cmp dword [0x14003a1b8], 0xffffffff
jne 0x140002ba1
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e908
lea rcx, [0x14003a1b8]
call fcn.14000e7b8
jmp 0x140002ba1
lea rcx, [0x14003a1b8]
call fcn.14000e750
cmp dword [0x14003a1b8], 0xffffffff
jne 0x140002b64
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e908
lea rcx, [0x14003a1b8]
call fcn.14000e7b8
jmp 0x140002b64
lea rcx, [0x14003a1b8]
call fcn.14000e750
cmp dword [0x14003a1b8], 0xffffffff
jne 0x140002bdf
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e908
lea rcx, [0x14003a1b8]
call fcn.14000e7b8
jmp 0x140002bdf
lea rcx, [0x14003a1b8]
call fcn.14000e750
cmp dword [0x14003a1b8], 0xffffffff
jne 0x140002c9a
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e908
lea rcx, [0x14003a1b8]
call fcn.14000e7b8
test esi, esi
jne 0x140002ca2
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140039fa8]
lea rdx, str.Could_not_change_service_config.____d_
jmp 0x140002a93
lea rcx, [0x14003a1b8]
call fcn.14000e750
cmp dword [0x14003a1b8], 0xffffffff
jne 0x140002cdf
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e908
lea rcx, [0x14003a1b8]
call fcn.14000e7b8
jmp 0x140002cdf