Function at 0x404e20
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x260
mov eax, dword [0x43000c]
mov ebx, edx
mov edi, ecx
lea esi, [ebp - 0x21a]
xor eax, ebp
mov dword [ebp - 0x10], eax
push 0x20a
push 0
push esi
call fcn.0040ebd0
add esp, 0xc
push edi
call fcn.004157a2
add esp, 4
cmp eax, 0x105
jae 0x40502d
push 0x104
push edi
push esi
call fcn.00415c1b
add esp, 0xc
push esi
call dword [sym.imp.SHLWAPI.dll_PathStripToRootW]
push esi
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 3
jne 0x40502d
push 0
push 0
push 3
push 0
push 1
push 0x80000000
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
mov dword [ebp - 0x264], eax
je 0x405102
push 0x20a
push 0
push esi
call fcn.0040ebd0
add esp, 0xc
push 0x104
push ebx
push esi
call fcn.00415c1b
add esp, 0xc
push esi
call fcn.004157a2
add esp, 4
add eax, 0xb
cmp eax, 0x103
ja 0x4050c4
push str.updater.exe
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
je 0x4050c4
lea eax, [ebp - 0x260]
push eax
push esi
push edi
call fcn.00402460
add esp, 0xc
test eax, eax
je 0x405199
mov eax, dword [ebp - 0x260]
mov dword [ebp - 0x268], eax
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405410
cmp dword [ebp - 0x268], 0
je 0x40545c
push str.updater.exe_was_compared_successfully_to_the_installation_directory_updater.exe.
push 0x431588
call fcn.0040b850
add esp, 8
push 2
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
test eax, eax
je 0x4051d3
lea esi, [ebp - 0x25a]
push 0x40
push esi
push 0x3ee
mov dword [ebp - 0x268], eax
push eax
call dword [sym.imp.USER32.dll_LoadStringA]
mov cl, 1
test eax, eax
jne 0x404fc7
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4055f9
push str.The_updater.exe_application_does_not_contain_the_Mozilla_updater_identity.
push 0x431588
call fcn.0040b8d0
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x26c], ecx
push str.moz_updater.exe_4cdccec4_5ee0_4a06_9817_4cd899a9db49
push esi
call fcn.00415440
add esp, 8
test eax, eax
je 0x405215
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov esi, dword [ebp - 0x264]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40552d
push str.The_updater.exe_identity_string_is_not_valid.
push 0x431588
call fcn.0040b8d0
add esp, 8
push dword [ebp - 0x268]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
jmp 0x405279
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4052bc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push edi
push str.Filesystem_in_path__ls_is_not_supported___d_
push 0x431588
call fcn.0040b8d0
add esp, 0x10
push dword [ebp + 0xc]
push 0x1f
push dword [ebp + 8]
call fcn.0040c240
add esp, 0xc
test eax, eax
je 0x405083
xor ebx, ebx
jmp 0x4054d2
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405300
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_write_update.status_service_update_failure.____d_
push 0x431588
call fcn.0040b8d0
add esp, 0xc
xor ebx, ebx
jmp 0x4054d2
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405344
push str.Install_directory_updater_could_not_be_determined.
push 0x431588
call fcn.0040b8d0
add esp, 8
mov esi, dword [ebp - 0x264]
jmp 0x4054c1
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405388
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_set_no_write_sharing_access_on_file.____d_
push 0x431588
call fcn.0040b8d0
add esp, 0xc
push dword [ebp + 0xc]
push 0x20
push dword [ebp + 8]
call fcn.0040c240
add esp, 0xc
mov esi, dword [ebp - 0x264]
test eax, eax
jne 0x4054c1
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4053cc
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.Could_not_write_update.status_service_update_failure.____d_
push 0x431588
call fcn.0040b8d0
add esp, 0xc
jmp 0x4054c1
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4054e9
push esi
push edi
push str.Error_checking_if_the_updaters_are_the_same._nPath_1:__ls_nPath_2:__ls
push 0x431588
call fcn.0040b8d0
add esp, 0x10
jmp 0x4050f7
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405571
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.updater.exe_module_could_not_be_loaded.___d_
push 0x431588
call fcn.0040b8d0
add esp, 0xc
mov esi, dword [ebp - 0x264]
jmp 0x405279
push dword [ebp - 0x268]
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
cmp byte [ebp - 0x26c], 0
mov esi, dword [ebp - 0x264]
je 0x405279
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x405681
push str.The_updater.exe_application_contains_the_Mozilla_updater_identity.
push 0x431588
call fcn.0040b850
add esp, 8
push 1
push edi
push ebx
call fcn.0040add0
add esp, 0xc
test eax, eax
setne bl
jmp 0x4054c3
push dword [ebp + 0xc]
push 0x1c
push dword [ebp + 8]
call fcn.0040c240
add esp, 0xc
test eax, eax
jne 0x4054c1
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x4055b5
push str.Could_not_write_update.status_no_updater_identity.
jmp 0x4054b4
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x40504e
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
jmp 0x40504e
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x4050a4
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
jmp 0x4050a4
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x4050e5
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
jmp 0x4050e5
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x405123
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
jmp 0x405123
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x40517b
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
jmp 0x40517b
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x404f3f
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
cmp dword [ebp - 0x268], 0
jne 0x404f4c
push esi
push edi
push str.The_updaters_do_not_match__updater_will_not_run._nPath_1:__ls_nPath_2:__ls
push 0x431588
call fcn.0040b8d0
add esp, 0x10
push dword [ebp + 0xc]
push 0x1b
push dword [ebp + 8]
call fcn.0040c240
add esp, 0xc
test eax, eax
jne 0x4050f7
mov eax, dword [0x43199c]
mov ecx, dword [0x430a44]
mov edx, dword fs:[0x2c]
mov esi, dword [ebp - 0x264]
mov ecx, dword [edx + ecx*4]
cmp eax, dword [ecx + 4]
jg 0x40563d
push str.Could_not_write_update.status_updater_compare_failure.
push 0x431588
call fcn.0040b8d0
add esp, 8
xor ebx, ebx
lea eax, [esi + 1]
cmp eax, 2
jb 0x4054d2
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0040ce4a
mov eax, ebx
add esp, 0x260
pop esi
pop edi
pop ebx
pop ebp
ret
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x4051ba
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
jmp 0x4051ba
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x40500a
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
jmp 0x40500a
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x4051f4
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
jmp 0x4051f4
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x4052b2
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
jmp 0x4052b2
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x404fb3
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
jmp 0x404fb3
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x4054af
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
jmp 0x4054af
push 0x43199c
call fcn.0040c696
add esp, 4
mov eax, dword [0x43199c]
cmp eax, 0xffffffff
jne 0x405251
mov dword [0x431588], 0
push 0x4021a0
call fcn.0040c8fc
add esp, 4
push 0x43199c
call fcn.0040c6e8
add esp, 4
jmp 0x405251