Function at 0x140002780
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 0x14000280a
lea rcx, [rsp + 0x750]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
jne 0x140002867
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 0x140002aa8
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 0x140002843
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 0x140002ae9
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.14000ccd0
mov rcx, qword [rsp + 0x968]
xor rcx, rsp
call fcn.1400193c0
nop
add rsp, 0x970
pop rbx
pop rdi
pop rsi
ret
lea rdx, str.updater.ini
lea rcx, [rsp + 0x750]
call fcn.14000e140
test eax, eax
je 0x14000292c
lea rcx, [rsp + 0x750]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14000296a
mov qword [rsp + 0x20], 0
lea rdx, str.MozillaMaintenanceDescription
lea rcx, [rsp + 0x750]
lea r9, [rsp + 0x40]
mov r8d, 1
call fcn.14000bde0
test eax, eax
je 0x1400029a8
mov byte [rsp + 0x40], 0
lea rcx, [rsp + 0x4f8]
lea rdx, [rsp + 0x40]
mov r8d, 0x257
call fcn.1400172f0
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 0x140002b6b
lea rcx, [0x140039fa8]
lea rdx, str.updater.ini_file_does_not_contain_a_maintenance_service_description.
call fcn.14000ccd0
jmp 0x14000284b
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 0x140002b2a
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 0x140002843
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 0x140002bac
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 0x140002843
lea rbx, [rsp + 0x4f8]
lea rdi, [rsp + 0x40]
mov r8d, 0x257
mov rcx, rbx
mov rdx, rdi
call fcn.1400172f0
mov byte [rsp + 0x74f], 0
mov rcx, rbx
call fcn.140017230
test rax, rax
je 0x1400028ef
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 0x140002a6a
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 0x140002bed
test esi, esi
je 0x140002c31
lea rcx, [0x140039fa8]
lea rdx, str.The_service_description_was_updated_successfully.
call fcn.14000cc50
jmp 0x14000284b
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 0x140002c4a
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140039fa8]
lea rdx, str.Could_not_convert_description_to_wide_string_format.____d_
jmp 0x140002843
lea rcx, [0x14003a1b8]
call fcn.14000e510
cmp dword [0x14003a1b8], 0xffffffff
jne 0x1400027f4
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e6c8
lea rcx, [0x14003a1b8]
call fcn.14000e578
jmp 0x1400027f4
lea rcx, [0x14003a1b8]
call fcn.14000e510
cmp dword [0x14003a1b8], 0xffffffff
jne 0x14000282f
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e6c8
lea rcx, [0x14003a1b8]
call fcn.14000e578
jmp 0x14000282f
lea rcx, [0x14003a1b8]
call fcn.14000e510
cmp dword [0x14003a1b8], 0xffffffff
jne 0x140002951
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e6c8
lea rcx, [0x14003a1b8]
call fcn.14000e578
jmp 0x140002951
lea rcx, [0x14003a1b8]
call fcn.14000e510
cmp dword [0x14003a1b8], 0xffffffff
jne 0x140002914
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e6c8
lea rcx, [0x14003a1b8]
call fcn.14000e578
jmp 0x140002914
lea rcx, [0x14003a1b8]
call fcn.14000e510
cmp dword [0x14003a1b8], 0xffffffff
jne 0x14000298f
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e6c8
lea rcx, [0x14003a1b8]
call fcn.14000e578
jmp 0x14000298f
lea rcx, [0x14003a1b8]
call fcn.14000e510
cmp dword [0x14003a1b8], 0xffffffff
jne 0x140002a4a
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e6c8
lea rcx, [0x14003a1b8]
call fcn.14000e578
test esi, esi
jne 0x140002a52
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [0x140039fa8]
lea rdx, str.Could_not_change_service_config.____d_
jmp 0x140002843
lea rcx, [0x14003a1b8]
call fcn.14000e510
cmp dword [0x14003a1b8], 0xffffffff
jne 0x140002a8f
mov qword [0x140039fa8], 0
lea rcx, [0x140002090]
call fcn.14000e6c8
lea rcx, [0x14003a1b8]
call fcn.14000e578
jmp 0x140002a8f