Function at 0x402c90
Capabilities:
Copy file
Create service
Delete file
Modify service
Move file
Set registry value
Stop service

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x454
mov eax, dword [0x431014]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor eax, eax
push 0xf003f
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
je 0x402d32
mov esi, eax
lea edi, [ebp - 0x426]
push 0x105
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x402d73
push 0xf01ff
push str.MozillaMaintenance
push esi
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test ebx, ebx
jne 0x402db4
cmp eax, 0x424
je 0x402db4
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403aee
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_open_service.____lu_
jmp 0x402da0
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403a68
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_open_service_manager.____lu_
push 0x4327c8
call fcn.004086b0
add esp, 0xc
xor edi, edi
jmp 0x403491
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403aab
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_obtain_module_filename_when_attempting_to_install_service.____lu_
push 0x4327c8
call fcn.004086b0
add esp, 0xc
xor edi, edi
jmp 0x40348a
test ebx, ebx
je 0x40313f
mov ecx, ebx
lea ebx, [ebp - 0x21c]
mov dword [ebx], 0
mov dword [ebp - 0x460], ecx
mov edx, ebx
call fcn.00404630
mov edi, eax
mov eax, dword [ebx]
test eax, eax
je 0x402de6
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
test edi, edi
mov ebx, dword [ebp - 0x460]
je 0x402e2a
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403b31
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_reset_security_ACE_on_service_handle._It_might_not_be_possible_to_start_the_service._This_error_should_never_happen.____lu_
push 0x4327c8
call fcn.004086b0
add esp, 0xc
lea edi, [ebp - 0x430]
xor eax, eax
push edi
push eax
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
test eax, eax
jne 0x402e4f
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x4033ca
mov dword [ebp - 0x454], esi
mov esi, dword [ebp - 0x430]
push esi
call fcn.00409f5e
add esp, 4
push edi
mov edi, eax
push esi
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_QueryServiceConfigW]
test eax, eax
je 0x403209
cmp byte [0x4329e0], 0
mov dword [ebp - 0x458], edi
je 0x403257
push dword [edi + 0xc]
call dword [sym.imp.SHLWAPI.dll_PathUnquoteSpacesW]
mov ecx, dword [edi + 0xc]
lea eax, [ebp - 0x440]
lea esi, [ebp - 0x43c]
lea edi, [ebp - 0x438]
lea edx, [ebp - 0x434]
push eax
push esi
push edi
call fcn.004042d0
add esp, 0xc
mov dword [ebp - 0x45c], eax
lea eax, [ebp - 0x450]
lea esi, [ebp - 0x44c]
lea edi, [ebp - 0x448]
lea ecx, [ebp - 0x426]
lea edx, [ebp - 0x444]
push eax
push esi
push edi
call fcn.004042d0
add esp, 0xc
test eax, eax
je 0x40343a
cmp dword [ebp + 8], 2
mov esi, dword [ebp - 0x454]
je 0x402f18
cmp dword [ebp - 0x45c], 0
je 0x402f18
mov eax, dword [ebp - 0x444]
cmp dword [ebp - 0x434], eax
jae 0x4034e4
mov ecx, ebx
call fcn.00402780
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor eax, eax
push 0xf003f
push eax
push eax
call dword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
test eax, eax
je 0x4034a8
mov edi, eax
push 0xf01ff
push str.MozillaMaintenance
push eax
call dword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov ebx, eax
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
mov ecx, dword [ecx + 4]
test ebx, ebx
je 0x403536
cmp eax, ecx
jg 0x403d49
push str.Sending_stop_request...
push 0x4327c8
call fcn.004085c0
add esp, 8
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0x21c]
push eax
push 1
push ebx
call dword [sym.imp.ADVAPI32.dll_ControlService]
test eax, eax
jne 0x402ff2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x426
je 0x402ff2
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403f61
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_sending_stop_request.____lu_
push 0x4327c8
call fcn.004086b0
add esp, 0xc
mov esi, dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push edi
call esi
push ebx
call esi
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403d8c
push str.Waiting_for_service_stop...
push 0x4327c8
call fcn.004085c0
add esp, 8
mov esi, 0x1e
push esi
push str.MozillaMaintenance
call fcn.004080a0
add esp, 8
mov ebx, eax
push esi
push 0x42c32a
call fcn.00408390
add esp, 8
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403dcf
push ebx
push str.Done_waiting_for_service_stop__last_service_state:__lu
push 0x4327c8
call fcn.004085c0
add esp, 0xc
xor edi, edi
cmp ebx, 1
mov esi, dword [ebp - 0x454]
jne 0x403560
mov edi, dword [ebp - 0x458]
push dword [edi + 0xc]
lea ebx, [ebp - 0x426]
push ebx
call fcn.00413bc7
add esp, 8
test eax, eax
je 0x403654
push 0
push dword [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x403690
xor edi, edi
push 0x100
push edi
lea ebx, [ebp - 0x21c]
push ebx
call fcn.0040c4c0
add esp, 0xc
push dword [ebp - 0x450]
push dword [ebp - 0x44c]
push dword [ebp - 0x448]
push dword [ebp - 0x444]
push str._d._d._d._d
push 0x80
push ebx
call fcn.00401390
add esp, 0x1c
lea eax, [ebp - 0x42c]
push eax
push 0x20206
push edi
push str.SoftwareMicrosoftWindowsCurrentVersionUninstallMozillaMaintenanceService
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x4037df
lea ebx, [ebp - 0x426]
jmp 0x40381e
cmp dword [ebp + 8], 0
je 0x4033c2
push edi
call dword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
sub esp, 0x34
xorps xmm0, xmm0
movups xmmword [esp + 0x20], xmm0
mov dword [esp + 0x1c], edi
movaps xmm0, xmmword [0x429a50]
movups xmmword [esp + 0xc], xmm0
mov dword [esp], esi
mov dword [esp + 0x30], 0
mov dword [esp + 8], str.Mozilla_Maintenance_Service
mov dword [esp + 4], str.MozillaMaintenance
call dword [sym.imp.ADVAPI32.dll_CreateServiceW]
test eax, eax
je 0x403408
mov ebx, eax
lea edi, [ebp - 0x21c]
mov dword [edi], 0
mov ecx, eax
mov edx, edi
call fcn.00404630
mov ecx, dword [edi]
test ecx, ecx
je 0x4031bc
push ecx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, edi
test eax, eax
je 0x4031fa
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403c80
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_set_security_ACE_on_service_handle__the_service_will_not_be_able_to_be_started_from_unelevated_processes._This_error_should_never_happen.____lu_
push 0x4327c8
call fcn.004086b0
add esp, 0xc
mov ecx, ebx
call fcn.00402780
xor edi, edi
inc edi
jmp 0x403483
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
mov esi, dword [ebp - 0x454]
jg 0x403b74
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_open_service_but_could_not_query_service_config.____lu_
push 0x4327c8
call fcn.004086b0
add esp, 0xc
push edi
call fcn.0040a1ea
add esp, 4
jmp 0x403404
mov edi, dword [edi + 0xc]
push edi
call fcn.0040a09e
add esp, 4
cmp eax, 3
jb 0x4032c8
mov esi, eax
push str.maintenanceservice_tmp.exe
push edi
call fcn.0040c6be
add esp, 8
test eax, eax
jne 0x4032c8
cmp word [edi], 0x22
jne 0x4032c8
cmp word [edi + esi*2 - 2], 0x22
jne 0x4032c8
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403e98
push str.The_MozillaMaintenance_service_path_is_correct.
push 0x4327c8
call fcn.004085c0
add esp, 8
mov edi, dword [ebp - 0x458]
jmp 0x402e8b
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
mov esi, dword [ebp - 0x454]
jg 0x403bb7
push edi
push str.The_MozillaMaintenance_path_is_NOT_correct._It_was:__ls
push 0x4327c8
call fcn.004085c0
add esp, 0xc
push 0x20a
push 0
lea ebx, [ebp - 0x21c]
push ebx
call fcn.0040c4c0
add esp, 0xc
push 0x104
push edi
mov edi, ebx
push ebx
call fcn.0040a1ef
add esp, 0xc
push ebx
call dword [sym.imp.SHLWAPI.dll_PathUnquoteSpacesW]
push ebx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
jne 0x403573
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
mov edi, str.Couldnt_remove_file_spec.____lu_
cmp eax, dword [ecx + 4]
mov ebx, dword [ebp - 0x460]
jg 0x403899
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push 0x4327c8
call fcn.004086b0
add esp, 0xc
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403bfa
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_fix_service_path._This_should_never_happen.____lu_
push 0x4327c8
call fcn.004086b0
add esp, 0xc
xor edi, edi
inc edi
jmp 0x403475
xor edi, edi
inc edi
jmp 0x40348a
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403c3d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_determine_buffer_size_for_query_service_config.____lu_
push 0x4327c8
call fcn.004086b0
add esp, 0xc
xor edi, edi
jmp 0x403483
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403cc3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_create_Windows_service._This_error_should_never_happen_since_a_service_install_should_only_be_called_when_elevated.____lu_
jmp 0x402da0
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
mov esi, dword [ebp - 0x454]
jg 0x403d06
push str.Could_not_obtain_version_number_from_new_path
push 0x4327c8
call fcn.004086b0
add esp, 8
xor edi, edi
push dword [ebp - 0x458]
call fcn.0040a1ea
add esp, 4
push ebx
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
push esi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040ac85
mov eax, edi
add esp, 0x454
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403e12
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_open_service_manager.____lu_
push 0x4327c8
call fcn.004086b0
add esp, 0xc
jmp 0x40355e
jne 0x403520
mov eax, dword [ebp - 0x448]
cmp dword [ebp - 0x438], eax
jb 0x402f18
jne 0x403520
mov eax, dword [ebp - 0x44c]
cmp dword [ebp - 0x43c], eax
jb 0x402f18
jne 0x403520
mov eax, dword [ebp - 0x440]
cmp eax, dword [ebp - 0x450]
jb 0x402f18
push 4
push 0
lea eax, [ebp - 0x426]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x4033ba
cmp eax, ecx
jg 0x403e55
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_open_service.____lu_
push 0x4327c8
call fcn.004086b0
add esp, 0xc
push edi
call dword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
xor edi, edi
push dword [ebp - 0x458]
call fcn.0040a1ea
add esp, 4
jmp 0x40348a
push 0x42c32a
push edi
call fcn.00424b70
add esp, 8
test eax, eax
mov ebx, dword [ebp - 0x460]
je 0x4037b4
push edi
call dword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
sub esp, 0x2c
xor eax, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
xorps xmm0, xmm0
movups xmmword [esp + 0x14], xmm0
mov dword [esp + 0x10], edi
xor eax, eax
dec eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [sym.imp.ADVAPI32.dll_ChangeServiceConfigW]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov edx, dword [edx + ecx*4]
mov ecx, dword [0x4329d4]
mov edx, dword [edx + 4]
test eax, eax
je 0x40388c
cmp ecx, edx
jg 0x4040b0
push edi
push str.Fixed_service_path_to:__ls.
push 0x4327c8
call fcn.004085c0
add esp, 0xc
mov byte [0x4329e0], 1
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4040f3
mov edi, dword [ebp + 8]
push edi
push str.Restarting_install_action:__d
push 0x4327c8
call fcn.004085c0
add esp, 0xc
push edi
call fcn.00402c90
add esp, 4
mov edi, eax
jmp 0x403475
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403fa4
push ebx
push str.File_is_already_in_the_correct_location__no_action_needed_for_upgrade.__The_path_is:___ls_
push 0x4327c8
call fcn.004085c0
add esp, 0xc
xor edi, edi
inc edi
jmp 0x403560
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40402a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_overwrite_old_service_binary_file._This_should_never_happen__but_if_it_does_the_next_upgrade_will_fix_it__the_service_is_not_a_critical_component_that_needs_to_be_installed_for_upgrades_to_work.____lu_
push 0x4327c8
call fcn.004086b0
add esp, 0xc
mov ebx, dword [edi + 0xc]
push ebx
call fcn.0040a09e
add esp, 4
cmp eax, 4
jb 0x4038dc
mov edi, eax
inc eax
lea edx, [edi*2 + 2]
mov dword [ebp - 0x460], edx
xor ecx, ecx
dec ecx
test eax, eax
cmovns ecx, edx
push ecx
call fcn.00409f5e
add esp, 4
mov esi, eax
push dword [ebp - 0x460]
push 0
push eax
call fcn.0040c4c0
add esp, 0xc
push edi
push ebx
push esi
call fcn.0040a1ef
add esp, 0xc
lea eax, [esi + edi*2]
add eax, 0xfffffffa
mov edi, esi
push 3
push 0x42c4cc
push eax
call fcn.0040a1ef
add esp, 0xc
push 9
push esi
mov esi, dword [ebp - 0x458]
push dword [esi + 0xc]
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x403916
push 0
push dword [esi + 0xc]
lea ebx, [ebp - 0x426]
push ebx
call dword [sym.imp.KERNEL32.dll_CopyFileW]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov edx, dword [edx + ecx*4]
mov ecx, dword [0x4329d4]
mov edx, dword [edx + 4]
test eax, eax
mov dword [ebp - 0x45c], edi
je 0x403963
cmp ecx, edx
mov esi, dword [ebp - 0x454]
jg 0x404179
push str.The_new_service_binary_was_copied_in_by_first_moving_the_old_one_out_of_the_way.
push 0x4327c8
call fcn.004085c0
add esp, 8
xor edi, edi
inc edi
jmp 0x403985
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
mov edi, str.Couldnt_append_file_spec.____lu_
cmp eax, dword [ecx + 4]
jle 0x40336b
jmp 0x403899
push ebx
call fcn.0040a09e
add esp, 4
lea eax, [eax*2 + 2]
push eax
push ebx
push 1
push 0
push str.DisplayVersion
push dword [ebp - 0x42c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
push dword [ebp - 0x42c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test edi, edi
lea ebx, [ebp - 0x426]
je 0x403851
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403fe7
push str.The_uninstaller_version_string_could_not_be_updated.
push 0x4327c8
call fcn.004085c0
add esp, 8
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x403edb
push str.The_new_service_binary_was_copied_in.
push 0x4327c8
call fcn.004085c0
add esp, 8
xor edi, edi
inc edi
jmp 0x403a03
mov edi, str.Could_not_fix_service_path.____lu_
cmp ecx, edx
jle 0x40336b
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x40336b
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x40336b
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x404136
push str.Service_binary_path_was_less_than_3__service_will_not_be_updated.__This_should_never_happen.
push 0x4327c8
call fcn.004086b0
add esp, 8
xor edi, edi
jmp 0x4039fd
mov eax, dword [0x4329d4]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4041ff
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push dword [esi + 0xc]
push str.Could_not_move_old_service_file_out_of_the_way_from:___ls__to___ls_._Service_will_not_be_upgraded.____lu_
push 0x4327c8
call fcn.004086b0
add esp, 0x14
mov ebx, edi
xor edi, edi
mov esi, dword [ebp - 0x454]
jmp 0x4039f4
cmp ecx, edx
jg 0x404242
push str.The_new_service_binary_could_not_be_copied_in._The_service_will_not_be_upgraded.
push 0x4327c8
call fcn.004086b0
add esp, 8
xor edi, edi
mov esi, dword [ebp - 0x454]
push dword [ebp - 0x45c]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov edx, dword [edx + ecx*4]
mov ecx, dword [0x4329d4]
mov edx, dword [edx + 4]
test eax, eax
je 0x4039d4
cmp ecx, edx
jg 0x4041bc
mov ebx, dword [ebp - 0x45c]
push ebx
push str.The_old_temp_service_path_was_deleted:__ls.
push 0x4327c8
call fcn.004085c0
add esp, 0xc
jmp 0x4039f4
cmp ecx, edx
jg 0x404285
push str.The_old_temp_service_path_was_not_deleted.
push 0x4327c8
call fcn.004086b0
add esp, 8
mov ebx, dword [ebp - 0x45c]
push ebx
call fcn.0040a1ea
add esp, 4
lea ebx, [ebp - 0x426]
push 4
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [0x431bbc]
mov edx, dword fs:[0x2c]
mov edx, dword [edx + ecx*4]
mov ecx, dword [0x4329d4]
mov edx, dword [edx + 4]
test eax, eax
je 0x403a48
cmp ecx, edx
jg 0x403f1e
push ebx
push str.Deleting_the_old_file_path_on_the_next_reboot:__ls.
push 0x4327c8
call fcn.004085c0
jmp 0x403a60
cmp ecx, edx
jg 0x40406d
push ebx
push str.Call_to_delete_the_old_file_path_failed:__ls.
push 0x4327c8
call fcn.004086b0
add esp, 0xc
jmp 0x403560
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x402d53
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x402d53
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x402d94
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x402d94
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x402d24
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x402d24
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x402e11
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x402e11
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x403230
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x403230
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x4032ef
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x4032ef
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x4033a1
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x4033a1
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x4033eb
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x4033eb
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x4031e1
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x4031e1
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x403429
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x403429
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x403461
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x403461
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x402f7d
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x402f7d
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x40301f
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x40301f
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x403075
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x403075
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x4034c9
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x4034c9
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x40353e
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x40353e
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x4032ab
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x4032ab
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x403872
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x403872
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x403a36
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x403a36
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x402fd9
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x402fd9
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x403675
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x403675
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x40383f
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x40383f
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x4036b1
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x4036b1
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x403a50
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x403a50
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x4035f3
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x4035f3
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x40362e
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x40362e
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x4038fd
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x4038fd
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x40379a
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x40379a
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x4039b9
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x4039b9
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x403937
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x403937
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x40396b
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x40396b
push 0x4329d4
call fcn.0040a2c7
add esp, 4
cmp dword [0x4329d4], 0xffffffff
jne 0x4039dc
mov dword [0x4327c8], 0
push 0x402500
call fcn.0040a48c
add esp, 4
push 0x4329d4
call fcn.0040a319
add esp, 4
jmp 0x4039dc