Function at 0x405690
Capabilities:
Check if file exists
Copy file
Create directory
Create process on windows
Create thread
Delete file
Get common file path
Get file attributes
Move file
Read file on windows
Set registry value
Write and execute a file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xe7c
mov eax, dword [0x440014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push 0x4395a6
call fcn.0041fee1
add esp, 4
test eax, eax
je 0x4056bf
cmp byte [eax], 0
setne al
jmp 0x4056c1
xor eax, eax
mov byte [0x4420cc], al
push str.MOZ_USING_SERVICE
call fcn.0041d246
add esp, 4
cmp dword [ebp + 8], 3
jg 0x4056fa
push 2
call fcn.0041552f
add esp, 4
push eax
push 1
push 0x6a
push str.Usage:_updater_patch_dir_install_dir_apply_to_dir__wait_pid__callback_working_dir_callback_path_args...___n
call fcn.0041fc54
add esp, 0x10
jmp 0x4062e1
mov eax, dword [ebp + 0xc]
lea ebx, [eax + 4]
mov ecx, 0x104
mov edi, 0x4418a4
push ecx
push dword [eax + 4]
push edi
call fcn.00412348
add esp, 0xc
mov word [0x441aaa], 0
lea esi, [ebp - 0x218]
push 0x208
push 0
push esi
call fcn.00414cd0
add esp, 0xc
push edi
push str._supdate_elevated.lock
mov eax, 0x104
push eax
push esi
call fcn.00404340
add esp, 0x10
mov al, 1
cmp byte [0x4420cc], 0
jne 0x405772
push esi
call fcn.0041e22e
add esp, 4
test eax, eax
je 0x405770
call fcn.00419e69
cmp dword [eax], 2
setne al
jmp 0x405772
xor eax, eax
mov byte [0x4422d8], al
push dword [ebx]
call fcn.00410990
add esp, 4
test al, al
je 0x4058fc
mov edi, dword [ebp + 0xc]
push dword [edi + 8]
call fcn.00410990
add esp, 4
test al, al
je 0x405913
mov dword [ebp - 0xe88], ebx
mov esi, 0x4420d0
push 0x104
push dword [edi + 8]
push esi
call fcn.00412348
add esp, 0xc
mov word [0x4422d6], 0
push 0x5c
push esi
call fcn.00415097
add esp, 8
test eax, eax
je 0x4057df
cmp word [eax + 2], 0
jne 0x4057df
mov word [eax], 0
lea ebx, [ebp - 0xc6c]
push 0x4418a4
push str._s_update.status
push 0x104
push ebx
call fcn.00404340
add esp, 0x10
push 0x43acce
push ebx
call fcn.0041e056
add esp, 8
test eax, eax
je 0x40584d
mov edi, eax
xorps xmm0, xmm0
lea esi, [ebp - 0x424]
movups xmmword [esi + 0x10], xmm0
movups xmmword [esi], xmm0
push eax
push 0x1f
push 1
push esi
call fcn.0041fa36
add esp, 0x10
mov ebx, eax
push edi
call fcn.0041f3e2
add esp, 4
test eax, eax
je 0x40585c
mov dword [ebp - 0xe84], 0
jmp 0x405952
mov dword [ebp - 0xe84], 0
jmp 0x405961
mov byte [ebp + ebx - 0x424], 0
push 0x3a
push esi
call fcn.00414e30
add esp, 8
mov ebx, eax
test eax, eax
jne 0x405894
push 0xa
push esi
call fcn.00414e30
add esp, 8
test eax, eax
jne 0x405894
push esi
call fcn.00420710
add esp, 4
add eax, ebp
add eax, 0xfffffbdc
sub eax, esi
cmp eax, 0xf
jne 0x4058b3
push 0xf
push str.pending_service
push esi
call fcn.00413dbe
add esp, 0xc
test eax, eax
je 0x40594a
test ebx, ebx
jne 0x4058da
push 0xa
push esi
call fcn.00414e30
add esp, 8
mov ebx, eax
test eax, eax
jne 0x4058da
push esi
call fcn.00420710
add esp, 4
lea ebx, [eax + ebp]
add ebx, 0xfffffbdc
sub ebx, esi
cmp ebx, 0xf
jne 0x40583e
push 0xf
push str.applied_service
push esi
call fcn.00413dbe
add esp, 0xc
test eax, eax
sete al
jmp 0x40594c
mov esi, dword [ebx]
push 2
call fcn.0041552f
add esp, 4
push esi
push str.The_patch_directory_path_is_not_valid_for_this_application___S__n
jmp 0x4062d8
lea esi, [ebp - 0xc6c]
push 0x4b
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov esi, dword [edi + 8]
push 2
call fcn.0041552f
add esp, 4
push esi
push str.The_install_directory_path_is_not_valid_for_this_application___S__n
jmp 0x4062d8
mov al, 1
mov dword [ebp - 0xe84], eax
lea ebx, [ebp - 0xc6c]
push edi
call fcn.0041f2e7
add esp, 4
xor eax, eax
mov dword [ebp - 0xc6c], eax
sub esp, 0x24
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], eax
movaps xmm0, xmmword [0x437540]
movups xmmword [esp + 8], xmm0
mov eax, 0x80000001
mov dword [esp], eax
mov dword [esp + 4], str.SoftwareClassesApplications
xor edi, edi
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
call esi
push dword [ebp - 0xc6c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
sub esp, 0x24
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], edi
movaps xmm0, xmmword [0x437550]
movups xmmword [esp + 8], xmm0
mov eax, 0x80000001
mov dword [esp], eax
mov dword [esp + 4], str.SoftwareClassesApplicationsupdater.exe
call esi
test eax, eax
jne 0x405a47
mov eax, dword [ebp - 0xc6c]
sub esp, 0x18
xorps xmm0, xmm0
movups xmmword [esp + 8], xmm0
mov dword [esp], eax
mov dword [esp + 4], str.IsHostApp
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
call esi
mov eax, dword [ebp - 0xc6c]
sub esp, 0x18
xorps xmm0, xmm0
movups xmmword [esp + 8], xmm0
mov dword [esp], eax
mov dword [esp + 4], str.NoOpenWith
call esi
mov eax, dword [ebp - 0xc6c]
sub esp, 0x18
xorps xmm0, xmm0
movups xmmword [esp + 8], xmm0
mov dword [esp], eax
mov dword [esp + 4], str.NoStartPage
call esi
push dword [ebp - 0xc6c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor esi, esi
mov dword [ebp - 0xe7c], 0
mov ebx, dword [ebp + 8]
cmp ebx, 5
mov edi, dword [ebp + 0xc]
jb 0x405a9b
push dword [edi + 0x10]
call fcn.0041e2ff
add esp, 4
mov esi, eax
mov dword [ebp - 0xe7c], edx
and eax, edx
cmp eax, 0xffffffff
je 0x405a93
push str._replace
push dword [edi + 0x10]
call fcn.0041513b
add esp, 8
mov ecx, 0x4422d9
test eax, eax
jne 0x405a98
jmp 0x405a9b
mov ecx, 0x441aac
mov byte [ecx], 1
push dword [edi + 0xc]
call fcn.00410990
add esp, 4
test al, al
je 0x406177
mov dword [ebp - 0xe80], esi
mov esi, 0x441ab4
push 0x104
push dword [edi + 0xc]
push esi
call fcn.00412348
add esp, 0xc
mov word [0x441cba], 0
push 0x5c
push esi
call fcn.00415097
add esp, 8
test eax, eax
je 0x405aee
cmp word [eax + 2], 0
jne 0x405aee
mov word [eax], 0
cmp ebx, 7
jb 0x405bc6
push dword [edi + 0x18]
call fcn.00410990
add esp, 4
test al, al
je 0x40626f
mov ebx, 0x4420d0
push ebx
call fcn.0041221b
add esp, 4
mov esi, eax
lea edi, [ebp - 0xc6c]
push 0x208
push 0
push edi
call fcn.00414cd0
add esp, 0xc
push esi
mov eax, dword [ebp + 0xc]
push dword [eax + 0x18]
push edi
call fcn.00412348
add esp, 0xc
push edi
push ebx
call fcn.00420a8a
add esp, 8
test eax, eax
jne 0x4062a3
mov ebx, dword [ebp + 8]
cmp ebx, 8
mov edi, dword [ebp + 0xc]
jb 0x405ba2
mov esi, 7
mov eax, dword [edi + esi*4]
test eax, eax
je 0x405b9d
movzx ecx, word [eax]
cmp ecx, 0x2f
je 0x405b86
cmp ecx, 0x2d
jne 0x405b9d
lea ecx, [eax + 2]
lea edx, [eax + 4]
cmp word [eax + 2], 0x2d
cmove ecx, edx
jmp 0x405b8b
add eax, 2
mov ecx, eax
push str.backgroundtask
push ecx
call fcn.00420a8a
add esp, 8
test eax, eax
je 0x405bbf
inc esi
cmp ebx, esi
jne 0x405b62
push str.MOZ_APP_SILENT_START
call fcn.0041fee1
add esp, 4
test eax, eax
je 0x405bbb
cmp byte [eax], 0
setne al
jmp 0x405bc1
xor eax, eax
jmp 0x405bc1
mov al, 1
mov byte [0x4422da], al
lea esi, [ebp - 0x424]
push 0x20a
push 0
push esi
call fcn.00414cd0
add esp, 0xc
cmp byte [0x4422d8], 0
je 0x405c04
mov edi, 0x4418a4
push edi
call fcn.00410f90
add esp, 4
push esi
push 0x43aa48
push edi
call fcn.00410e10
add esp, 0xc
jmp 0x405c1c
push 0x4418a4
push str._supdate.log
push 0x105
push esi
call fcn.00404340
add esp, 0x10
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4074ec
mov ecx, 0x4424e4
push esi
call fcn.004104d0
mov ecx, str.applying
call fcn.00407c00
test al, al
je 0x405c7b
cmp byte [0x441aac], 1
jne 0x405cb8
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
mov esi, str.Performing_a_staged_update
jmp 0x405cdb
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40752f
push str.failed_setting_status_to_applying
push 0x4424e4
call fcn.00410520
add esp, 8
call fcn.00407ce0
jmp 0x4062e1
cmp byte [0x4422d9], 1
jne 0x405cf5
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
mov esi, str.Performing_a_replace_request
cmp eax, dword [ecx + 4]
jg 0x40763b
push esi
push 0x4424e4
call fcn.00410520
add esp, 8
invalid
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407572
push 0x4418a4
push str.PATCH_DIRECTORY__S
push 0x4424e4
call fcn.00410520
add esp, 0xc
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4075b5
push 0x4420d0
push str.INSTALLATION_DIRECTORY__S
push 0x4424e4
call fcn.00410520
add esp, 0xc
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4075f8
mov esi, 0x441ab4
push esi
push str.WORKING_DIRECTORY__S
push 0x4424e4
call fcn.00410520
add esp, 0xc
push 0x104
push 0x4420d0
push esi
call fcn.0041dee8
add esp, 0xc
test eax, eax
je 0x405e5d
cmp byte [0x441aac], 0
jne 0x405dcf
cmp byte [0x4422d9], 0
je 0x40612d
push 0x441ab4
push 0x43a4a2
push 0x104
lea esi, [ebp - 0xc6c]
push esi
call fcn.00404340
add esp, 0x10
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je 0x4060cf
push 0x104
push 0x4420d0
push esi
call fcn.0041dee8
add esp, 0xc
test eax, eax
je 0x405e5d
lea esi, [ebp - 0x62c]
push 0x48
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40767e
push str.The_apply_to_directory_must_be_the_same_as_or_a_child_of_the_installation_directory__Exiting.
jmp 0x405ca1
mov eax, dword [ebp - 0xe80]
cmp eax, 1
sbb dword [ebp - 0xe7c], 0
jl 0x405ecf
push eax
push 0
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenProcess]
test eax, eax
je 0x405ecf
mov edi, eax
push 0x7530
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov esi, eax
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x405ecf
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40778a
push str.The_parent_process_didnt_exit__Continuing_with_update.
push 0x4424e4
call fcn.00410520
add esp, 8
cmp byte [0x4422d9], 0
mov edi, dword [ebp + 0xc]
jne 0x405ee4
cmp byte [0x441aac], 1
jne 0x405f13
lea esi, [ebp - 0xc6c]
push 0x20a
push 0
push esi
call fcn.00414cd0
add esp, 0xc
push 0x105
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x405f13
push esi
call fcn.0041d962
add esp, 4
cmp byte [0x4420cc], 0
je 0x406099
xor eax, eax
dec eax
mov dword [ebp - 0xe7c], eax
cmp byte [0x441aac], 1
jne 0x405f3e
mov ecx, 0x441ab4
xor edx, edx
call fcn.00407e90
cmp byte [0x4422d9], 0
jne 0x405f66
push 0x441ab4
call fcn.0041e16a
add esp, 4
test eax, eax
je 0x405f66
call fcn.00419e69
cmp dword [eax], 0x11
jne 0x405cae
lea eax, [ebp - 0x62c]
push 0x104
push eax
push 0x441ab4
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test eax, eax
je 0x4061ae
cmp ebx, 7
jb 0x406b97
mov ebx, edi
xor edi, edi
lea eax, [ebp - 0x85c]
push 0x208
push edi
push eax
call fcn.00414cd0
add esp, 0xc
lea esi, [ebx + 0x18]
mov ebx, dword [ebx + 0x18]
push 0x410
push edi
lea eax, [ebp - 0xc6c]
push eax
call fcn.00414cd0
add esp, 0xc
cmp byte [0x4422d9], 1
mov dword [ebp - 0xe80], esi
jne 0x4062fb
mov ecx, 0x4420d0
xor eax, eax
push eax
push ecx
push ebx
call dword [sym.imp.SHLWAPI.dll_PathCommonPrefixW]
mov edi, eax
push eax
push dword [esi]
lea eax, [ebp - 0xc6c]
push eax
call fcn.00412348
add esp, 0xc
lea eax, [edi*2 - 0xc6c]
add eax, ebp
mov dword [ebp - 0xe88], eax
mov esi, 0x208
sub esi, edi
lea ebx, [edi + edi]
add ebx, 0x4420d0
push esi
push ebx
push eax
call fcn.00412348
add esp, 0xc
push ebx
call fcn.0041221b
add esp, 4
mov ebx, eax
mov eax, dword [ebp - 0xe88]
lea eax, [eax + ebx*2]
add eax, 2
mov dword [ebp - 0xe88], eax
mov dword [eax - 2], 0x5c
not ebx
add ebx, esi
lea esi, [ebp - 0xe74]
mov eax, 0x4420d0
push eax
push esi
call fcn.004120e4
add esp, 8
xor eax, eax
push eax
push esi
mov esi, dword [ebp - 0xe80]
push dword [esi]
call dword [sym.imp.SHLWAPI.dll_PathCommonPrefixW]
cmp eax, edi
cmova edi, eax
add edi, edi
add edi, dword [esi]
push ebx
push edi
mov edi, dword [ebp + 0xc]
push dword [ebp - 0xe88]
call fcn.00412348
add esp, 0xc
lea ebx, [ebp - 0xc6c]
jmp 0x4062fe
mov al, byte [0x441aac]
cmp ebx, 6
jbe 0x406252
test al, 1
jne 0x40625a
cmp byte [0x4422d9], 1
je 0x40635f
lea eax, [ebp - 0x62c]
push dword [edi + 0x18]
push str._s.update_in_progress.lock
jmp 0x40638f
lea esi, [ebp - 0x62c]
push 0x47
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4076c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_calling_PathRemoveFileSpecW:__lu
push 0x4424e4
call fcn.00410520
add esp, 0xc
jmp 0x405cae
push 0x4a
push str.failed:__d_n
push 0x20
lea esi, [ebp - 0xc6c]
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407704
push str.Installation_directory_and_working_directory_must_be_the_same_for_non_staged_updates._Exiting.
jmp 0x405ca1
push 0x4c
push str.failed:__d_n
push 0x20
lea esi, [ebp - 0xc6c]
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov esi, dword [edi + 0xc]
push 2
call fcn.0041552f
add esp, 4
push esi
push str.The_working_directory_path_is_not_valid_for_this_application___S__n
jmp 0x4062d8
mov edi, dword [ebp - 0xe7c]
lea esi, [ebp - 0xc6c]
push 0x41
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407747
push 0x441ab4
push str.NS_main:_unable_to_find_apply_to_dir:__S
push 0x4424e4
call fcn.00410520
add esp, 0xc
call fcn.00407ce0
cmp edi, 0xffffffff
je 0x40621c
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x218]
push eax
call fcn.0041e22e
add esp, 4
test eax, eax
je 0x406331
call fcn.00419e69
cmp ebx, 7
mov esi, dword [ebp + 0xc]
jb 0x4062e1
cmp dword [eax], 2
je 0x406339
jmp 0x4062e1
test al, 1
je 0x406352
lea eax, [ebp - 0x62c]
push 0x4420d0
push str._s_updated.update_in_progress.lock
jmp 0x40638f
lea esi, [ebp - 0xc6c]
push 0x4d
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov esi, dword [edi + 0x18]
push 2
call fcn.0041552f
add esp, 4
push esi
push str.The_callback_file_path_is_not_valid_for_this_application___S__n
jmp 0x4062d8
lea esi, [ebp - 0x424]
push 0x4e
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov eax, dword [ebp + 0xc]
mov esi, dword [eax + 0x18]
push 2
call fcn.0041552f
add esp, 4
push esi
push str.The_callback_file_must_be_located_in_the_installation_directory___S__n
push eax
call fcn.00432360
add esp, 0xc
xor esi, esi
inc esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00412e03
mov eax, esi
add esp, 0xe7c
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 0xc]
push 0x104
lea eax, [ebp - 0x85c]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test eax, eax
je 0x406604
xor eax, eax
dec eax
cmp byte [0x4422d9], 0
je 0x4066b8
mov ebx, dword [ebp + 8]
jmp 0x406b9a
cmp ebx, 7
mov esi, dword [ebp + 0xc]
jb 0x4062e1
movzx eax, byte [0x4420cc]
add ebx, 0xfffffffa
mov ecx, dword [esi + 0x14]
add esi, 0x18
mov edx, ebx
push eax
push esi
jmp 0x4066ab
cmp byte [0x4422d9], 1
jne 0x40683c
lea esi, [ebp - 0xc6c]
push 0x4420d0
push esi
call fcn.004120e4
add esp, 8
push 0x5c
push esi
call fcn.00415097
add esp, 8
mov word [eax], 0
lea eax, [ebp - 0x62c]
push esi
push str._smoz_update_in_progress.lock
push 0x104
push eax
call fcn.00404340
add esp, 0x10
lea esi, [ebp - 0x62c]
push esi
call fcn.0041e22e
add esp, 4
test eax, eax
je 0x4063be
call fcn.00419e69
cmp dword [eax], 2
jne 0x4065ed
sub esp, 0x1c
movaps xmm0, xmmword [0x437560]
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x4000000
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0xe7c], eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40640f
push 0x22
push 0x440acc
push 0
call fcn.00410210
add esp, 0xc
cmp dword [ebp - 0xe7c], 0xffffffff
jne 0x405f29
lea eax, [ebp - 0x218]
push eax
call fcn.0041e22e
add esp, 4
test eax, eax
je 0x40643d
call fcn.00419e69
cmp dword [eax], 2
jne 0x406811
sub esp, 0x1c
movaps xmm0, xmmword [0x437560]
movups xmmword [esp + 4], xmm0
lea eax, [ebp - 0x218]
mov dword [esp], eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0x4000000
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x406811
mov edi, eax
lea edx, [ebx - 1]
lea esi, [ebp - 0xe78]
mov ecx, esi
push dword [ebp - 0xe88]
call fcn.00401070
add esp, 4
mov eax, dword [esi]
test eax, eax
je 0x406915
cmp byte [ebp - 0xe84], 0
mov dword [ebp - 0xe7c], eax
je 0x407044
push 0x4420d0
call fcn.00410690
add esp, 4
test al, al
je 0x407044
lea esi, [ebp - 0xc6c]
mov dword [esi], 0
push esi
mov eax, dword [ebp + 0xc]
push dword [eax]
call fcn.00411660
add esp, 8
test eax, eax
je 0x407044
cmp dword [ebp - 0xc6c], 0
je 0x407044
push esi
call fcn.004116f0
add esp, 4
test eax, eax
je 0x40650a
cmp dword [ebp - 0xc6c], 0
jne 0x407044
push esi
push 0x4420d0
call fcn.00401230
add esp, 8
test eax, eax
je 0x407044
xor ebx, ebx
lea ecx, [ebp - 0x85c]
mov dword [ecx], ebx
push ecx
push 0x20119
push ebx
push esi
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40654d
push dword [ebp - 0x85c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x83b], ebx
mov dword [ebp - 0x83f], ebx
xorps xmm0, xmm0
movups xmmword [ebp - 0x84c], xmm0
movups xmmword [ebp - 0x85c], xmm0
push 0x20a
xor esi, esi
push ebx
lea ebx, [ebp - 0xc6c]
push ebx
call fcn.00414cd0
add esp, 0xc
push ebx
push 0x43ac74
push 0x4418a4
call fcn.00410e10
add esp, 0xc
test eax, eax
je 0x406e54
push 0x43acce
lea eax, [ebp - 0xc6c]
push eax
call fcn.0041e056
add esp, 8
test eax, eax
je 0x406e52
mov ebx, eax
push eax
push 1
push 0x24
lea eax, [ebp - 0x85c]
push eax
call fcn.0041fa36
add esp, 0x10
cmp eax, 1
sete al
mov esi, eax
jne 0x4065df
mov byte [ebp - 0x838], 0
push ebx
call fcn.0041f2e7
add esp, 4
jmp 0x406e54
cmp byte [0x4422d9], 1
jne 0x4067be
mov ecx, str.pending
jmp 0x4067e1
mov edi, dword [ebp - 0xe7c]
lea esi, [ebp - 0xe74]
push 0x42
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407810
push ebx
push str.NS_main:_unable_to_find_callback_file:__S
push 0x4424e4
call fcn.00410520
add esp, 0xc
call fcn.00407ce0
cmp edi, 0xffffffff
je 0x40666e
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x218]
push eax
call fcn.0041e22e
add esp, 4
test eax, eax
mov esi, dword [ebp + 8]
je 0x406692
call fcn.00419e69
cmp dword [eax], 2
jne 0x4062e1
movzx eax, byte [0x4420cc]
add esi, 0xfffffffa
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x14]
mov edx, esi
push eax
push dword [ebp - 0xe80]
call fcn.00405550
add esp, 8
jmp 0x4062e1
lea eax, [ebp - 0x62c]
push eax
call fcn.0041221b
add esp, 4
lea eax, [eax*2 - 0x85c]
add eax, ebp
xor ecx, ecx
cmp word [eax], 0x5c
sete cl
lea eax, [eax + ecx*2]
movzx edx, word [eax]
mov ecx, 2
mov esi, 0x2f
cmp dx, 0x5c
cmove edx, esi
mov word [ecx + 0x441cba], dx
movzx edx, word [eax + ecx]
add ecx, 2
test dx, dx
jne 0x4066e9
mov word [ecx + 0x441cba], 0
mov esi, 0x104
mov edi, dword [ebp - 0xe80]
push dword [edi]
push str._s.moz_callback
push esi
push 0x441ec4
call fcn.00404340
add esp, 0x10
cmp eax, esi
jb 0x40684a
lea esi, [ebp - 0xe74]
push 3
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40791c
push str.NS_main:_callback_backup_path_truncated
push 0x4424e4
call fcn.00410520
add esp, 8
call fcn.00407ce0
mov eax, dword [ebp - 0xe7c]
cmp eax, 0xffffffff
lea esi, [ebp - 0x218]
je 0x4067a3
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call fcn.0041e22e
add esp, 4
test eax, eax
je 0x4062e1
call fcn.00419e69
jmp 0x4062e1
cmp byte [0x441aac], 1
jne 0x4067e6
lea esi, [ebp - 0xc6c]
push 0x2c
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4077cd
push str.Update_already_in_progress__Exiting
jmp 0x405ca1
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407853
push str.Unable_to_create_elevated_lock_file__Exiting
jmp 0x405ca1
xor eax, eax
dec eax
mov dword [ebp - 0xe7c], eax
jmp 0x405f47
push 0
push 0x441ec4
push dword [edi]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x406921
xor esi, esi
inc esi
sub esp, 0x1c
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
movaps xmm0, xmmword [0x437570]
movups xmmword [esp + 4], xmm0
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x40693f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4068d9
push edi
push ebx
push esi
push str.NS_main:_callback_app_file_open_attempt__d_failed._File:__S._Last_error:__lu
push 0x4424e4
call fcn.00410520
add esp, 0x14
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0xb
jne 0x406864
jmp 0x40694a
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x4068b4
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x4068b4
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x405cae
mov ebx, edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea esi, [ebp - 0xe74]
cmp eax, 5
jne 0x4069c7
push 0x23
jmp 0x4069c9
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
jmp 0x406b9a
cmp edi, 0x20
jne 0x406a6a
cmp byte [0x4422da], 0
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
mov ecx, dword [ecx + 4]
mov ebx, dword [ebp + 8]
je 0x406b72
cmp eax, ecx
mov edi, dword [ebp + 0xc]
jg 0x407aae
mov eax, dword [ebp - 0xe80]
push dword [eax]
push str.NS_main:_callback_app_file_in_use__failed_to_exclusively_open_executable_file_from_background_task:__S
push 0x4424e4
call fcn.00410520
add esp, 0xc
lea esi, [ebp - 0xe74]
push 0x6a
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
jmp 0x406ad3
push 0x25
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov esi, dword [ebp + 8]
lea edi, [ebp - 0x218]
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4079a2
push 0x441ec4
push dword [ebx]
push str.NS_main:_failed_to_copy_callback_file__S_into_place_at__S
push 0x4424e4
call fcn.00410520
add esp, 0x10
call fcn.00407ce0
mov eax, dword [ebp - 0xe7c]
cmp eax, 0xffffffff
je 0x406a3a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
call fcn.0041e22e
add esp, 4
test eax, eax
je 0x406a55
call fcn.00419e69
cmp dword [eax], 2
jne 0x4062e1
movzx eax, byte [0x4420cc]
add esi, 0xfffffffa
mov ecx, dword [ebx]
mov edx, esi
push eax
push ebx
jmp 0x4066ab
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
mov ebx, dword [ebp + 8]
jg 0x407a6b
mov eax, dword [ebp - 0xe80]
push dword [eax]
push str.NS_main:_callback_app_file_in_use__failed_to_exclusively_open_executable_file:__S
push 0x4424e4
call fcn.00410520
add esp, 0xc
lea esi, [ebp - 0xe74]
cmp edi, 5
jne 0x406ab7
push 0x23
jmp 0x406ab9
push 0x25
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov edi, dword [ebp + 0xc]
push 0x441ec4
call fcn.0041e22e
add esp, 4
test eax, eax
mov esi, dword [ebp - 0xe7c]
je 0x406b2c
call fcn.00419e69
cmp dword [eax], 2
je 0x406b2c
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407af1
push 0x441ec4
push str.NS_main:_unable_to_remove_backup_of_callback_app_file__path:__S
push 0x4424e4
call fcn.00410520
add esp, 0xc
call fcn.00407ce0
cmp esi, 0xffffffff
je 0x406b3d
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x218]
push eax
call fcn.0041e22e
add esp, 4
test eax, eax
je 0x406b5e
call fcn.00419e69
cmp dword [eax], 2
jne 0x4062e1
movzx eax, byte [0x4420cc]
add ebx, 0xfffffffa
mov ecx, dword [edi + 0x14]
mov edx, ebx
jmp 0x4066a4
cmp eax, ecx
mov edi, dword [ebp + 0xc]
jg 0x407b34
mov eax, dword [ebp - 0xe80]
push dword [eax]
push str.NS_main:_callback_app_file_in_use__continuing_without_exclusive_access_for_executable_file:__S
push 0x4424e4
call fcn.00410520
add esp, 0xc
xor eax, eax
dec eax
mov dword [ebp - 0xe80], eax
cmp byte [0x441aac], 0
jne 0x406bf0
cmp byte [0x4422d9], 0
jne 0x406bf0
mov esi, 0x4422dc
push str.tobedeleted
push 0x441ab4
push str._s__s
push 0x104
push esi
call fcn.00404340
add esp, 0x14
push 0
push esi
call fcn.0041d88c
add esp, 8
test eax, eax
je 0x406bf0
push 0x4422dc
call fcn.0041e16a
add esp, 4
mov dword [ebp - 0xc68], 0x4080e0
xor eax, eax
mov dword [ebp - 0xc64], eax
lea ecx, [ebp - 0x85c]
push ecx
push eax
lea ecx, [ebp - 0xc6c]
push ecx
push 0x40a4f0
push eax
push eax
call fcn.0041914d
add esp, 0x18
mov dword [ebp - 0xc6c], eax
test eax, eax
je 0x406c57
cmp byte [0x441aac], 0
jne 0x406c57
cmp byte [0x4422d9], 0
jne 0x406c57
cmp byte [0x4422da], 0
jne 0x406c57
push 1
push 0
call fcn.00401df0
add esp, 8
mov eax, dword [ebp - 0xc6c]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0xc6c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebx, 7
jb 0x406cdf
cmp byte [0x4422d9], 0
jne 0x406cdf
mov eax, dword [ebp - 0xe80]
cmp eax, 0xffffffff
je 0x406c8c
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x441ec4
call fcn.0041e22e
add esp, 4
test eax, eax
je 0x406cdf
call fcn.00419e69
cmp dword [eax], 2
je 0x406cdf
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40795f
push 0x441ec4
push str.NS_main:_non_fatal_error_removing_backup_of_callback_app_file__path:__S
push 0x4424e4
call fcn.00410520
add esp, 0xc
cmp byte [0x441aac], 0
jne 0x406da3
cmp byte [0x4422d9], 0
jne 0x406da3
push 0x4422dc
call fcn.0041e283
add esp, 4
test eax, eax
je 0x406da3
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407896
call fcn.00419e69
push dword [eax]
push str.tobedeleted
push str.NS_main:_unable_to_remove_directory:__S__err:__d
push 0x4424e4
call fcn.00410520
add esp, 0x10
push 4
push 0
push 0x4422dc
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov edx, dword [edx + ecx*4]
mov ecx, dword [0x4426f0]
mov edx, dword [edx + 4]
test eax, eax
je 0x406d83
mov esi, str.NS_main:_directory_will_be_removed_on_OS_reboot:__S
jmp 0x406d88
mov esi, str.NS_main:_failed_to_schedule_OS_reboot_removal_of_directory:__S
cmp ecx, edx
jg 0x4078d9
push str.tobedeleted
push esi
push 0x4424e4
call fcn.00410520
add esp, 0xc
call fcn.00407ce0
cmp ebx, 7
jb 0x406e43
cmp byte [0x4420ce], 1
jne 0x406df5
call fcn.004051e0
test al, al
jne 0x406ddf
push 2
call fcn.0041552f
add esp, 4
push eax
push 1
push 0x28
push str.The_post_update_process_was_not_launched
call fcn.0041fc54
add esp, 0x10
cmp byte [0x4420cc], 0
jne 0x406df5
push 0x4420d0
call fcn.004110d0
add esp, 4
cmp dword [ebp - 0xe7c], 0xffffffff
je 0x406e0a
push dword [ebp - 0xe7c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x218]
push eax
call fcn.0041e22e
add esp, 4
test eax, eax
je 0x406e27
call fcn.00419e69
cmp dword [eax], 2
jne 0x406e43
movzx eax, byte [0x4420cc]
add ebx, 0xfffffffa
mov ecx, dword [edi + 0x14]
add edi, 0x18
mov edx, ebx
push eax
push edi
call fcn.00405550
add esp, 8
movzx esi, byte [0x4420ce]
xor esi, 1
jmp 0x4062e4
xor esi, esi
push 0x3a
push str.failed:__d_n
push 0x20
lea ebx, [ebp - 0xc6c]
push ebx
call fcn.00401000
add esp, 0x10
mov ecx, ebx
call fcn.00407c00
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00411550
add esp, 8
test eax, eax
jne 0x407041
xor ebx, ebx
cmp byte [0x441aac], 0
jne 0x406ea7
cmp byte [0x4422da], 0
jne 0x406ea7
call fcn.00401d50
test eax, eax
sete bl
push 5
push str.MozillaMaintenance
call fcn.00411370
add esp, 8
cmp eax, 1
je 0x406f24
mov dword [ebp - 0xc68], 0x407e70
xor eax, eax
mov dword [ebp - 0xc64], eax
lea ecx, [ebp - 0xe74]
push ecx
push eax
lea ecx, [ebp - 0xc6c]
push ecx
push 0x40a4f0
push eax
push eax
call fcn.0041914d
add esp, 0x18
mov dword [ebp - 0xc6c], eax
test eax, eax
sete cl
xor bl, 1
or bl, cl
jne 0x406f0f
push 0
push 1
call fcn.00401df0
add esp, 8
mov eax, dword [ebp - 0xc6c]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0xc6c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 1
push str.MozillaMaintenance
call fcn.00411370
add esp, 8
cmp eax, 1
jne 0x407041
mov byte [0x4420cd], 1
xor eax, eax
mov dword [ebp - 0xe53], eax
mov dword [ebp - 0xe57], eax
xorps xmm0, xmm0
movups xmmword [ebp - 0xe64], xmm0
movups xmmword [ebp - 0xe74], xmm0
mov eax, esi
test al, al
je 0x407469
push 0x20a
push 0
lea ebx, [ebp - 0xc6c]
push ebx
call fcn.00414cd0
add esp, 0xc
push ebx
push 0x43ac74
push 0x4418a4
call fcn.00410e10
add esp, 0xc
test eax, eax
je 0x40745c
push 0x43acce
lea eax, [ebp - 0xc6c]
push eax
call fcn.0041e056
add esp, 8
test eax, eax
je 0x40745c
mov esi, eax
lea ebx, [ebp - 0xe74]
push eax
push 1
push 0x24
push ebx
call fcn.0041fa36
add esp, 0x10
cmp eax, 1
jne 0x407453
mov byte [ebp - 0xe50], 0
push esi
call fcn.0041f2e7
add esp, 4
push 0x25
push ebx
lea eax, [ebp - 0x85c]
push eax
call fcn.004207a0
add esp, 0xc
test eax, eax
jne 0x40745c
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407bba
push str.The_secure_ID_hasnt_changed_after_launching_the_updater_using_the_service
push 0x4424e4
call fcn.00410520
add esp, 8
mov byte [0x4420cd], 0
jmp 0x4073b3
mov ebx, dword [ebp + 8]
cmp byte [0x441aac], 1
jne 0x4070a9
lea esi, [ebp - 0xc6c]
push 0x2b
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4079e5
push str.Non_critical_update_staging_error__Falling_back_to_non_staged_updates_and_exiting
push 0x4424e4
call fcn.00410520
add esp, 8
call fcn.00407ce0
jmp 0x40712c
cmp byte [0x4422da], 0
je 0x407142
lea esi, [ebp - 0xc6c]
push 0x69
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407a28
push str.Skipping_update_to_avoid_UAC_prompt_from_background_task.
push 0x4424e4
call fcn.00410520
add esp, 8
call fcn.00407ce0
movzx eax, byte [0x4420cc]
add ebx, 0xfffffffa
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 0x14]
add esi, 0x18
mov edx, ebx
push eax
push esi
call fcn.00405550
add esp, 8
mov esi, dword [ebp - 0xe7c]
push esi
call fcn.00412343
add esp, 4
xor esi, esi
jmp 0x4062e4
xor eax, eax
mov dword [ebp - 0xe53], eax
mov dword [ebp - 0xe57], eax
xorps xmm0, xmm0
movups xmmword [ebp - 0xe64], xmm0
movups xmmword [ebp - 0xe74], xmm0
lea esi, [ebp - 0xc6c]
push 0x20a
push eax
push esi
call fcn.00414cd0
add esp, 0xc
push esi
push 0x43ac74
push 0x4418a4
call fcn.00410e10
add esp, 0xc
test eax, eax
je 0x4071d5
push 0x43acce
push esi
call fcn.0041e056
add esp, 8
test eax, eax
je 0x4071e1
mov ebx, eax
lea eax, [ebp - 0xe74]
push ebx
push 1
push 0x24
push eax
call fcn.0041fa36
add esp, 0x10
cmp eax, 1
sete al
mov dword [ebp - 0xe80], eax
jne 0x4071ca
mov byte [ebp - 0xe50], 0
push ebx
call fcn.0041f2e7
add esp, 4
jmp 0x4071eb
mov dword [ebp - 0xe80], 0
jmp 0x4071ee
mov dword [ebp - 0xe80], 0
mov ebx, dword [ebp + 8]
push 0x4f
push str.failed:__d_n
push 0x20
push esi
call fcn.00401000
add esp, 0x10
mov ecx, esi
call fcn.00407c00
lea eax, [ebp - 0x85c]
xor ecx, ecx
mov dword [eax + 0x38], ecx
xorps xmm0, xmm0
movups xmmword [eax + 0x28], xmm0
movups xmmword [eax + 0x18], xmm0
mov dword [eax], 0x3c
mov dword [eax + 4], 0x540
mov dword [eax + 8], ecx
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx]
mov dword [eax + 0x10], ecx
mov esi, dword [ebp - 0xe7c]
mov dword [eax + 0x14], esi
mov dword [eax + 0xc], str.runas
mov dword [eax + 0x1c], 1
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x407379
push 0xffffffffffffffff
push dword [ebp - 0x824]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x824]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [0x4420cd], 1
xor eax, eax
mov dword [ebp - 0x633], eax
mov dword [ebp - 0x637], eax
xorps xmm0, xmm0
movups xmmword [ebp - 0x644], xmm0
movups xmmword [ebp - 0x654], xmm0
cmp byte [ebp - 0xe80], 0
je 0x4073bc
push 0x20a
push 0
lea ebx, [ebp - 0xc6c]
push ebx
call fcn.00414cd0
add esp, 0xc
push ebx
push 0x43ac74
push 0x4418a4
call fcn.00410e10
add esp, 0xc
test eax, eax
je 0x4073a5
push 0x43acce
push ebx
call fcn.0041e056
add esp, 8
test eax, eax
je 0x4073a5
mov ebx, eax
lea esi, [ebp - 0x654]
push eax
push 1
push 0x24
push esi
call fcn.0041fa36
add esp, 0x10
cmp eax, 1
jne 0x4073aa
mov byte [ebp - 0x630], 0
push ebx
call fcn.0041f2e7
add esp, 4
lea eax, [ebp - 0xe74]
push 0x25
push esi
push eax
call fcn.004207a0
add esp, 0xc
test eax, eax
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0xe7c]
jne 0x4073bc
mov eax, dword [0x4426f0]
mov ecx, dword [0x440c90]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407b77
push str.The_secure_ID_hasnt_changed_after_launching_the_updater_using_runas
push 0x4424e4
call fcn.00410520
add esp, 8
mov byte [0x4420cd], 0
jmp 0x4073b6
mov byte [0x4420cd], 0
push 9
push str.failed:__d_n
push 0x20
lea eax, [ebp - 0xc6c]
push eax
call fcn.00401000
add esp, 0x10
lea ecx, [ebp - 0xc6c]
call fcn.00407c00
jmp 0x4073bc
mov ebx, dword [ebp + 8]
jmp 0x4073bc
push ebx
call fcn.0041f2e7
add esp, 4
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0xe7c]
cmp byte [0x441aac], 0
je 0x407404
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00407ce0
cmp ebx, 7
jb 0x407132
movzx eax, byte [0x4420cc]
add ebx, 0xfffffffa
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 0x14]
add esi, 0x18
mov edx, ebx
push eax
push esi
mov esi, dword [ebp - 0xe7c]
call fcn.00405550
add esp, 8
jmp 0x407132
lea edx, [ebp - 0xc6c]
mov byte [edx], 0
mov ecx, str.succeeded
push 0
call fcn.0040a510
add esp, 4
test al, al
je 0x4073c5
cmp byte [ebp - 0xc6c], 0
je 0x4073c5
call fcn.004051e0
test al, al
jne 0x4073c5
push 2
call fcn.0041552f
add esp, 4
push eax
push 1
push 0x58
push str.The_post_update_process_which_runs_as_the_user_for_service_update_could_not_be_launched.
call fcn.0041fc54
add esp, 0x10
jmp 0x4073c5
push esi
call fcn.0041f2e7
add esp, 4
cmp byte [0x4420cd], 1
jne 0x4073b3
cmp byte [0x441aac], 0
jne 0x4073b3
xor eax, eax
mov byte [ebp - 0xc6c], al
mov byte [ebp - 0xc68], al
lea edx, [ebp - 0x654]
mov ecx, 0x4386ef
lea eax, [ebp - 0xc6c]
push eax
call fcn.0040a510
add esp, 4
test al, al
je 0x4073b3
cmp byte [ebp - 0x654], 0
je 0x4073b3
cmp byte [ebp - 0xc68], 0
je 0x4073b3
mov eax, dword [ebp - 0xc6c]
lea ecx, [eax - 0x18]
cmp ecx, 0xa
mov ebx, dword [ebp + 8]
mov esi, dword [ebp - 0xe7c]
jb 0x407044
add eax, 0xffffffcf
cmp eax, 9
ja 0x4073bc
jmp 0x407044
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x405c3d
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x405c3d
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x405c9c
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x405c9c
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x405d16
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x405d16
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x405d4e
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x405d4e
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x405d86
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x405d86
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x405ce7
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x405ce7
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x405e53
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x405e53
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x40610f
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x40610f
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x40616d
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x40616d
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x4061f4
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x4061f4
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x405ebd
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x405ebd
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x406807
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x406807
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x40664a
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x40664a
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x406832
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x406832
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x406d2f
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x406d2f
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x406d90
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x406d90
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x406774
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x406774
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x406cc8
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x406cc8
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x406a0a
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x406a0a
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x40708d
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x40708d
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x4070f6
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x4070f6
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x406a8e
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x406a8e
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x406989
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x406989
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x406b15
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x406b15
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x406b7d
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x406b7d
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x40735e
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x40735e
push 0x4426f0
call fcn.00412457
add esp, 4
cmp dword [0x4426f0], 0xffffffff
jne 0x407023
mov dword [0x4424e4], 0
push 0x40a110
call fcn.0041261c
add esp, 4
push 0x4426f0
call fcn.004124a9
add esp, 4
jmp 0x407023