Function at 0x405580
Capabilities:
Access peb ldr_data
Check if file exists
Copy file
Create directory
Create process on windows
Create thread
Delete file
Get common file path
Get file attributes
Get number of processors
Move file
Read file on windows
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xea0
mov eax, dword [0x43d00c]
xor eax, ebp
mov dword [esp + 0xe98], eax
push 0x436db8
call fcn.0041efa0
add esp, 4
test eax, eax
je 0x4055b6
cmp byte [eax], 0
setne al
jmp 0x4055b8
xor eax, eax
mov byte [0x43efd0], al
push str.MOZ_USING_SERVICE
call fcn.0041c4a5
add esp, 4
cmp dword [ebp + 8], 3
jg 0x4055ed
push 2
call fcn.0041526f
add esp, 4
push str.Usage:_updater_patch_dir_install_dir_apply_to_dir__wait_pid__callback_working_dir_callback_path_args...___n
push eax
call fcn.004053f0
add esp, 8
jmp 0x4059da
mov esi, dword [ebp + 0xc]
push dword [esi + 4]
call fcn.004102d0
add esp, 4
mov esi, dword [esi + 4]
test al, al
je 0x40566f
mov edi, 0x104
mov ebx, 0x43e7a8
push edi
push esi
push ebx
call fcn.0041fc49
add esp, 0xc
lea esi, [esp + 0xc90]
mov word [0x43e9ae], 0
push 0x208
push 0
push esi
call fcn.00414930
add esp, 0xc
push ebx
push str._supdate_elevated.lock
push edi
mov edi, dword [ebp + 0xc]
push esi
call fcn.00403e90
add esp, 0x10
cmp byte [0x43efd0], 0
mov al, 1
jne 0x405686
push esi
call fcn.0041d4db
add esp, 4
test eax, eax
je 0x405684
call fcn.0041984c
cmp dword [eax], 2
setne al
jmp 0x405686
push 2
call fcn.0041526f
add esp, 4
push esi
push str.The_patch_directory_path_is_not_valid_for_this_application___S__n
jmp 0x4059d1
xor eax, eax
mov byte [0x43f1dc], al
push dword [edi + 8]
call fcn.004102d0
add esp, 4
test al, al
je 0x40575b
mov esi, 0x43efd4
push 0x104
push dword [edi + 8]
push esi
call fcn.0041fc49
add esp, 0xc
mov word [0x43f1da], 0
push 0x5c
push esi
call fcn.00414dbe
add esp, 8
test eax, eax
je 0x4056d8
cmp word [eax + 2], 0
jne 0x4056d8
mov word [eax], 0
lea esi, [esp + 0x230]
push 0x43e7a8
push str._s_update.status
push 0x104
push esi
call fcn.00403e90
add esp, 0x10
push 0x43849a
push esi
call fcn.0041d30b
add esp, 8
xor esi, esi
test eax, eax
je 0x405797
mov edi, eax
lea ebx, [esp + 0xa80]
xorps xmm0, xmm0
movaps xmmword [ebx + 0x10], xmm0
movaps xmmword [ebx], xmm0
push eax
push 1
push 0x20
push ebx
call fcn.0041eb0c
add esp, 0x10
push 0xf
push 0x4352be
push ebx
call fcn.00413987
add esp, 0xc
test eax, eax
je 0x4057a1
push 0xf
push str.applied_service
push ebx
call fcn.00413987
add esp, 0xc
test eax, eax
sete al
jmp 0x4057a3
sub esp, 0x10
lea esi, [esp + 0x240]
mov dword [esp + 0xc], 0x4b
mov dword [esp], esi
call fcn.00409ff0
add esp, 0x10
mov ecx, esi
call fcn.00407770
mov esi, dword [edi + 8]
push 2
call fcn.0041526f
add esp, 4
push esi
push str.The_install_directory_path_is_not_valid_for_this_application___S__n
jmp 0x4059d1
mov dword [esp + 0xc], 0
jmp 0x4057b0
mov al, 1
mov dword [esp + 0xc], eax
push edi
call fcn.0041e639
add esp, 4
mov edi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
mov dword [esp + 0x230], esi
mov edx, 2
mov ecx, 0x80000001
push esi
lea ebx, [esp + 0x234]
push ebx
push esi
push edx
push esi
push esi
push esi
push str.SoftwareClassesApplications
push ecx
call edi
push dword [esp + 0x230]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
push ebx
push esi
mov eax, 2
push eax
push 1
push esi
push esi
push str.SoftwareClassesApplicationsupdater.exe
mov eax, 0x80000001
push eax
call edi
test eax, eax
jne 0x405853
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor esi, esi
push esi
push esi
push esi
push esi
push str.IsHostApp
push dword [esp + 0x244]
call edi
push esi
push esi
push esi
push esi
push str.NoOpenWith
push dword [esp + 0x244]
call edi
push esi
push esi
push esi
push esi
push str.NoStartPage
push dword [esp + 0x244]
call edi
push dword [esp + 0x230]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
xor esi, esi
cmp ebx, 5
mov ebx, 0
jl 0x4058a4
push dword [edi + 0x10]
call fcn.0041d558
add esp, 4
mov esi, eax
and eax, edx
cmp eax, 0xffffffff
je 0x405898
mov ebx, edx
push str._replace
push dword [edi + 0x10]
call fcn.00414e60
add esp, 8
test eax, eax
je 0x4058a4
mov byte [0x43f1dd], 1
jmp 0x4058a4
xor esi, esi
mov byte [0x43e9b0], 1
dec esi
mov ebx, esi
mov dword [esp + 0x10], ebx
push dword [edi + 0xc]
call fcn.004102d0
add esp, 4
test al, al
je 0x40599a
mov dword [esp + 0x14], esi
mov esi, 0x43e9b8
push 0x104
push dword [edi + 0xc]
push esi
call fcn.0041fc49
add esp, 0xc
mov word [0x43ebbe], 0
push 0x5c
push esi
call fcn.00414dbe
add esp, 8
test eax, eax
je 0x4058f9
cmp word [eax + 2], 0
jne 0x4058f9
mov word [eax], 0
mov ebx, dword [ebp + 8]
cmp ebx, 7
jl 0x405a31
push dword [edi + 0x18]
call fcn.004102d0
add esp, 4
test al, al
je 0x4059f5
mov esi, 0x43efd4
push esi
call fcn.0041f7d0
add esp, 4
mov edi, eax
lea ebx, [esp + 0x230]
push 0x208
push 0
push ebx
call fcn.00414930
add esp, 0xc
push edi
mov edi, dword [ebp + 0xc]
push dword [edi + 0x18]
push ebx
call fcn.0041fc49
add esp, 0xc
push ebx
push esi
call fcn.0041f76e
add esp, 8
test eax, eax
je 0x405a2e
sub esp, 0x10
lea esi, [esp + 0xa90]
mov dword [esp + 0xc], 0x4e
mov dword [esp], esi
call fcn.00409ff0
add esp, 0x10
mov ecx, esi
call fcn.00407770
mov esi, dword [edi + 0x18]
push 2
call fcn.0041526f
add esp, 4
push esi
push str.The_callback_file_must_be_located_in_the_installation_directory___S__n
jmp 0x4059d1
sub esp, 0x10
lea esi, [esp + 0x240]
mov dword [esp + 0xc], 0x4c
mov dword [esp], esi
call fcn.00409ff0
add esp, 0x10
mov ecx, esi
call fcn.00407770
mov esi, dword [edi + 0xc]
push 2
call fcn.0041526f
add esp, 4
push esi
push str.The_working_directory_path_is_not_valid_for_this_application___S__n
push eax
call fcn.004053f0
add esp, 0xc
xor edi, edi
inc edi
mov ecx, dword [esp + 0xe98]
xor ecx, ebp
call fcn.00412591
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
sub esp, 0x10
lea esi, [esp + 0x240]
mov dword [esp + 0xc], 0x4d
mov dword [esp], esi
call fcn.00409ff0
add esp, 0x10
mov ecx, esi
call fcn.00407770
mov esi, dword [edi + 0x18]
push 2
call fcn.0041526f
add esp, 4
push esi
push str.The_callback_file_path_is_not_valid_for_this_application___S__n
jmp 0x4059d1
mov ebx, dword [ebp + 8]
lea esi, [esp + 0xa80]
push 0x20a
push 0
push esi
call fcn.00414930
add esp, 0xc
cmp byte [0x43f1dc], 0
je 0x405a70
mov edi, 0x43e7a8
push edi
call fcn.004108a0
add esp, 4
push esi
push 0x438214
push edi
call fcn.00410720
add esp, 0xc
jmp 0x405a88
push 0x43e7a8
push str._supdate.log
push 0x105
push esi
call fcn.00403e90
add esp, 0x10
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
lea edi, [esp + 0x230]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40711c
mov ecx, 0x43f3e8
push esi
call fcn.0040feb0
mov ecx, str.applying
call fcn.00407770
test al, al
je 0x405aeb
cmp byte [0x43e9b0], 1
jne 0x405b28
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov esi, str.Performing_a_staged_update
jmp 0x405b48
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40715f
push str.failed_setting_status_to_applying
push 0x43f3e8
call fcn.0040ff00
add esp, 8
call fcn.00407850
jmp 0x4059da
cmp byte [0x43f1dd], 1
jne 0x405b65
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov esi, str.Performing_a_replace_request
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40726b
push esi
push 0x43f3e8
call fcn.0040ff00
add esp, 8
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4071a2
push 0x43e7a8
push str.PATCH_DIRECTORY__S
push 0x43f3e8
call fcn.0040ff00
add esp, 0xc
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4071e5
push 0x43efd4
push str.INSTALLATION_DIRECTORY__S
push 0x43f3e8
call fcn.0040ff00
add esp, 0xc
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407228
mov esi, 0x43e9b8
push esi
push str.WORKING_DIRECTORY__S
push 0x43f3e8
call fcn.0040ff00
add esp, 0xc
push 0x104
push 0x43efd4
push esi
call fcn.0041d15d
add esp, 0xc
mov esi, dword [esp + 0x14]
test eax, eax
je 0x405cd0
cmp byte [0x43e9b0], 0
jne 0x405c43
cmp byte [0x43f1dd], 0
je 0x405faf
push 0x43e9b8
push 0x437c8c
push 0x104
push edi
call fcn.00403e90
add esp, 0x10
push edi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je 0x405f4c
push 0x104
push 0x43efd4
push edi
call fcn.0041d15d
add esp, 0xc
test eax, eax
je 0x405cd0
sub esp, 0x10
lea esi, [esp + 0x888]
mov dword [esp + 0xc], 0x48
mov dword [esp], esi
call fcn.00409ff0
add esp, 0x10
mov ecx, esi
call fcn.00407770
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4072b4
push str.The_apply_to_directory_must_be_the_same_as_or_a_child_of_the_installation_directory__Exiting.
jmp 0x405b11
cmp esi, 1
sbb dword [esp + 0x10], 0
jl 0x405d3a
push esi
push 0
push 0x100000
call dword [sym.imp.KERNEL32.dll_OpenProcess]
test eax, eax
je 0x405d3a
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 0x405d3a
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4073c0
push str.The_parent_process_didnt_exit__Continuing_with_update.
push 0x43f3e8
call fcn.0040ff00
add esp, 8
cmp byte [0x43f1dd], 0
jne 0x405d4c
cmp byte [0x43e9b0], 1
jne 0x405d7c
lea esi, [esp + 0x230]
push 0x20a
push 0
push esi
call fcn.00414930
add esp, 0xc
push 0x105
push esi
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x405d7c
push esi
call fcn.0041cb6d
add esp, 4
cmp byte [0x43efd0], 0
je 0x405f0b
xor edi, edi
lea esi, [esp + 0xc90]
dec edi
cmp byte [0x43e9b0], 1
mov dword [esp + 0x10], edi
jne 0x405dac
mov ecx, 0x43e9b8
xor edx, edx
call fcn.00407a00
cmp byte [0x43f1dd], 0
jne 0x405dd4
push 0x43e9b8
call fcn.0041d415
add esp, 4
test eax, eax
je 0x405dd4
call fcn.0041984c
cmp dword [eax], 0x11
jne 0x405b1e
lea eax, [esp + 0x878]
push 0x104
push eax
push 0x43e9b8
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test eax, eax
je 0x405ff7
cmp ebx, 7
jl 0x4060f2
xor edi, edi
lea eax, [esp + 0x640]
push 0x208
push edi
push eax
call fcn.00414930
add esp, 0xc
mov eax, dword [ebp + 0xc]
lea esi, [eax + 0x18]
mov eax, dword [eax + 0x18]
mov dword [esp + 0xc], eax
push 0x410
push edi
lea edi, [esp + 0x238]
push edi
call fcn.00414930
add esp, 0xc
cmp byte [0x43f1dd], 1
mov dword [esp + 0x14], esi
jne 0x4060b6
xor eax, eax
mov edi, esi
mov ecx, 0x43efd4
push eax
push ecx
push dword [esp + 0x14]
call dword [sym.imp.SHLWAPI.dll_PathCommonPrefixW]
mov esi, eax
push eax
push dword [edi]
lea eax, [esp + 0x238]
push eax
call fcn.0041fc49
add esp, 0xc
mov eax, esi
mov dword [esp + 0xc], esi
lea ebx, [esp + esi*2 + 0x230]
mov esi, 0x208
sub esi, eax
lea edi, [eax + eax + 0x43efd4]
push esi
push edi
push ebx
call fcn.0041fc49
add esp, 0xc
push edi
call fcn.0041f7d0
add esp, 4
mov edi, eax
lea eax, [ebx + eax*2 + 2]
not edi
mov dword [esp + 0x18], eax
mov dword [eax - 2], 0x5c
mov eax, 0x43efd4
add edi, esi
lea esi, [esp + 0x20]
push eax
push esi
call fcn.0041f7ae
add esp, 8
xor eax, eax
push eax
push esi
mov ebx, dword [esp + 0x1c]
lea esi, [esp + 0xc98]
push dword [ebx]
call dword [sym.imp.SHLWAPI.dll_PathCommonPrefixW]
mov ecx, dword [esp + 0xc]
cmp eax, ecx
cmovb eax, ecx
add eax, eax
add eax, dword [ebx]
push edi
push eax
push dword [esp + 0x20]
mov ebx, dword [ebp + 8]
call fcn.0041fc49
add esp, 0xc
lea eax, [esp + 0x230]
jmp 0x4060c1
mov al, byte [0x43e9b0]
cmp ebx, 6
lea esi, [esp + 0xc90]
jle 0x406098
test al, 1
jne 0x4060a0
cmp byte [0x43f1dd], 1
je 0x40631c
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0x878]
push dword [ecx + 0x18]
push str._s.update_in_progress.lock
jmp 0x40634e
sub esp, 0x10
lea esi, [esp + 0x888]
mov dword [esp + 0xc], 0x47
mov dword [esp], esi
call fcn.00409ff0
add esp, 0x10
mov ecx, esi
call fcn.00407770
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4072f7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_calling_PathRemoveFileSpecW:__d
push 0x43f3e8
call fcn.0040ff00
add esp, 0xc
jmp 0x405b1e
sub esp, 0x10
mov dword [esp], edi
mov dword [esp + 0xc], 0x4a
call fcn.00409ff0
add esp, 0x10
mov ecx, edi
call fcn.00407770
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40733a
push str.Installation_directory_and_working_directory_must_be_the_same_for_non_staged_updates._Exiting.
jmp 0x405b11
sub esp, 0x10
lea edi, [esp + 0x240]
mov dword [esp + 0xc], 0x41
mov dword [esp], edi
call fcn.00409ff0
add esp, 0x10
mov ecx, edi
call fcn.00407770
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40737d
push 0x43e9b8
push str.NS_main:_unable_to_find_apply_to_dir:__S
push 0x43f3e8
call fcn.0040ff00
add esp, 0xc
call fcn.00407850
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x406068
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call fcn.0041d4db
add esp, 4
test eax, eax
je 0x4062ea
call fcn.0041984c
xor edi, edi
inc edi
cmp ebx, 7
jl 0x4059dd
cmp dword [eax], 2
je 0x4062f3
jmp 0x4059dd
test al, 1
je 0x40630f
lea eax, [esp + 0x878]
push 0x43efd4
push str._s_updated.update_in_progress.lock
jmp 0x40634e
mov eax, dword [esp + 0xc]
lea esi, [esp + 0xc90]
push 0x104
lea ecx, [esp + 0x644]
push ecx
mov dword [esp + 0x14], eax
push eax
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
mov edi, dword [esp + 0x14]
test eax, eax
je 0x40658e
cmp byte [0x43f1dd], 0
je 0x40663e
xor edi, edi
dec edi
cmp byte [0x43e9b0], 0
jne 0x40614c
cmp byte [0x43f1dd], 0
jne 0x40614c
mov esi, 0x43f1de
push str.tobedeleted
push 0x43e9b8
push str._s__s
push 0x104
push esi
call fcn.00403e90
add esp, 0x14
push 0
push esi
lea esi, [esp + 0xc98]
call fcn.0041ca95
add esp, 8
test eax, eax
je 0x40614c
push 0x43f1de
call fcn.0041d415
add esp, 4
xor eax, eax
lea ecx, [esp + 0x640]
mov dword [esp + 0x234], 0x407cf0
mov dword [esp + 0x238], eax
push ecx
push eax
lea ecx, [esp + 0x238]
push ecx
push 0x40a040
push eax
push eax
call fcn.00418a57
add esp, 0x18
test eax, eax
mov dword [esp + 0x230], eax
je 0x4061b0
cmp byte [0x43e9b0], 0
jne 0x4061b0
cmp byte [0x43f1dd], 0
jne 0x4061b0
push 1
push 0
call fcn.004019d0
add esp, 8
mov eax, dword [esp + 0x230]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [esp + 0x230]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp ebx, 7
jl 0x406233
cmp byte [0x43f1dd], 0
jne 0x406233
cmp edi, 0xffffffff
je 0x4061e0
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x43edc8
call fcn.0041d4db
add esp, 4
test eax, eax
je 0x406233
call fcn.0041984c
cmp dword [eax], 2
je 0x406233
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407595
push 0x43edc8
push str.NS_main:_non_fatal_error_removing_backup_of_callback_app_file__path:__S
push 0x43f3e8
call fcn.0040ff00
add esp, 0xc
cmp byte [0x43e9b0], 0
jne 0x4068af
cmp byte [0x43f1dd], 0
jne 0x4068af
push 0x43f1de
call fcn.0041d530
add esp, 4
test eax, eax
je 0x4068af
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4074cc
call fcn.0041984c
push dword [eax]
push str.tobedeleted
push str.NS_main:_unable_to_remove_directory:__S__err:__d
push 0x43f3e8
call fcn.0040ff00
add esp, 0x10
push 4
push 0
push 0x43f1de
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov edi, eax
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40750f
test edi, edi
je 0x406898
push str.tobedeleted
push str.NS_main:_directory_will_be_removed_on_OS_reboot:__S
jmp 0x4068a2
cmp ebx, 7
jl 0x4059da
mov esi, dword [ebp + 0xc]
movzx eax, byte [0x43efd0]
add ebx, 0xfffffffa
mov edx, ebx
mov ecx, dword [esi + 0x14]
add esi, 0x18
push eax
push esi
jmp 0x406634
cmp byte [0x43f1dd], 1
jne 0x4067c3
lea esi, [esp + 0x230]
push 0x43efd4
push esi
call fcn.0041f7ae
add esp, 8
push 0x5c
push esi
call fcn.00414dbe
add esp, 8
mov word [eax], 0
lea eax, [esp + 0x878]
push esi
push str._smoz_update_in_progress.lock
push 0x104
push eax
call fcn.00403e90
add esp, 0x10
lea esi, [esp + 0x878]
push esi
call fcn.0041d4db
add esp, 4
test eax, eax
je 0x40637e
call fcn.0041984c
cmp dword [eax], 2
jne 0x406577
xor eax, eax
push eax
push 0x4000000
push 4
push eax
push eax
push 0xc0000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
lea esi, [esp + 0xc90]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4063bc
push 0x22
push 0x43d9bc
push 0
call fcn.0040fc40
add esp, 0xc
cmp edi, 0xffffffff
jne 0x405d93
push esi
call fcn.0041d4db
add esp, 4
test eax, eax
je 0x4063e0
call fcn.0041984c
cmp dword [eax], 2
jne 0x406798
xor eax, eax
push eax
push 0x4000000
push 4
push eax
push eax
push 0xc0000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
je 0x406798
mov esi, eax
mov eax, dword [ebp + 0xc]
lea edi, [esp + 0x1c]
lea edx, [ebx - 1]
mov ecx, edi
add eax, 4
push eax
call fcn.00404e70
add esp, 4
mov ebx, dword [edi]
test ebx, ebx
je 0x406952
cmp byte [esp + 0xc], 0
je 0x406d53
push 0x43efd4
call fcn.0040ffd0
add esp, 4
test al, al
je 0x406d53
lea edi, [esp + 0x230]
mov dword [edi], 0
push edi
mov eax, dword [ebp + 0xc]
push dword [eax]
call fcn.00410f90
add esp, 8
test eax, eax
je 0x406d53
cmp dword [esp + 0x230], 0
je 0x406d53
push edi
call fcn.00411020
add esp, 4
test eax, eax
je 0x406491
cmp dword [esp + 0x230], 0
jne 0x406d53
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], esi
push edi
push 0x43efd4
call fcn.0040ef90
add esp, 8
test eax, eax
je 0x406d4b
lea eax, [esp + 0x640]
xor ecx, ecx
mov esi, eax
mov dword [eax], ecx
push eax
push 0x20119
push ecx
push edi
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x4064e0
push dword [esp + 0x640]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
xorps xmm0, xmm0
mov dword [esp + 0x65d], eax
mov dword [esp + 0x661], eax
movaps xmmword [esp + 0x650], xmm0
movaps xmmword [esp + 0x640], xmm0
push 0x20a
mov dword [esp + 0x18], 0
push eax
push edi
call fcn.00414930
add esp, 0xc
push edi
push 0x438440
push 0x43e7a8
call fcn.00410720
add esp, 0xc
test eax, eax
je 0x406b9e
push 0x43849a
push edi
call fcn.0041d30b
add esp, 8
test eax, eax
je 0x406b83
mov ebx, eax
push eax
push 1
push 0x24
push esi
call fcn.0041eb0c
add esp, 0x10
cmp eax, 1
jne 0x406b8d
mov al, 1
mov byte [esp + 0x664], 0
mov dword [esp + 0x14], eax
jmp 0x406b95
cmp byte [0x43f1dd], 1
jne 0x406740
mov ecx, str.pending
jmp 0x406768
sub esp, 0x10
lea edi, [esp + 0x30]
mov dword [esp + 0xc], 0x42
mov dword [esp], edi
call fcn.00409ff0
add esp, 0x10
mov ecx, edi
call fcn.00407770
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407446
push dword [esp + 0xc]
push str.NS_main:_unable_to_find_callback_file:__S
push 0x43f3e8
call fcn.0040ff00
add esp, 0xc
call fcn.00407850
mov eax, dword [esp + 0x10]
mov esi, dword [ebp + 0xc]
cmp eax, 0xffffffff
je 0x4065fe
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0xc90]
push eax
call fcn.0041d4db
add esp, 4
test eax, eax
je 0x406620
call fcn.0041984c
cmp dword [eax], 2
jne 0x4059da
movzx eax, byte [0x43efd0]
mov ecx, dword [esi + 0x14]
add ebx, 0xfffffffa
mov edx, ebx
push eax
push dword [esp + 0x18]
call fcn.00405440
jmp 0x4055e5
lea eax, [esp + 0x878]
push eax
call fcn.0041f7d0
add esp, 4
lea ecx, [esp + eax*2 + 0x640]
lea eax, [esp + eax*2 + 0x642]
mov esi, 0x2f
cmp word [ecx], 0x5c
cmovne eax, ecx
mov ecx, 2
movzx edx, word [eax]
cmp dx, 0x5c
cmove edx, esi
mov word [ecx + 0x43ebbe], dx
movzx edx, word [eax + ecx]
add ecx, 2
test dx, dx
jne 0x406670
mov word [ecx + 0x43ebbe], 0
mov esi, 0x104
push dword [edi]
push str._s.moz_callback
push esi
push 0x43edc8
call fcn.00403e90
add esp, 0x10
cmp eax, esi
jb 0x4067cf
sub esp, 0x10
lea esi, [esp + 0x30]
mov dword [esp + 0xc], 3
mov dword [esp], esi
call fcn.00409ff0
add esp, 0x10
mov ecx, esi
call fcn.00407770
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407552
push str.NS_main:_callback_backup_path_truncated
push 0x43f3e8
call fcn.0040ff00
add esp, 8
call fcn.00407850
mov eax, dword [esp + 0x10]
lea esi, [esp + 0xc90]
cmp eax, 0xffffffff
je 0x406725
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call fcn.0041d4db
add esp, 4
test eax, eax
je 0x4059da
call fcn.0041984c
jmp 0x4059da
cmp byte [0x43e9b0], 1
jne 0x40676d
sub esp, 0x10
lea esi, [esp + 0x240]
mov dword [esp + 0xc], 0x2c
mov dword [esp], esi
call fcn.00409ff0
add esp, 0x10
mov ecx, esi
call fcn.00407770
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407403
push str.Update_already_in_progress__Exiting
jmp 0x405b11
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407489
push str.Unable_to_create_elevated_lock_file__Exiting
jmp 0x405b11
xor eax, eax
dec eax
mov dword [esp + 0x10], eax
jmp 0x405db5
push 0
push 0x43edc8
push dword [edi]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x40696b
mov edi, dword [esp + 0xc]
xor esi, esi
inc esi
xor eax, eax
push eax
push eax
push 3
push eax
push 6
push 0x40010000
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x40698a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov ebx, eax
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40685c
push ebx
mov edi, dword [esp + 0x10]
push edi
push esi
push str.NS_main:_callback_app_file_open_attempt__d_failed._File:__S._Last_error:__d
push 0x43f3e8
call fcn.0040ff00
add esp, 0x14
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
inc esi
cmp esi, 0xb
jne 0x4067ed
jmp 0x40699b
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x406830
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x406830
push str.tobedeleted
push str.NS_main:_failed_to_schedule_OS_reboot_removal_of_directory:__S
push 0x43f3e8
call fcn.0040ff00
add esp, 0xc
call fcn.00407850
cmp ebx, 7
jl 0x406943
cmp byte [0x43efd2], 1
jne 0x4068fd
call fcn.00405080
test al, al
jne 0x4068e7
push 2
call fcn.0041526f
add esp, 4
push str.The_post_update_process_was_not_launched
push eax
call fcn.004053f0
add esp, 8
cmp byte [0x43efd0], 0
jne 0x4068fd
push 0x43efd4
call fcn.004109f0
add esp, 4
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x40690d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call fcn.0041d4db
add esp, 4
test eax, eax
je 0x406924
call fcn.0041984c
cmp dword [eax], 2
jne 0x406943
mov esi, dword [ebp + 0xc]
movzx eax, byte [0x43efd0]
add ebx, 0xfffffffa
mov edx, ebx
mov ecx, dword [esi + 0x14]
add esi, 0x18
push eax
push esi
call fcn.00405440
add esp, 8
movzx edi, byte [0x43efd2]
xor edi, 1
jmp 0x4059dd
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00407850
mov dword [esp + 0x1c], 0
jmp 0x4059da
call dword [sym.imp.KERNEL32.dll_GetLastError]
sub esp, 0x10
lea edi, [esp + 0x30]
cmp eax, 5
jne 0x4069ed
mov dword [esp], edi
mov dword [esp + 0xc], 0x23
jmp 0x4069f8
mov ebx, dword [ebp + 8]
mov edi, eax
lea esi, [esp + 0xc90]
jmp 0x4060f5
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40765e
mov eax, dword [esp + 0x14]
cmp ebx, 0x20
mov eax, dword [eax]
jne 0x406a98
push eax
push str.NS_main:_callback_app_file_in_use__continuing_without_exclusive_access_for_executable_file:__S
push 0x43f3e8
call fcn.0040ff00
add esp, 0xc
mov ebx, dword [ebp + 8]
lea esi, [esp + 0xc90]
jmp 0x4060f2
mov dword [esp], edi
mov dword [esp + 0xc], 0x25
call fcn.00409ff0
add esp, 0x10
mov ecx, edi
call fcn.00407770
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4075d8
push 0x43edc8
mov eax, dword [esp + 0x18]
push dword [eax]
push str.NS_main:_failed_to_copy_callback_file__S_into_place_at__S
push 0x43f3e8
call fcn.0040ff00
add esp, 0x10
call fcn.00407850
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x406a5a
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0xc90]
push eax
call fcn.0041d4db
add esp, 4
mov esi, dword [ebp + 8]
test eax, eax
je 0x406a7f
call fcn.0041984c
cmp dword [eax], 2
jne 0x4059da
mov edi, dword [esp + 0x14]
movzx eax, byte [0x43efd0]
add esi, 0xfffffffa
mov edx, esi
mov ecx, dword [edi]
push eax
push edi
jmp 0x406634
push eax
push str.NS_main:_callback_app_file_in_use__failed_to_exclusively_open_executable_file:__S
push 0x43f3e8
call fcn.0040ff00
add esp, 0xc
sub esp, 0x10
lea edi, [esp + 0x30]
cmp ebx, 5
jne 0x406ac4
mov dword [esp], edi
mov dword [esp + 0xc], 0x23
jmp 0x406acf
mov dword [esp], edi
mov dword [esp + 0xc], 0x25
call fcn.00409ff0
add esp, 0x10
mov ecx, edi
call fcn.00407770
push 0x43edc8
call fcn.0041d4db
add esp, 4
test eax, eax
je 0x406b31
call fcn.0041984c
cmp dword [eax], 2
je 0x406b31
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4076a1
push 0x43edc8
push str.NS_main:_unable_to_remove_backup_of_callback_app_file__path:__S
push 0x43f3e8
call fcn.0040ff00
add esp, 0xc
call fcn.00407850
cmp dword [esp + 0x10], 0xffffffff
je 0x406b47
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [esp + 0xc90]
push eax
call fcn.0041d4db
add esp, 4
mov esi, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
test eax, eax
je 0x406b6f
call fcn.0041984c
cmp dword [eax], 2
jne 0x4059da
movzx eax, byte [0x43efd0]
mov ecx, dword [edi + 0x14]
add esi, 0xfffffffa
mov edx, esi
jmp 0x40662f
mov dword [esp + 0x14], 0
jmp 0x406b9e
mov dword [esp + 0x14], 0
push ebx
call fcn.0041e639
add esp, 4
sub esp, 0x10
mov dword [esp], edi
mov dword [esp + 0xc], 0x3a
call fcn.00409ff0
add esp, 0x10
mov ecx, edi
call fcn.00407770
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00410e80
add esp, 8
test eax, eax
jne 0x406d4b
cmp byte [0x43e9b0], 0
je 0x406bde
xor ebx, ebx
jmp 0x406be8
call fcn.00401930
test eax, eax
sete bl
push 5
push str.MozillaMaintenance
call fcn.00410ca0
add esp, 8
cmp eax, 1
je 0x406c5f
xor eax, eax
lea ecx, [esp + 0x20]
mov dword [esp + 0x234], 0x4079e0
mov dword [esp + 0x238], eax
push ecx
push eax
push edi
push 0x40a040
push eax
push eax
call fcn.00418a57
add esp, 0x18
test eax, eax
mov dword [esp + 0x230], eax
je 0x406c49
xor bl, 1
jne 0x406c49
push 0
push 1
call fcn.004019d0
add esp, 8
mov eax, dword [esp + 0x230]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [esp + 0x230]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 1
push str.MozillaMaintenance
call fcn.00410ca0
add esp, 8
cmp eax, 1
jne 0x406d4b
xor eax, eax
cmp byte [esp + 0x14], 0
xorps xmm0, xmm0
mov byte [0x43efd1], 1
mov dword [esp + 0x3d], eax
mov dword [esp + 0x41], eax
movaps xmmword [esp + 0x30], xmm0
movaps xmmword [esp + 0x20], xmm0
je 0x407010
push 0x20a
push 0
push edi
call fcn.00414930
add esp, 0xc
push edi
push 0x438440
push 0x43e7a8
call fcn.00410720
add esp, 0xc
test eax, eax
je 0x407010
push 0x43849a
push edi
call fcn.0041d30b
add esp, 8
test eax, eax
je 0x407010
mov edi, eax
lea ebx, [esp + 0x20]
push eax
push 1
push 0x24
push ebx
call fcn.0041eb0c
add esp, 0x10
cmp eax, 1
jne 0x40710e
mov byte [esp + 0x44], 0
push edi
call fcn.0041e639
add esp, 4
push 0x25
push ebx
push esi
call fcn.0041f480
add esp, 0xc
test eax, eax
jne 0x407010
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407727
push str.The_secure_ID_hasnt_changed_after_launching_the_updater_using_the_service
jmp 0x406fd6
mov esi, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
cmp byte [0x43e9b0], 1
jne 0x406dbd
sub esp, 0x10
lea esi, [esp + 0x240]
mov dword [esp + 0xc], 0x2b
mov dword [esp], esi
call fcn.00409ff0
add esp, 0x10
mov ecx, esi
call fcn.00407770
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40761b
push str.Non_critical_update_staging_error__Falling_back_to_non_staged_updates_and_exiting
push 0x43f3e8
call fcn.0040ff00
add esp, 8
call fcn.00407850
jmp 0x4070f6
xor edi, edi
mov dword [esp + 0xc], esi
xorps xmm0, xmm0
lea esi, [esp + 0x230]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x3d], edi
mov dword [esp + 0x41], edi
movaps xmmword [esp + 0x30], xmm0
movaps xmmword [esp + 0x20], xmm0
push 0x20a
push edi
push esi
call fcn.00414930
add esp, 0xc
push esi
push 0x438440
push 0x43e7a8
call fcn.00410720
add esp, 0xc
test eax, eax
je 0x406e3d
push 0x43849a
push esi
call fcn.0041d30b
add esp, 8
test eax, eax
je 0x406e3d
mov esi, eax
lea eax, [esp + 0x20]
push esi
push 1
push 0x24
push eax
call fcn.0041eb0c
add esp, 0x10
cmp eax, 1
jne 0x406e41
mov bl, 1
mov byte [esp + 0x44], 0
jmp 0x406e43
xor ebx, ebx
jmp 0x406e4c
xor ebx, ebx
push esi
call fcn.0041e639
add esp, 4
sub esp, 0x10
lea esi, [esp + 0x240]
mov dword [esp + 0xc], 0x4f
mov dword [esp], esi
call fcn.00409ff0
add esp, 0x10
mov ecx, esi
call fcn.00407770
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0x640]
mov edx, dword [esp + 0x10]
mov dword [eax + 0x1c], edi
mov dword [eax + 0x18], edi
mov dword [eax + 0x24], edi
mov dword [eax + 0x20], edi
mov dword [eax + 0x2c], edi
mov dword [eax + 0x28], edi
mov dword [eax + 0x34], edi
mov dword [eax + 0x30], edi
mov dword [eax + 0x38], edi
mov dword [eax], 0x3c
mov dword [eax + 4], 0x540
mov dword [eax + 8], edi
mov ecx, dword [ecx]
mov dword [eax + 0x10], ecx
mov dword [eax + 0x14], edx
mov dword [eax + 0xc], str.runas
mov dword [eax + 0x1c], 1
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
test eax, eax
je 0x406fec
push 0xffffffffffffffff
push dword [esp + 0x67c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [esp + 0x678]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
xorps xmm0, xmm0
test bl, bl
mov byte [0x43efd1], 1
mov dword [esp + 0x86d], eax
mov dword [esp + 0x871], eax
movaps xmmword [esp + 0x860], xmm0
movaps xmmword [esp + 0x850], xmm0
je 0x407010
push 0x20a
push 0
lea esi, [esp + 0x238]
push esi
call fcn.00414930
add esp, 0xc
push esi
push 0x438440
push 0x43e7a8
call fcn.00410720
add esp, 0xc
test eax, eax
je 0x407010
push 0x43849a
lea eax, [esp + 0x234]
push eax
call fcn.0041d30b
add esp, 8
test eax, eax
je 0x407010
mov edi, eax
lea esi, [esp + 0x850]
push eax
push 1
push 0x24
push esi
call fcn.0041eb0c
add esp, 0x10
cmp eax, 1
jne 0x40710e
mov byte [esp + 0x874], 0
push edi
call fcn.0041e639
add esp, 4
lea eax, [esp + 0x20]
push 0x25
push esi
push eax
call fcn.0041f480
add esp, 0xc
test eax, eax
jne 0x407010
mov ecx, dword [0x43db8c]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43f5f4]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4076e4
push str.The_secure_ID_hasnt_changed_after_launching_the_updater_using_runas
push 0x43f3e8
call fcn.0040ff00
add esp, 8
mov byte [0x43efd1], 0
jmp 0x407010
mov byte [0x43efd1], 0
sub esp, 0x10
mov dword [esp], esi
mov dword [esp + 0xc], 9
call fcn.00409ff0
add esp, 0x10
mov ecx, esi
call fcn.00407770
cmp byte [0x43e9b0], 0
jne 0x4070be
lea esi, [esp + 0x230]
push 0x20a
push 0
push esi
call fcn.00414930
add esp, 0xc
push esi
push 0x437c02
push 0x43e7a8
call fcn.00410720
add esp, 0xc
test eax, eax
je 0x4070be
push 0x43849a
push esi
call fcn.0041d30b
add esp, 8
test eax, eax
je 0x4070be
xorps xmm0, xmm0
lea esi, [esp + 0x640]
mov edi, eax
movaps xmmword [esi + 0x10], xmm0
movaps xmmword [esi], xmm0
push eax
push 1
push 0x20
push esi
call fcn.0041eb0c
add esp, 0x10
push 9
push 0x4352de
push esi
call fcn.00413987
add esp, 0xc
mov esi, eax
push edi
call fcn.0041e639
add esp, 4
test esi, esi
jne 0x4070be
call fcn.00405080
test al, al
jne 0x4070be
push 2
call fcn.0041526f
add esp, 4
push str.The_post_update_process_which_runs_as_the_user_for_service_update_could_not_be_launched.
push eax
call fcn.004053f0
add esp, 8
push dword [esp + 0xc]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00407850
mov edx, dword [ebp + 8]
mov ebx, dword [esp + 0x10]
cmp edx, 7
jl 0x4070f6
mov esi, dword [ebp + 0xc]
movzx eax, byte [0x43efd0]
add edx, 0xfffffffa
mov ecx, dword [esi + 0x14]
add esi, 0x18
push eax
push esi
call fcn.00405440
add esp, 8
mov dword [esp + 0x1c], 0
push ebx
call fcn.00411d52
add esp, 4
xor edi, edi
jmp 0x4059dd
push edi
call fcn.0041e639
add esp, 4
jmp 0x407010
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x405ab0
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x405ab0
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x405b0c
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x405b0c
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x405b86
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x405b86
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x405bbe
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x405bbe
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x405bf6
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x405bf6
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x4072a5
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
mov ebx, dword [ebp + 8]
lea edi, [esp + 0x230]
jmp 0x405b57
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x405cc6
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x405cc6
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x405f91
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x405f91
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x405fed
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x405fed
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x40603c
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x40603c
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x405d28
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x405d28
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x40678e
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x40678e
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x4065d0
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x4065d0
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x4067b9
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x4067b9
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x406283
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x406283
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x4062d3
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x4062d3
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x4066f7
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x4066f7
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x40621c
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x40621c
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x406a28
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x406a28
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x406da1
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x406da1
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x4069bc
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x4069bc
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x406b1a
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x406b1a
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x406fd1
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x406fd1
push 0x43f5f4
call fcn.00411d87
add esp, 4
cmp dword [0x43f5f4], 0xffffffff
jne 0x406d41
mov dword [0x43f3e8], 0
push 0x409c40
call fcn.00411ffc
add esp, 4
push 0x43f5f4
call fcn.00411dd9
add esp, 4
jmp 0x406d41