Function at 0x405740
Capabilities:
Check if file exists
Copy file
Create directory
Create process on windows
Read file on windows
Resolve function by parsing pe exports
Terminate process

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x12f0
call fcn.004207b0
mov eax, dword [0x43300c]
xor eax, ebp
cmp dword [ebp + 8], 2
mov dword [esp + 0x12e8], eax
jg 0x4057b4
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405d57
push str.Not_enough_command_line_arguments_to_execute_a_service_command
push 0x434588
call fcn.0040c890
add esp, 8
xor esi, esi
mov ecx, dword [esp + 0x12e8]
xor ecx, ebp
call fcn.0040e271
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 0xc]
lea ebx, [esp + 0xab0]
push 0x20a
push 0
push ebx
call fcn.00410040
add esp, 0xc
push ebx
call fcn.0040d880
add esp, 4
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov esi, eax
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40617f
mov eax, dword [edi + 8]
test esi, esi
je 0x405817
push ebx
push eax
push str.Executing_service_command__ls__ID:__ls
push 0x434588
call fcn.0040c830
add esp, 0x10
jmp 0x40582a
push eax
push str.Executing_service_command__ls
push 0x434588
call fcn.0040c830
add esp, 0xc
push str.software_update
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x405891
push str.fix_update_directory_perms
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x405915
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406205
mov ebx, edi
push dword [edi + 8]
push str.Service_command_not_recognized:__ls.
push 0x434588
call fcn.0040c890
add esp, 0xc
xor esi, esi
jmp 0x4059e6
cmp dword [ebp + 8], 4
jl 0x4058ea
push dword [edi + 0x10]
call fcn.0040cb20
add esp, 4
test al, al
je 0x4058ea
mov ebx, edi
add edi, 0x10
mov esi, dword [edi]
push esi
call fcn.00416b42
add esp, 4
cmp eax, 9
ja 0x405a31
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40648e
push str.The_patch_directory_path_length_is_not_valid_for_this_application.
jmp 0x40578d
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406248
push str.The_patch_directory_path_is_not_valid_for_this_application.
jmp 0x40578d
cmp dword [ebp + 8], 3
mov dword [esp + 0x10d0], 0
jg 0x40595f
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406408
mov ebx, edi
push str.Didnt_get_an_install_dir_for_fix_update_directory_perms
push 0x434588
call fcn.0040c890
add esp, 8
xor ecx, ecx
jmp 0x405964
mov ecx, dword [edi + 0xc]
mov ebx, edi
lea eax, [esp + 0x10d0]
xor edx, edx
push eax
push 1
push 0
push 0
call fcn.00408fd0
add esp, 0x10
test eax, eax
js 0x40598e
mov edi, dword [esp + 0x10d0]
mov esi, 1
jmp 0x4059ce
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov esi, eax
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40644b
mov edi, dword [esp + 0x10d0]
push esi
push edi
push str.Unable_to_set_the_permissions_on_the_update_directory___S_:__d
push 0x434588
call fcn.0040c890
add esp, 0x10
xor esi, esi
test edi, edi
mov dword [esp + 0x10d0], 0
je 0x4059e6
push edi
call fcn.0040da4a
add esp, 4
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4061c2
test esi, esi
mov eax, str.Failure
mov ecx, str.Success
cmove ecx, eax
push ecx
push dword [ebx + 4]
push str.service_command__ls_complete_with_result:__ls.
push 0x434588
call fcn.0040c830
add esp, 0x10
jmp 0x40579c
lea eax, [esi + eax*2 - 0x14]
push 0xa
push str.updates0
push eax
call fcn.004151a6
add esp, 0xc
test eax, eax
je 0x405a74
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40651c
push str.The_patch_directory_path_subdirectory_is_not_valid_for_this_application.
jmp 0x40578d
push dword [edi]
call fcn.0040ced0
add esp, 4
push dword [edi]
call fcn.0040cd90
add esp, 4
test eax, eax
je 0x405b58
cmp dword [ebp + 8], 5
jl 0x405ad7
mov esi, ebx
push dword [ebx + 0x14]
call fcn.0040cb20
mov ecx, dword [ebp + 8]
add esp, 4
test al, al
je 0x405ad7
lea eax, [ecx - 3]
cmp eax, 4
mov dword [esp + 4], eax
jne 0x405b83
push 0x42dff4
push dword [esi + 0x18]
call fcn.00416ae0
add esp, 8
test eax, eax
jne 0x405b85
jmp 0x405d9c
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40655f
push str.The_install_directory_path_is_not_valid_for_this_application.
push 0x434588
call fcn.0040c890
add esp, 8
push 0x37
push dword [edi]
call fcn.0040d500
add esp, 8
xor esi, esi
test eax, eax
jne 0x40579c
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4065e5
push str.Could_not_write_update.status_for_previous_failure.
push 0x434588
call fcn.0040c890
add esp, 8
jmp 0x40579c
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4065a2
push str.Unable_to_write_to_secure_ID_file.
jmp 0x40578d
jl 0x405bbf
push str._replace
push dword [ebx + 0x18]
call fcn.00410303
add esp, 8
test eax, eax
jne 0x405d9c
mov esi, dword [ebx + 0x18]
movzx eax, word [esi]
test ax, ax
je 0x405d9c
add esi, 2
movzx eax, ax
push eax
call fcn.004167fc
add esp, 4
test eax, eax
jne 0x405ba0
cmp dword [ebp + 8], 6
mov esi, edi
jl 0x405c35
push dword [ebx + 0x18]
call fcn.0040cb20
add esp, 4
test al, al
je 0x405c35
push 0x104
push dword [ebx + 0x14]
push dword [ebx + 0x18]
call fcn.004151a6
add esp, 0xc
test eax, eax
mov edi, esi
je 0x405d9c
cmp dword [ebp + 8], 7
jge 0x405c71
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406d59
push str.Installation_directory_and_working_directory_must_be_the_same_for_non_staged_updates._Exiting.
push 0x434588
call fcn.0040c890
add esp, 8
push 0x36
push dword [esi]
jmp 0x405b0e
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406b84
push str.The_working_directory_path_is_not_valid_for_this_application.
push 0x434588
call fcn.0040c890
add esp, 8
push 0x38
push dword [esi]
jmp 0x405b0e
push 0x42dff4
push dword [ebx + 0x1c]
call fcn.00416ae0
add esp, 8
test eax, eax
je 0x405c9d
push str._replace
push dword [ebx + 0x1c]
call fcn.00410303
add esp, 8
test eax, eax
je 0x405bf9
mov eax, dword [ebx + 0x18]
sub esp, 0x10
lea edi, [esp + 0x10e0]
mov dword [esp + 0xc], eax
mov dword [esp], edi
call fcn.004079c0
add esp, 0x10
push edi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je 0x405d14
push 0x104
push dword [ebx + 0x14]
push edi
call fcn.004151a6
add esp, 0xc
test eax, eax
je 0x405d9a
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406e65
push str.The_apply_to_directory_must_be_the_same_as_or_a_child_of_the_installation_directory__Exiting.
push 0x434588
call fcn.0040c890
add esp, 8
push 0x34
jmp 0x405d50
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406ea8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Couldnt_remove_file_spec_when_attempting_to_verify_the_working_directory_path.____d_
push 0x434588
call fcn.0040c890
add esp, 0xc
push 0x47
push dword [esi]
jmp 0x405eef
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405788
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405788
mov edi, esi
lea esi, [esp + 0x8a6]
mov dword [esp + 8], edi
lea edi, [ebx + 0xc]
push 0x20a
push 0
push esi
call fcn.00410040
add esp, 0xc
mov ecx, dword [esp + 4]
mov dword [esp + 0xc], edi
mov edx, edi
push esi
call fcn.00404bc0
add esp, 4
test eax, eax
je 0x405eb0
lea edi, [esp + 0x10d0]
push edi
push 0x20119
push 0
push str.SOFTWAREMozillaMaintenanceService3932ecacee736d366d6436db0f55bce4
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x405f2a
push edi
push esi
call fcn.0040b9b0
add esp, 8
test eax, eax
je 0x405ee7
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406c0a
lea eax, [esp + 0x10d0]
mov edi, eax
push eax
push str.Checking_for_Maintenance_Service_registry._key:__ls
push 0x434588
call fcn.0040c830
add esp, 0xc
lea eax, [esp + 0xec4]
mov dword [esp + 0xec4], 0
push eax
push 0x20119
push 0
push edi
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x405f33
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406c90
push str.The_maintenance_service_registry_key_does_not_exist.
push 0x434588
call fcn.0040c890
add esp, 8
push 0x39
jmp 0x405ee9
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406bc7
push str.Could_not_get_the_installation_directory
push 0x434588
call fcn.0040c890
add esp, 8
push 0x21
jmp 0x405ee9
push 0x35
mov eax, dword [esp + 0xc]
push dword [eax]
call fcn.0040d500
add esp, 8
test eax, eax
jne 0x40579a
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406c4d
push str.Could_not_write_update.status_for_previous_failure.
jmp 0x40578d
push dword [esp + 0x10d0]
jmp 0x405f3a
push dword [esp + 0xec4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea edi, [esp + 0x69c]
push 0x20a
push 0
push edi
call fcn.00410040
add esp, 0xc
push 0x104
push esi
push edi
call fcn.00416fbb
add esp, 0xc
push str.updater.exe
push edi
call fcn.0040d840
add esp, 8
test eax, eax
jne 0x405fab
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406d9c
push str.Install_directory_updater_could_not_be_determined.
push 0x434588
call fcn.0040c890
add esp, 8
mov eax, dword [esp + 8]
lea esi, [esp + 0x69c]
lea edx, [esp + 0x8a6]
mov ecx, esi
push dword [eax]
call fcn.00404d00
add esp, 4
lea edi, [esp + 0x492]
mov byte [esp + 0x18], al
push 0x20a
push 0
push edi
call fcn.00410040
add esp, 0xc
cmp byte [esp + 0x18], 0
je 0x406079
push 0x104
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x40603f
push edi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
jne 0x406137
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406e22
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Couldnt_remove_file_spec_when_attempting_to_use_a_secure_updater_path.____d_
jmp 0x40606c
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406eeb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_obtain_module_filename_when_attempting_to_use_a_secure_updater_path.____d_
push 0x434588
call fcn.0040c890
add esp, 0xc
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406d16
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_copy_path_to_secure_location.____d_
push 0x434588
call fcn.0040c890
add esp, 0xc
push 0x31
mov eax, dword [esp + 0xc]
push dword [eax]
call fcn.0040d500
add esp, 8
xor esi, esi
test eax, eax
jne 0x4060fc
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406ddf
push str.Could_not_write_update.status_could_not_copy_updater_error
push 0x434588
call fcn.0040c890
add esp, 8
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406cd3
push dword [ebx + 8]
push str.Service_command__ls_complete.
push 0x434588
call fcn.0040c830
add esp, 0xc
jmp 0x4059e6
push 0x42dd72
push edi
call fcn.0040d840
add esp, 8
test eax, eax
jne 0x40628b
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4064d9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Couldnt_append_file_spec_when_attempting_to_use_a_secure_updater_path.____d_
jmp 0x40606c
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x4057fa
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x4057fa
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405a07
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405a07
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405873
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405873
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x40590b
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x40590b
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push str.updater.exe
push edi
call fcn.0040d840
add esp, 8
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
test eax, eax
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
mov ecx, dword [ecx + 4]
je 0x4064d1
cmp eax, ecx
jg 0x406f2e
push edi
push esi
mov eax, dword [esp + 0x14]
push dword [eax]
push str.Passed_in_path:__ls__ignored___Install_dir_has:__ls__Using_this_path_for_updating:__ls.
push 0x434588
call fcn.0040c830
add esp, 0x14
mov ecx, edi
call fcn.00405580
push 0
push edi
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x406079
mov eax, dword [esp + 0xc]
mov dword [eax], edi
lea eax, [esp + 0x288]
push 0x20a
push 0
push eax
call fcn.00410040
add esp, 0xc
lea eax, [esp + 0x7e]
push 0x20a
push 0
push eax
call fcn.00410040
add esp, 0xc
push edi
call fcn.00416b42
add esp, 4
cmp eax, 0x104
ja 0x406368
push 0x105
push edi
lea eax, [esp + 0x86]
mov edi, eax
push eax
call fcn.00416fbb
add esp, 0xc
push edi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
jne 0x406628
cmp dword [esp + 4], 2
ja 0x406712
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406f71
push str.Not_enough_command_line_parameters_specified._Updating_update.status.
push 0x434588
call fcn.0040c890
add esp, 8
cmp dword [esp + 4], 2
jne 0x4063c7
push 0x19
mov eax, dword [esp + 0xc]
push dword [eax]
call fcn.0040d500
add esp, 8
xor esi, esi
test eax, eax
jne 0x407655
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406fb4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_write_update.status_service_update_failure.____d_
push 0x434588
call fcn.0040c890
add esp, 0xc
xor esi, esi
jmp 0x407655
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405947
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405947
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x4059b1
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x4059b1
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x4058e0
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x4058e0
cmp eax, ecx
jle 0x40616e
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x40616e
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x40616e
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405a6a
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405a6a
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405af8
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405af8
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405b79
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405b79
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405b41
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405b41
push str.updater.ini
lea eax, [esp + 0x82]
push eax
call fcn.0040d840
add esp, 8
test eax, eax
je 0x406368
push esi
call fcn.00416b42
add esp, 4
cmp eax, 0x104
ja 0x406368
push 0x105
push esi
lea eax, [esp + 0x290]
mov esi, eax
push eax
call fcn.00416fbb
add esp, 0xc
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je 0x406368
push str.updater.ini
lea eax, [esp + 0x28c]
push eax
call fcn.0040d840
add esp, 8
test eax, eax
je 0x406368
push 0
lea eax, [esp + 0x82]
push eax
lea eax, [esp + 0x290]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x406368
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407974
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x82]
push eax
lea eax, [esp + 0x290]
push eax
push str.Could_not_copy_updater.ini_from:__ls_to__ls.____d_
push 0x434588
call fcn.0040c890
add esp, 0x14
cmp dword [esp + 4], 2
jbe 0x406373
lea esi, [esp + 0xcba]
push 0x20a
push 0
push esi
call fcn.00410040
add esp, 0xc
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0xc]
push esi
call fcn.00404bc0
add esp, 4
test eax, eax
je 0x40687a
mov eax, dword [esp + 0xc]
lea edx, [esp + 0xcba]
mov ecx, dword [eax]
mov eax, dword [esp + 8]
push dword [eax]
call fcn.00404d00
add esp, 4
mov edx, dword [0x433a44]
mov esi, dword fs:[0x2c]
mov ecx, dword [0x434794]
test al, al
mov edx, dword [esi + edx*4]
mov edx, dword [edx + 4]
je 0x4068ff
cmp ecx, edx
jg 0x40703a
push str.Starting_update_process_as_the_service_in_session_0.
push 0x434588
call fcn.0040c830
add esp, 8
xorps xmm0, xmm0
mov dword [esp + 0x38], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x34], 0x44
mov dword [esp + 0x3c], str.winsta0Default
lea eax, [esp + 0x1c]
movaps xmmword [esp + 0x20], xmm0
push 0
push 0
push dword [esp + 0x14]
mov esi, dword [esp + 0x10]
push esi
push eax
call fcn.004020a0
add esp, 0x14
cmp esi, 4
jne 0x406979
push 0x42dff4
push dword [ebx + 0x18]
call fcn.00416ae0
add esp, 8
test eax, eax
jne 0x406980
mov esi, 2
cmp esi, dword [esp + 4]
jle 0x4069c2
jmp 0x4069d6
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406ff7
push str.Could_not_get_the_installation_directory
push 0x434588
call fcn.0040c890
add esp, 8
push 0x21
mov eax, dword [esp + 0xc]
push dword [eax]
call fcn.0040d500
add esp, 8
xor esi, esi
test eax, eax
jne 0x407655
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407146
push str.Could_not_write_update.status_for_GetInstallationDir_failure.
push 0x434588
call fcn.0040c890
add esp, 8
jmp 0x407655
cmp ecx, edx
jg 0x40707d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_start_process_due_to_certificate_check_error_on_updater.exe._Updating_update.status.____d_
push 0x434588
call fcn.0040c890
add esp, 0xc
push 0x1a
mov eax, dword [esp + 0xc]
push dword [eax]
call fcn.0040d500
add esp, 8
xor esi, esi
test eax, eax
jne 0x407655
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407189
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_write_pending_state_to_update.status.____d_
push 0x434588
call fcn.0040c890
add esp, 0xc
jmp 0x407655
mov esi, 3
jl 0x4069bc
push str._replace
push dword [ebx + 0x18]
call fcn.00410303
add esp, 8
mov esi, 2
test eax, eax
jne 0x4069bc
mov edi, dword [ebx + 0x18]
movzx eax, word [edi]
test ax, ax
je 0x4069bc
add edi, 2
movzx eax, ax
push eax
call fcn.004167fc
add esp, 4
test eax, eax
jne 0x40699c
mov esi, 3
cmp esi, dword [esp + 4]
jg 0x4069d6
mov dword [esp + 0x3c], 0x42e050
or byte [esp + 0x60], 1
mov word [esp + 0x64], 0
push str.MOZ_USING_SERVICE1
call fcn.0041485e
add esp, 4
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4070c0
push dword [esp + 0x1c]
push str.Starting_service_with_cmdline:__ls
push 0x434588
call fcn.0040c830
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x34]
push eax
push ecx
push 0
push 0
push 0x4000000
push 0
push 0
push 0
push dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
mov dword [esp + 0x18], eax
je 0x406abd
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407103
push str.Process_was_started..._waiting_on_result.
push 0x434588
call fcn.0040c830
add esp, 8
push 0xdbba0
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x406b10
push 1
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 1
mov dword [esp + 4], 0
jmp 0x40727f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov esi, eax
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4071cc
push esi
push dword [esp + 0x20]
mov eax, dword [esp + 0x14]
push dword [eax]
push str.Could_not_create_process_as_current_user__updaterPath:__ls__cmdLine:__ls.____d_
push 0x434588
call fcn.0040c890
add esp, 0x14
mov dword [esp + 4], 0
jmp 0x40731c
lea eax, [esp + 0x10d0]
push eax
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov esi, eax
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40720f
test esi, esi
je 0x407255
push dword [esp + 0x10d0]
push str.Process_finished_with_return_code__d.
push 0x434588
call fcn.0040c830
add esp, 0xc
xor eax, eax
cmp dword [esp + 0x10d0], 0
mov dword [esp + 0x14], 0
sete al
mov dword [esp + 4], eax
jmp 0x407277
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405c56
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405c56
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405ed1
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405ed1
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405e2f
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405e2f
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405f20
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405f20
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405e9a
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405e9a
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x40611d
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x40611d
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x40609a
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x40609a
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405c1a
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405c1a
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405f99
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405f99
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x4060ea
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x4060ea
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x406031
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x406031
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405cfe
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405cfe
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x405d35
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x405d35
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x406060
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x406060
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x4062cd
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x4062cd
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x406394
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x406394
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x4063e8
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x4063e8
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x40689b
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x40689b
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x406789
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x406789
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x406907
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x406907
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x406a04
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x406a04
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x406a6c
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x406a6c
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x4068e8
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x4068e8
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x40695b
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x40695b
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x406ae6
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x406ae6
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x406b45
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
test esi, esi
jne 0x406b4d
push str.Process_finished_but_could_not_obtain_return_code.
push 0x434588
call fcn.0040c890
add esp, 8
mov dword [esp + 4], 0
mov dword [esp + 0x14], 1
mov dword [esp + 0xc], 0
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esp + 0x20]
call esi
push dword [esp + 0x24]
call esi
mov eax, dword [esp + 8]
lea esi, [esp + 0xec4]
mov edi, dword [eax]
push 0x20a
push 0
push esi
call fcn.00410040
add esp, 0xc
push esi
call fcn.0040cc00
add esp, 4
test eax, eax
je 0x4072e9
push 0x20a
push 0
lea esi, [esp + 0x10d8]
push esi
call fcn.00410040
add esp, 0xc
push esi
push str..status
push edi
call fcn.0040cce0
add esp, 0xc
test eax, eax
jne 0x4073f7
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4076db
push str.Could_not_get_path_for_the_secure_update_status_file
push 0x434588
call fcn.0040c890
add esp, 8
push str.MOZ_USING_SERVICE
call fcn.0041485e
add esp, 4
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], 0
test eax, eax
je 0x407342
push eax
call fcn.0040da4a
add esp, 4
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4075a3
cmp dword [esp + 4], 0
je 0x4075ec
push str.updater.exe_was_launched_and_run_successfully_
push 0x434588
call fcn.0040c830
add esp, 8
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407698
mov eax, dword [0x434588]
test eax, eax
je 0x4073b3
push eax
call fcn.0041552e
add esp, 4
cmp dword [ebp + 8], 8
je 0x4073c9
cmp dword [ebp + 8], 7
jne 0x4073dd
push 0x42dff4
push dword [ebx + 0x18]
jmp 0x4073d1
push 0x42dff4
push dword [ebx + 0x1c]
call fcn.00416ae0
add esp, 8
test eax, eax
je 0x4073ed
lea eax, [esp + 0xcba]
push eax
call fcn.0040d010
add esp, 4
mov esi, 1
jmp 0x407655
lea eax, [esp + 0x10d0]
push eax
lea eax, [esp + 0xec8]
push eax
call fcn.0040d840
add esp, 8
test eax, eax
je 0x4072e9
push 0
push 0
push 3
push 0
push 7
push 0x80000000
lea eax, [esp + 0xedc]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [esp + 0x10], eax
je 0x407497
xorps xmm0, xmm0
lea eax, [esp + 0x78]
movaps xmmword [esp + 0x10e0], xmm0
movaps xmmword [esp + 0x10d0], xmm0
push 0
push eax
push 0x20
lea eax, [esp + 0x10dc]
push eax
push dword [esp + 0x20]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x4074bf
mov eax, 0x6c707061
mov ecx, 0x676e6979
xor edx, edx
mov esi, 1
xor eax, dword [esp + 0x10d0]
xor ecx, dword [esp + 0x10d4]
or ecx, eax
sete dl
mov edi, edx
jmp 0x4074f6
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407868
push str.Could_not_open_update.status_file
jmp 0x4074e5
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4078ab
push str.Could_not_read_from_update.status_file
push 0x434588
call fcn.0040c890
add esp, 8
xor edi, edi
xor esi, esi
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 2
jb 0x40750a
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x40731c
test esi, esi
je 0x40731c
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4077a4
cmp dword [esp + 4], 0
je 0x4077ed
push str.update.status_is_still_applying_even_though_update_was_successful.
push 0x434588
call fcn.0040c830
add esp, 8
push 0x1d
mov eax, dword [esp + 0xc]
push dword [eax]
call fcn.0040d500
add esp, 8
test eax, eax
mov dword [esp + 4], 0
jne 0x40731c
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4078ee
push str.Could_not_write_update.status_still_applying_on_success_error.
jmp 0x40730f
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x407363
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
cmp dword [esp + 4], 0
jne 0x40736e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_running_update_process._Updating_update.status____d_
push 0x434588
call fcn.0040c890
add esp, 0xc
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40771e
mov eax, dword [0x434588]
test eax, eax
je 0x407638
push eax
call fcn.0041552e
add esp, 4
xor esi, esi
cmp dword [esp + 0x18], 0
jne 0x407655
push 0x18
mov eax, dword [esp + 0xc]
push dword [eax]
call fcn.0040d500
add esp, 8
test eax, eax
je 0x407666
lea ecx, [esp + 0x492]
call fcn.00405580
jmp 0x4060fc
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407761
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_write_update.status_service_update_failure.____d_
jmp 0x406967
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x4073a1
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x4073a1
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x40730a
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x40730a
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x407626
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x407626
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x407687
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x407687
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x40753b
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
cmp dword [esp + 4], 0
jne 0x407546
push str.update.status_is_still_applying_and_update_was_not_successful.
push 0x434588
call fcn.0040c890
add esp, 8
cmp dword [esp + 0xc], 0
mov eax, 0x1e
mov ecx, 0x32
cmove ecx, eax
cmp dword [esp + 0x14], 0
mov eax, 0x33
cmove eax, ecx
push eax
mov eax, dword [esp + 0xc]
push dword [eax]
call fcn.0040d500
add esp, 8
test eax, eax
mov dword [esp + 4], 0
jne 0x40731c
mov ecx, dword [0x433a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x434794]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407931
push str.Could_not_write_update.status_still_applying_on_failure_error.
jmp 0x40730f
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x4074b8
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x4074b8
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x4074e0
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x4074e0
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x407599
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x407599
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x40785e
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x40785e
push 0x434794
call fcn.0040da77
add esp, 4
cmp dword [0x434794], 0xffffffff
jne 0x4066de
mov dword [0x434588], 0
push 0x402060
call fcn.0040dcec
add esp, 4
push 0x434794
call fcn.0040dac9
add esp, 4
jmp 0x4066de