Function at 0x405450
Capabilities:
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, 0x1100
call fcn.0041ffa0
mov eax, dword [0x43200c]
xor eax, ebp
cmp dword [ebp + 8], 2
mov dword [esp + 0x10f8], eax
jg 0x4054a2
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405e4f
push str.Not_enough_command_line_arguments_to_execute_a_service_command
jmp 0x4055fb
mov edi, dword [ebp + 0xc]
lea ebx, [esp + 0xaaa]
push 0x20a
push 0
push ebx
call fcn.0040fdd0
add esp, 0xc
push ebx
call fcn.0040c230
add esp, 4
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov esi, eax
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405e92
mov eax, dword [edi + 8]
test esi, esi
je 0x405505
push ebx
push eax
push str.Executing_service_command__ls__ID:__ls
push 0x433580
call fcn.0040adf0
add esp, 0x10
jmp 0x405518
push eax
push str.Executing_service_command__ls
push 0x433580
call fcn.0040adf0
add esp, 0xc
push str.software_update
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x40557f
push str.fix_update_directory_perms
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x40560f
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405f18
mov ebx, edi
push dword [edi + 8]
push str.Service_command_not_recognized:__ls.
push 0x433580
call fcn.0040aea0
add esp, 0xc
xor esi, esi
jmp 0x4056de
cmp dword [ebp + 8], 4
jl 0x4055d5
push dword [edi + 0x10]
call fcn.0040b210
add esp, 4
test al, al
je 0x4055d5
mov ebx, edi
add edi, 0x10
mov esi, dword [edi]
push esi
call fcn.00416709
add esp, 4
cmp eax, 9
ja 0x40573c
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406203
push str.The_patch_directory_path_length_is_not_valid_for_this_application.
jmp 0x4055fb
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405f5b
push str.The_patch_directory_path_is_not_valid_for_this_application.
push 0x433580
call fcn.0040aea0
add esp, 8
xor esi, esi
jmp 0x405724
cmp dword [ebp + 8], 3
mov dword [esp + 0xeec], 0
jg 0x405659
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405f9e
mov ebx, edi
push str.Didnt_get_an_install_dir_for_fix_update_directory_perms
push 0x433580
call fcn.0040aea0
add esp, 8
xor ecx, ecx
jmp 0x40565e
mov ecx, dword [edi + 0xc]
mov ebx, edi
lea eax, [esp + 0xeec]
xor esi, esi
xor edx, edx
push eax
push 1
push esi
push esi
call fcn.004075d0
add esp, 0x10
test eax, eax
js 0x405686
mov edi, dword [esp + 0xeec]
xor esi, esi
inc esi
jmp 0x4056c6
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov esi, eax
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405fe1
mov edi, dword [esp + 0xeec]
push esi
push edi
push str.Unable_to_set_the_permissions_on_the_update_directory___S_:__d
push 0x433580
call fcn.0040aea0
add esp, 0x10
xor esi, esi
test edi, edi
mov dword [esp + 0xeec], 0
je 0x4056de
push edi
call fcn.0040d78d
add esp, 4
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405ed5
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 0x433580
call fcn.0040adf0
add esp, 0x10
mov ecx, dword [esp + 0x10f8]
xor ecx, ebp
call fcn.0040dec1
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esi + eax*2 - 0x14]
push 0xa
push 0x42d038
push eax
call fcn.0041513f
add esp, 0xc
test eax, eax
je 0x40577f
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406246
push str.The_patch_directory_path_subdirectory_is_not_valid_for_this_application.
jmp 0x4055fb
push dword [edi]
call fcn.0040b7e0
add esp, 4
push dword [edi]
call fcn.0040b6e0
add esp, 4
test eax, eax
je 0x405872
cmp dword [ebp + 8], 5
jl 0x4057f1
mov esi, ebx
push dword [ebx + 0x14]
call fcn.0040b210
add esp, 4
test al, al
je 0x4057f1
push dword [esi + 0x14]
call fcn.0040af10
add esp, 4
test al, al
je 0x4057f1
mov eax, dword [ebp + 8]
lea ecx, [eax - 3]
cmp ecx, 4
mov dword [esp + 4], ecx
jne 0x40589d
push 0x42d032
push dword [esi + 0x18]
call fcn.004166a7
add esp, 8
test eax, eax
jne 0x4058a6
jmp 0x4058be
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4063f1
push str.The_install_directory_path_is_not_valid_for_this_application.
push 0x433580
call fcn.0040aea0
add esp, 8
push 0x37
push dword [edi]
call fcn.0040bdc0
add esp, 8
xor esi, esi
test eax, eax
jne 0x405724
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406576
push str.Could_not_write_update.status_for_previous_failure.
push 0x433580
call fcn.0040aea0
add esp, 8
jmp 0x405724
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406434
push str.Unable_to_write_to_secure_ID_file.
jmp 0x4055fb
cmp eax, 7
jl 0x405a1e
push str._replace
push dword [ebx + 0x18]
call fcn.00410093
add esp, 8
test eax, eax
je 0x4059fc
lea esi, [ebx + 0xc]
lea eax, [esp + 0x8a0]
push 0x20a
push 0
push eax
call fcn.0040fdd0
add esp, 0xc
mov ecx, dword [esp + 4]
lea eax, [esp + 0x8a0]
mov dword [esp + 8], esi
mov edx, esi
push eax
call fcn.00404940
add esp, 4
test eax, eax
je 0x4059c2
call fcn.0040bff0
test eax, eax
jne 0x405bc2
lea eax, [esp + 0xeec]
push eax
lea eax, [esp + 0x8a4]
push eax
call fcn.00409f70
add esp, 8
test eax, eax
je 0x405acc
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406a59
lea esi, [esp + 0xeec]
push esi
push str.Checking_for_Maintenance_Service_registry._key:__ls
push 0x433580
call fcn.0040adf0
add esp, 0xc
lea ecx, [esp + 0xcb4]
xor eax, eax
mov dword [ecx], eax
push ecx
push 0x20119
push eax
push esi
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x405bb5
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406adf
push str.The_maintenance_service_registry_key_does_not_exist.
push 0x433580
call fcn.0040aea0
add esp, 8
push 0x39
jmp 0x405ace
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406932
push str.Could_not_get_the_installation_directory
push 0x433580
call fcn.0040aea0
add esp, 8
push 0x21
jmp 0x405ace
mov esi, dword [ebx + 0x18]
movzx eax, word [esi]
test ax, ax
je 0x4058be
add esi, 2
movzx eax, ax
push eax
call fcn.004163f7
add esp, 4
test eax, eax
jne 0x4059ff
cmp dword [ebp + 8], 6
jl 0x405a92
push dword [ebx + 0x18]
call fcn.0040b210
add esp, 4
test al, al
je 0x405a92
push 0x104
push dword [ebx + 0x14]
push dword [ebx + 0x18]
call fcn.0041513f
add esp, 0xc
test eax, eax
je 0x4058be
cmp dword [ebp + 8], 7
jge 0x405b0b
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406d62
push str.Installation_directory_and_working_directory_must_be_the_same_for_non_staged_updates._Exiting.
push 0x433580
call fcn.0040aea0
add esp, 8
push 0x36
jmp 0x405826
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4068ef
push str.The_working_directory_path_is_not_valid_for_this_application.
push 0x433580
call fcn.0040aea0
add esp, 8
push 0x38
jmp 0x405826
push 0x35
push dword [edi]
call fcn.0040bdc0
add esp, 8
test eax, eax
jne 0x405608
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406a9c
push str.Could_not_write_update.status_for_previous_failure.
jmp 0x4055fb
push 0x42d032
push dword [ebx + 0x1c]
call fcn.004166a7
add esp, 8
test eax, eax
je 0x405b37
push str._replace
push dword [ebx + 0x1c]
call fcn.00410093
add esp, 8
test eax, eax
je 0x405a58
mov eax, dword [ebx + 0x18]
sub esp, 0x10
lea esi, [esp + 0xefc]
mov dword [esp + 0xc], eax
mov dword [esp], esi
call fcn.00407500
add esp, 0x10
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
je 0x405cce
push 0x104
push dword [ebx + 0x14]
push esi
call fcn.0041513f
add esp, 0xc
test eax, eax
je 0x4058be
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406e6e
push str.The_apply_to_directory_must_be_the_same_as_or_a_child_of_the_installation_directory__Exiting.
push 0x433580
call fcn.0040aea0
add esp, 8
push 0x34
jmp 0x405ace
push dword [esp + 0xcb4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [esp + 0xc], edi
lea edi, [esp + 0x696]
push 0x20a
push 0
push edi
call fcn.0040fdd0
add esp, 0xc
push 0x104
lea eax, [esp + 0x8a4]
push eax
push edi
call fcn.00416b82
add esp, 0xc
push str.updater.exe
push edi
call fcn.0040c1f0
add esp, 8
test eax, eax
jne 0x405c38
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406da5
push str.Install_directory_updater_could_not_be_determined.
push 0x433580
call fcn.0040aea0
add esp, 8
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x696]
lea edx, [esp + 0x8a0]
mov esi, ecx
push dword [eax]
call fcn.00404a80
add esp, 4
mov byte [esp + 0x14], al
lea eax, [esp + 0x48c]
push 0x20a
push 0
mov edi, eax
push eax
call fcn.0040fdd0
add esp, 0xc
cmp byte [esp + 0x14], 0
je 0x405d49
push 0x104
push edi
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x405d0f
push edi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
jne 0x405e07
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406e2b
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 0x405d3c
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406eb1
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 0x433580
call fcn.0040aea0
add esp, 0xc
push 0x47
jmp 0x405ace
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406ef4
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 0x433580
call fcn.0040aea0
add esp, 0xc
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406d1f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_copy_path_to_secure_location.____d_
push 0x433580
call fcn.0040aea0
add esp, 0xc
push 0x31
mov eax, dword [esp + 0x10]
push dword [eax]
call fcn.0040bdc0
add esp, 8
xor esi, esi
test eax, eax
jne 0x405dcc
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406de8
push str.Could_not_write_update.status_could_not_copy_updater_error
push 0x433580
call fcn.0040aea0
add esp, 8
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406cdc
push dword [ebx + 8]
push str.Service_command__ls_complete.
push 0x433580
call fcn.0040adf0
add esp, 0xc
jmp 0x4056de
push 0x42cda8
push edi
call fcn.0040c1f0
add esp, 8
test eax, eax
jne 0x406024
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406291
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 0x405d3c
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405498
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405498
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4054e8
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4054e8
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4056ff
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4056ff
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405561
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405561
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4055f6
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4055f6
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405641
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405641
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4056a9
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4056a9
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push str.updater.exe
lea eax, [esp + 0x490]
push eax
call fcn.0040c1f0
add esp, 8
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
test eax, eax
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
mov ecx, dword [ecx + 4]
je 0x406289
cmp eax, ecx
jg 0x406f37
push edi
push esi
mov eax, dword [esp + 0x10]
push dword [eax]
push str.Passed_in_path:__ls__ignored___Install_dir_has:__ls__Using_this_path_for_updating:__ls.
push 0x433580
call fcn.0040adf0
add esp, 0x14
lea ecx, [esp + 0x48c]
call fcn.004052c0
push 0
lea eax, [esp + 0x490]
push eax
lea eax, [esp + 0x69e]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x405d49
mov eax, dword [esp + 8]
xor ecx, ecx
mov dword [eax], edi
mov edi, 0x20a
lea eax, [esp + 0x282]
push edi
push ecx
push eax
call fcn.0040fdd0
add esp, 0xc
lea eax, [esp + 0x78]
push edi
xor ecx, ecx
push ecx
push eax
mov edi, eax
call fcn.0040fdd0
add esp, 0xc
push str.updater.ini
lea eax, [esp + 0x490]
push eax
push edi
call fcn.0040b490
add esp, 0xc
test eax, eax
je 0x406179
push str.updater.ini
push esi
lea eax, [esp + 0x28a]
push eax
call fcn.0040b490
add esp, 0xc
test eax, eax
je 0x406179
push 0
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x28a]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x406179
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40714f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x28a]
push eax
push str.Could_not_copy_updater.ini_from:__ls_to__ls.____d_
push 0x433580
call fcn.0040aea0
add esp, 0x14
cmp dword [esp + 4], 2
ja 0x4062d4
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406f7a
push str.Not_enough_command_line_parameters_specified._Updating_update.status.
push 0x433580
call fcn.0040aea0
add esp, 8
push 0x19
mov eax, dword [esp + 0x10]
push dword [eax]
call fcn.0040bdc0
add esp, 8
xor esi, esi
test eax, eax
jne 0x406ca0
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x406fbd
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_write_update.status_service_update_failure.____d_
jmp 0x406564
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4055ce
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4055ce
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405775
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405775
cmp eax, ecx
jle 0x405e3e
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405e3e
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405e3e
lea esi, [esp + 0xcb4]
push 0x20a
push 0
push esi
call fcn.0040fdd0
add esp, 0xc
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
push esi
call fcn.00404940
add esp, 4
test eax, eax
je 0x406477
mov eax, dword [esp + 8]
lea edx, [esp + 0xcb4]
mov ecx, dword [eax]
mov eax, dword [esp + 0xc]
push dword [eax]
call fcn.00404a80
add esp, 4
mov edx, dword [0x432a44]
mov esi, dword fs:[0x2c]
mov ecx, dword [0x43378c]
test al, al
mov edx, dword [esi + edx*4]
mov edx, dword [edx + 4]
je 0x4064fc
cmp ecx, edx
jg 0x407043
push str.Starting_update_process_as_the_service_in_session_0.
push 0x433580
call fcn.0040adf0
add esp, 8
xor eax, eax
xorps xmm0, xmm0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x30], 0x44
movaps xmmword [esp + 0x20], xmm0
mov dword [esp + 0x38], str.winsta0Default
push eax
push eax
push dword [esp + 0x10]
mov esi, dword [esp + 0x10]
push esi
push ecx
call fcn.00401f40
add esp, 0x14
cmp esi, 4
jne 0x4065b9
push 0x42d032
push dword [ebx + 0x18]
call fcn.004166a7
add esp, 8
test eax, eax
jne 0x4065bf
jmp 0x4065f1
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405812
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405812
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405893
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405893
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407000
push str.Could_not_get_the_installation_directory
push 0x433580
call fcn.0040aea0
add esp, 8
push 0x21
mov eax, dword [esp + 0x10]
push dword [eax]
call fcn.0040bdc0
add esp, 8
xor esi, esi
test eax, eax
jne 0x406ca0
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407218
push str.Could_not_write_update.status_for_GetInstallationDir_failure.
push 0x433580
call fcn.0040aea0
add esp, 8
jmp 0x406ca0
cmp ecx, edx
jg 0x407086
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 0x433580
call fcn.0040aea0
add esp, 0xc
push 0x1a
mov eax, dword [esp + 0x10]
push dword [eax]
call fcn.0040bdc0
add esp, 8
xor esi, esi
test eax, eax
jne 0x406ca0
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40725b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_write_pending_state_to_update.status.____d_
push 0x433580
call fcn.0040aea0
add esp, 0xc
jmp 0x406ca0
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x40585b
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x40585b
cmp dword [ebp + 8], 7
jl 0x4065f1
push str._replace
push dword [ebx + 0x18]
call fcn.00410093
add esp, 8
test eax, eax
jne 0x4065f1
mov esi, dword [ebx + 0x18]
movzx eax, word [esi]
test ax, ax
je 0x4065f1
add esi, 2
movzx eax, ax
push eax
call fcn.004163f7
add esp, 4
test eax, eax
jne 0x4065d6
mov dword [esp + 0x38], 0x42d088
or byte [esp + 0x5c], 1
mov word [esp + 0x60], 0
push str.MOZ_USING_SERVICE1
call fcn.004147f7
add esp, 4
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4070c9
push dword [esp + 0x1c]
push str.Starting_service_with_cmdline:__ls
push 0x433580
call fcn.0040adf0
add esp, 0xc
lea eax, [esp + 0x20]
lea ecx, [esp + 0x30]
xor edx, edx
push eax
push ecx
push edx
push edx
push 0x4000000
push edx
push edx
push edx
push dword [esp + 0x3c]
mov eax, dword [esp + 0x2c]
push dword [eax]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
mov dword [esp + 0x14], eax
je 0x4066e9
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407192
push str.Process_was_started..._waiting_on_result.
push 0x433580
call fcn.0040adf0
add esp, 8
push 0xdbba0
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x40673c
push 1
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0x32
mov dword [esp + 4], 0
jmp 0x4067d2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov esi, eax
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40729e
push esi
push dword [esp + 0x20]
mov eax, dword [esp + 0x10]
push dword [eax]
push str.Could_not_create_process_as_current_user__updaterPath:__ls__cmdLine:__ls.____d_
push 0x433580
call fcn.0040aea0
add esp, 0x14
mov dword [esp + 4], 0
jmp 0x406b62
lea eax, [esp + 0xeec]
push eax
push dword [esp + 0x24]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov esi, eax
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407324
test esi, esi
je 0x4067a9
push dword [esp + 0xeec]
push str.Process_finished_with_return_code__d.
push 0x433580
call fcn.0040adf0
add esp, 0xc
xor eax, eax
cmp dword [esp + 0xeec], 0
mov dword [esp + 0x10], 0
sete al
mov dword [esp + 4], eax
jmp 0x4067ca
push str.Process_finished_but_could_not_obtain_return_code.
push 0x433580
call fcn.0040aea0
add esp, 8
xor eax, eax
mov dword [esp + 4], 0
inc eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], 0x1e
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esp + 0x20]
call esi
push dword [esp + 0x24]
call esi
mov eax, dword [esp + 0xc]
lea esi, [esp + 0xeec]
mov edi, dword [eax]
push 0x20a
push 0
push esi
call fcn.0040fdd0
add esp, 0xc
push esi
push str..status
push edi
call fcn.0040b660
add esp, 0xc
test eax, eax
je 0x40688c
xor eax, eax
push eax
push eax
push 3
push eax
push 7
push 0x80000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [esp + 8], eax
je 0x4068c4
xorps xmm0, xmm0
lea eax, [esp + 0xec0]
lea ecx, [esp + 0x74]
movaps xmmword [eax + 0x10], xmm0
movaps xmmword [eax], xmm0
push 0
push ecx
push 0x20
push eax
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x406975
mov eax, 0x6c707061
mov ecx, 0x676e6979
xor edx, edx
xor eax, dword [esp + 0xec0]
xor ecx, dword [esp + 0xec4]
or ecx, eax
sete dl
xor esi, esi
mov edi, edx
inc esi
jmp 0x4069ac
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407367
push str.Could_not_get_path_for_the_secure_update_status_file
push 0x433580
call fcn.0040aea0
add esp, 8
jmp 0x406b62
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4073ed
push str.Could_not_open_update.status_file
jmp 0x40699b
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405ab3
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405ab3
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4059e3
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4059e3
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407430
push str.Could_not_read_from_update.status_file
push 0x433580
call fcn.0040aea0
add esp, 8
xor edi, edi
xor esi, esi
mov eax, dword [esp + 8]
inc eax
cmp eax, 2
jb 0x4069c0
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x406b62
test esi, esi
je 0x406b62
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4073aa
cmp dword [esp + 4], 0
je 0x406b22
push str.update.status_is_still_applying_even_though_update_was_successful.
push 0x433580
call fcn.0040adf0
add esp, 8
push 0x1d
mov eax, dword [esp + 0x10]
push dword [eax]
call fcn.0040bdc0
add esp, 8
test eax, eax
mov dword [esp + 4], 0
jne 0x406b62
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x407473
push str.Could_not_write_update.status_still_applying_on_success_error.
jmp 0x4068b2
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405948
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405948
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405b01
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405b01
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4059a9
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4059a9
push str.update.status_is_still_applying_and_update_was_not_successful.
push 0x433580
call fcn.0040aea0
add esp, 8
cmp dword [esp + 0x10], 0
mov eax, 0x33
cmove eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x10]
push dword [eax]
call fcn.0040bdc0
add esp, 8
test eax, eax
mov dword [esp + 4], 0
je 0x406cb1
push str.MOZ_USING_SERVICE
call fcn.004147f7
add esp, 4
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c], 0
test eax, eax
je 0x406b88
push eax
call fcn.0040d78d
add esp, 4
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40710c
cmp dword [esp + 4], 0
je 0x406c0f
push str.updater.exe_was_launched_and_run_successfully_
push 0x433580
call fcn.0040adf0
add esp, 8
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4071d5
mov eax, dword [0x433580]
test eax, eax
je 0x406bf5
push eax
call fcn.004154c7
add esp, 4
cmp dword [ebp + 8], 8
je 0x406c79
cmp dword [ebp + 8], 7
jne 0x406c8d
push 0x42d032
push dword [ebx + 0x18]
jmp 0x406c81
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Error_running_update_process._Updating_update.status____d_
push 0x433580
call fcn.0040aea0
add esp, 0xc
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4072e1
mov eax, dword [0x433580]
test eax, eax
je 0x406c5b
push eax
call fcn.004154c7
add esp, 4
xor esi, esi
cmp dword [esp + 0x14], 0
jne 0x406ca0
push 0x18
mov eax, dword [esp + 0x10]
push dword [eax]
call fcn.0040bdc0
add esp, 8
jmp 0x4061c9
push 0x42d032
push dword [ebx + 0x1c]
call fcn.004166a7
add esp, 8
test eax, eax
je 0x406c9d
lea eax, [esp + 0xcb4]
push eax
call fcn.0040b930
add esp, 4
xor esi, esi
inc esi
lea ecx, [esp + 0x48c]
call fcn.004052c0
jmp 0x405dcc
mov ecx, dword [0x432a44]
mov edx, dword fs:[0x2c]
mov eax, dword [0x43378c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4074b6
push str.Could_not_write_update.status_still_applying_on_failure_error.
jmp 0x4068b2
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405ded
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405ded
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405d6a
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405d6a
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405a79
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405a79
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405c26
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405c26
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405dba
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405dba
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405cc0
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405cc0
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405b9c
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405b9c
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405cef
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405cef
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x405d30
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x405d30
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x40606d
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x40606d
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4061a5
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4061a5
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4061f2
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4061f2
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406498
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406498
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x40634b
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x40634b
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406504
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406504
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406633
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406633
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406ba9
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406ba9
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406153
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406153
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406698
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406698
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406be3
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406be3
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4064e5
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4064e5
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406558
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406558
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406712
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406712
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406c49
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406c49
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406771
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406771
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4068ad
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4068ad
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4069f1
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4069f1
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x4068e5
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x4068e5
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406996
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406996
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406a4f
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406a4f
push 0x43378c
call fcn.0040d7c7
add esp, 4
cmp dword [0x43378c], 0xffffffff
jne 0x406cd2
mov dword [0x433580], 0
push 0x401f00
call fcn.0040da3c
add esp, 4
push 0x43378c
call fcn.0040d819
add esp, 4
jmp 0x406cd2