Function at 0x4087d7
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x508
and dword [ebp - 0x28], 0
and dword [ebp - 8], 0
push 0x200
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.MSVCR110.dll__getcwd]
pop ecx
pop ecx
test eax, eax
jne 0x408813
push str._buildcld:_Cant_get_path_of_current_working_directory_n
call fcn.0040f051
pop ecx
or eax, 0xffffffff
jmp 0x409219
push dword [ebp + 8]
call dword [sym.imp.MSVCR110.dll__chdir]
pop ecx
cmp eax, 0xffffffff
jne 0x408839
push dword [ebp + 8]
push str._buildcld:_Cant_access_directory__s_n
call fcn.0040f051
pop ecx
pop ecx
or eax, 0xffffffff
jmp 0x409219
push dword [ebp + 0xc]
push str._s.info
push 0x20
lea eax, [ebp - 0x104]
push eax
call sub.libav.dll_Ordinal_44276
add esp, 0x10
push 0x8000
lea eax, [ebp - 0x104]
push eax
call dword [sym.imp.MSVCR110.dll__open]
pop ecx
pop ecx
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x408898
lea eax, [ebp - 0x104]
push eax
push str._buildcld:_Cant_open__s_n
call fcn.0040f051
pop ecx
pop ecx
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.MSVCR110.dll__chdir]
pop ecx
or eax, 0xffffffff
jmp 0x409219
push 0x200
lea eax, [ebp - 0x508]
push eax
push dword [ebp - 4]
call dword [sym.imp.MSVCR110.dll__read]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4088e8
lea eax, [ebp - 0x104]
push eax
push str._buildcld:_Cant_read__s_n
call fcn.0040f051
pop ecx
pop ecx
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.MSVCR110.dll__chdir]
pop ecx
push dword [ebp - 4]
call dword [sym.imp.MSVCR110.dll__close]
pop ecx
or eax, 0xffffffff
jmp 0x409219
xor eax, eax
inc eax
shl eax, 9
mov byte [ebp + eax - 0x508], 0
push dword [ebp - 4]
call dword [sym.imp.MSVCR110.dll__close]
pop ecx
push 0xa
lea eax, [ebp - 0x508]
push eax
call dword [sym.imp.MSVCR110.dll_strchr]
pop ecx
pop ecx
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 0
jne 0x408949
lea eax, [ebp - 0x104]
push eax
push str._buildcld:_Bad_format_of__s_n
call fcn.0040f051
pop ecx
pop ecx
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.MSVCR110.dll__chdir]
pop ecx
or eax, 0xffffffff
jmp 0x409219
lea eax, [ebp - 0x308]
sub eax, dword [ebp - 0x8c]
push eax
push 0x20
push dword [ebp - 0x8c]
call sub.MSVCR110.dll_memset
add esp, 0xc
push 0x1a4
push 0x8501
push dword [ebp + 0x10]
call dword [sym.imp.MSVCR110.dll__open]
add esp, 0xc
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x4089aa
push dword [ebp + 0x10]
push str._buildcld:_Cant_open__s_for_writing_n
call fcn.0040f051
pop ecx
pop ecx
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.MSVCR110.dll__chdir]
pop ecx
or eax, 0xffffffff
jmp 0x409219
push 0x200
lea eax, [ebp - 0x508]
push eax
push dword [ebp - 4]
call dword [sym.imp.MSVCR110.dll__write]
add esp, 0xc
cmp eax, 0x200
je 0x408a02
push dword [ebp + 0x10]
push str._buildcld:_Cant_write_to__s_n
call fcn.0040f051
pop ecx
pop ecx
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.MSVCR110.dll__chdir]
pop ecx
push dword [ebp - 4]
call dword [sym.imp.MSVCR110.dll__close]
pop ecx
push dword [ebp + 0x10]
call dword [sym.imp.MSVCR110.dll__unlink]
pop ecx
or eax, 0xffffffff
jmp 0x409219
push 0x41428c
call sub.libav.dll_Ordinal_44272
pop ecx
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jne 0x408a4f
push dword [ebp + 8]
push str._buildcld:_Cant_open_directory__s_n
call fcn.0040f051
pop ecx
pop ecx
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.MSVCR110.dll__chdir]
pop ecx
push dword [ebp - 4]
call dword [sym.imp.MSVCR110.dll__close]
pop ecx
push dword [ebp + 0x10]
call dword [sym.imp.MSVCR110.dll__unlink]
pop ecx
or eax, 0xffffffff
jmp 0x409219
cmp dword [ebp + 0x14], 0
je 0x408aaf
push dword [ebp - 4]
call dword [sym.imp.MSVCR110.dll__close]
pop ecx
push str.ab9f
push dword [ebp + 0x10]
call sub.libav.dll_Ordinal_44290
pop ecx
pop ecx
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x408aaf
push dword [ebp + 0x10]
push str._buildcld:_gzopen___failed_for__s_n
call fcn.0040f051
pop ecx
pop ecx
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.MSVCR110.dll__chdir]
pop ecx
push dword [ebp - 0x30]
call sub.libav.dll_Ordinal_44274
pop ecx
push dword [ebp + 0x10]
call dword [sym.imp.MSVCR110.dll__unlink]
pop ecx
or eax, 0xffffffff
jmp 0x409219
push 4
push str.COPYING
call sub.libav.dll_Ordinal_44340
pop ecx
pop ecx
test eax, eax
je 0x408ad8
push str._buildcld:_COPYING_file_not_found_n
call fcn.0040f051
pop ecx
mov dword [ebp - 0x28], 1
jmp 0x408be9
push str.COPYING
push dword [ebp - 8]
push dword [ebp - 4]
call fcn.0040f70c
add esp, 0xc
cmp eax, 0xffffffff
jne 0x408be9
push dword [ebp + 0xc]
push str._buildcld:_Cant_add_COPYING_to_new__s.cld___please_check_if_there_is_enough_disk_space_available_n
call fcn.0040f051
pop ecx
pop ecx
mov dword [ebp - 0x78], str.main
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
mov al, byte [eax]
mov byte [ebp - 0x21], al
mov ecx, dword [ebp - 0x78]
cmp al, byte [ecx]
jne 0x408b4d
cmp byte [ebp - 0x21], 0
je 0x408b44
mov eax, dword [ebp - 0x60]
mov al, byte [eax + 1]
mov byte [ebp - 0x1c], al
mov ecx, dword [ebp - 0x78]
cmp al, byte [ecx + 1]
jne 0x408b4d
add dword [ebp - 0x60], 2
add dword [ebp - 0x78], 2
cmp byte [ebp - 0x1c], 0
jne 0x408b10
and dword [ebp - 0xb4], 0
jmp 0x408b58
sbb eax, eax
or eax, 1
mov dword [ebp - 0xb4], eax
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0
je 0x408bd7
mov dword [ebp - 0x68], str.safebrowsing
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
mov byte [ebp - 0x1e], al
mov ecx, dword [ebp - 0x68]
cmp al, byte [ecx]
jne 0x408bb7
cmp byte [ebp - 0x1e], 0
je 0x408bae
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 1]
mov byte [ebp - 0x20], al
mov ecx, dword [ebp - 0x68]
cmp al, byte [ecx + 1]
jne 0x408bb7
add dword [ebp - 0x40], 2
add dword [ebp - 0x68], 2
cmp byte [ebp - 0x20], 0
jne 0x408b7a
and dword [ebp - 0x90], 0
jmp 0x408bc2
sbb eax, eax
or eax, 1
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xbc], eax
cmp dword [ebp - 0xbc], 0
jne 0x408be2
push str.Updates_to_main.cvd_or_safebrowsing.cvd_may_require_200MB_of_disk_space_or_more_n
call fcn.0040f051
pop ecx
mov dword [ebp - 0x28], 1
cmp dword [ebp - 0x28], 0
jne 0x408d32
push 4
lea eax, [ebp - 0x104]
push eax
call sub.libav.dll_Ordinal_44340
pop ecx
pop ecx
test eax, eax
jne 0x408d32
lea eax, [ebp - 0x104]
push eax
push dword [ebp - 8]
push dword [ebp - 4]
call fcn.0040f70c
add esp, 0xc
cmp eax, 0xffffffff
jne 0x408d32
push dword [ebp + 0xc]
lea eax, [ebp - 0x104]
push eax
push str._buildcld:_Cant_add__s_to_new__s.cld___please_check_if_there_is_enough_disk_space_available_n
call fcn.0040f051
add esp, 0xc
mov dword [ebp - 0x88], str.main
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov al, byte [eax]
mov byte [ebp - 0xf], al
mov ecx, dword [ebp - 0x88]
cmp al, byte [ecx]
jne 0x408c96
cmp byte [ebp - 0xf], 0
je 0x408c8d
mov eax, dword [ebp - 0x48]
mov al, byte [eax + 1]
mov byte [ebp - 0x1f], al
mov ecx, dword [ebp - 0x88]
cmp al, byte [ecx + 1]
jne 0x408c96
add dword [ebp - 0x48], 2
add dword [ebp - 0x88], 2
cmp byte [ebp - 0x1f], 0
jne 0x408c50
and dword [ebp - 0x9c], 0
jmp 0x408ca1
sbb eax, eax
or eax, 1
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x9c]
mov dword [ebp - 0xdc], eax
cmp dword [ebp - 0xdc], 0
je 0x408d20
mov dword [ebp - 0x70], str.safebrowsing
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x50]
mov al, byte [eax]
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0x70]
cmp al, byte [ecx]
jne 0x408d00
cmp byte [ebp - 0x11], 0
je 0x408cf7
mov eax, dword [ebp - 0x50]
mov al, byte [eax + 1]
mov byte [ebp - 0x1b], al
mov ecx, dword [ebp - 0x70]
cmp al, byte [ecx + 1]
jne 0x408d00
add dword [ebp - 0x50], 2
add dword [ebp - 0x70], 2
cmp byte [ebp - 0x1b], 0
jne 0x408cc3
and dword [ebp - 0xac], 0
jmp 0x408d0b
sbb eax, eax
or eax, 1
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xcc], eax
cmp dword [ebp - 0xcc], 0
jne 0x408d2b
push str.Updates_to_main.cvd_or_safebrowsing.cvd_may_require_200MB_of_disk_space_or_more_n
call fcn.0040f051
pop ecx
mov dword [ebp - 0x28], 1
cmp dword [ebp - 0x28], 0
jne 0x408d78
push 4
push str.daily.cfg
call sub.libav.dll_Ordinal_44340
pop ecx
pop ecx
test eax, eax
jne 0x408d78
push str.daily.cfg
push dword [ebp - 8]
push dword [ebp - 4]
call fcn.0040f70c
add esp, 0xc
cmp eax, 0xffffffff
jne 0x408d78
push dword [ebp + 0xc]
push str._buildcld:_Cant_add_daily.cfg_to_new__s.cld___please_check_if_there_is_enough_disk_space_available_n
call fcn.0040f051
pop ecx
pop ecx
mov dword [ebp - 0x28], 1
cmp dword [ebp - 0x28], 0
je 0x408dc2
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.MSVCR110.dll__chdir]
pop ecx
cmp dword [ebp - 8], 0
je 0x408d9d
push dword [ebp - 8]
call sub.libav.dll_Ordinal_44293
pop ecx
jmp 0x408da7
push dword [ebp - 4]
call dword [sym.imp.MSVCR110.dll__close]
pop ecx
push dword [ebp - 0x30]
call sub.libav.dll_Ordinal_44274
pop ecx
push dword [ebp + 0x10]
call dword [sym.imp.MSVCR110.dll__unlink]
pop ecx
or eax, 0xffffffff
jmp 0x409219
push dword [ebp - 0x30]
call sub.libav.dll_Ordinal_44273
pop ecx
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x409183
mov eax, dword [ebp - 0xc]
movzx eax, word [eax]
test eax, eax
je 0x40917e
mov dword [ebp - 0x80], 0x41428c
mov eax, dword [ebp - 0xc]
add eax, 3
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
mov al, byte [eax]
mov byte [ebp - 0x13], al
mov ecx, dword [ebp - 0x80]
cmp al, byte [ecx]
jne 0x408e33
cmp byte [ebp - 0x13], 0
je 0x408e2a
mov eax, dword [ebp - 0x58]
mov al, byte [eax + 1]
mov byte [ebp - 0x29], al
mov ecx, dword [ebp - 0x80]
cmp al, byte [ecx + 1]
jne 0x408e33
add dword [ebp - 0x58], 2
add dword [ebp - 0x80], 2
cmp byte [ebp - 0x29], 0
jne 0x408df6
and dword [ebp - 0xa4], 0
jmp 0x408e3e
sbb eax, eax
or eax, 1
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
mov dword [ebp - 0xe4], eax
cmp dword [ebp - 0xe4], 0
je 0x409015
mov dword [ebp - 0x38], 0x4145b8
mov eax, dword [ebp - 0xc]
add eax, 3
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov al, byte [eax]
mov byte [ebp - 0x15], al
mov ecx, dword [ebp - 0x38]
cmp al, byte [ecx]
jne 0x408ea4
cmp byte [ebp - 0x15], 0
je 0x408e9b
mov eax, dword [ebp - 0x34]
mov al, byte [eax + 1]
mov byte [ebp - 0x1d], al
mov ecx, dword [ebp - 0x38]
cmp al, byte [ecx + 1]
jne 0x408ea4
add dword [ebp - 0x34], 2
add dword [ebp - 0x38], 2
cmp byte [ebp - 0x1d], 0
jne 0x408e67
and dword [ebp - 0x94], 0
jmp 0x408eaf
sbb eax, eax
or eax, 1
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xd4], 0
je 0x409015
mov dword [ebp - 0x44], str.COPYING
mov eax, dword [ebp - 0xc]
add eax, 3
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
mov al, byte [eax]
mov byte [ebp - 0x17], al
mov ecx, dword [ebp - 0x44]
cmp al, byte [ecx]
jne 0x408f15
cmp byte [ebp - 0x17], 0
je 0x408f0c
mov eax, dword [ebp - 0x3c]
mov al, byte [eax + 1]
mov byte [ebp - 0xd], al
mov ecx, dword [ebp - 0x44]
cmp al, byte [ecx + 1]
jne 0x408f15
add dword [ebp - 0x3c], 2
add dword [ebp - 0x44], 2
cmp byte [ebp - 0xd], 0
jne 0x408ed8
and dword [ebp - 0x98], 0
jmp 0x408f20
sbb eax, eax
or eax, 1
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0xe0], eax
cmp dword [ebp - 0xe0], 0
je 0x409015
mov dword [ebp - 0x54], str.daily.cfg
mov eax, dword [ebp - 0xc]
add eax, 3
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x4c]
mov al, byte [eax]
mov byte [ebp - 0x19], al
mov ecx, dword [ebp - 0x54]
cmp al, byte [ecx]
jne 0x408f86
cmp byte [ebp - 0x19], 0
je 0x408f7d
mov eax, dword [ebp - 0x4c]
mov al, byte [eax + 1]
mov byte [ebp - 0xe], al
mov ecx, dword [ebp - 0x54]
cmp al, byte [ecx + 1]
jne 0x408f86
add dword [ebp - 0x4c], 2
add dword [ebp - 0x54], 2
cmp byte [ebp - 0xe], 0
jne 0x408f49
and dword [ebp - 0xa0], 0
jmp 0x408f91
sbb eax, eax
or eax, 1
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa0]
mov dword [ebp - 0xc0], eax
cmp dword [ebp - 0xc0], 0
je 0x409015
lea eax, [ebp - 0x104]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0xc]
add eax, 3
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
mov al, byte [eax]
mov byte [ebp - 0x10], al
mov ecx, dword [ebp - 0x64]
cmp al, byte [ecx]
jne 0x408ff5
cmp byte [ebp - 0x10], 0
je 0x408fec
mov eax, dword [ebp - 0x5c]
mov al, byte [eax + 1]
mov byte [ebp - 0x12], al
mov ecx, dword [ebp - 0x64]
cmp al, byte [ecx + 1]
jne 0x408ff5
add dword [ebp - 0x5c], 2
add dword [ebp - 0x64], 2
cmp byte [ebp - 0x12], 0
jne 0x408fb8
and dword [ebp - 0xa8], 0
jmp 0x409000
sbb eax, eax
or eax, 1
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0
jne 0x40901a
jmp 0x408dc2
mov eax, dword [ebp - 0xc]
add eax, 3
push eax
push dword [ebp - 8]
push dword [ebp - 4]
call fcn.0040f70c
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40917e
push dword [ebp + 0xc]
mov eax, dword [ebp - 0xc]
add eax, 3
push eax
push str._buildcld:_Cant_add__s_to_new__s.cld___please_check_if_there_is_enough_disk_space_available_n
call fcn.0040f051
add esp, 0xc
mov dword [ebp - 0x74], str.main
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x6c]
mov al, byte [eax]
mov byte [ebp - 0x14], al
mov ecx, dword [ebp - 0x74]
cmp al, byte [ecx]
jne 0x409099
cmp byte [ebp - 0x14], 0
je 0x409090
mov eax, dword [ebp - 0x6c]
mov al, byte [eax + 1]
mov byte [ebp - 0x16], al
mov ecx, dword [ebp - 0x74]
cmp al, byte [ecx + 1]
jne 0x409099
add dword [ebp - 0x6c], 2
add dword [ebp - 0x74], 2
cmp byte [ebp - 0x16], 0
jne 0x40905c
and dword [ebp - 0xb0], 0
jmp 0x4090a4
sbb eax, eax
or eax, 1
mov dword [ebp - 0xb0], eax
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0xd0], eax
cmp dword [ebp - 0xd0], 0
je 0x40912f
mov dword [ebp - 0x84], str.safebrowsing
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x7c]
mov al, byte [eax]
mov byte [ebp - 0x18], al
mov ecx, dword [ebp - 0x84]
cmp al, byte [ecx]
jne 0x40910f
cmp byte [ebp - 0x18], 0
je 0x409106
mov eax, dword [ebp - 0x7c]
mov al, byte [eax + 1]
mov byte [ebp - 0x1a], al
mov ecx, dword [ebp - 0x84]
cmp al, byte [ecx + 1]
jne 0x40910f
add dword [ebp - 0x7c], 2
add dword [ebp - 0x84], 2
cmp byte [ebp - 0x1a], 0
jne 0x4090c9
and dword [ebp - 0xb8], 0
jmp 0x40911a
sbb eax, eax
or eax, 1
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xd8], 0
jne 0x40913a
push str.Updates_to_main.cvd_or_safebrowsing.cvd_may_require_200MB_of_disk_space_or_more_n
call fcn.0040f051
pop ecx
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.MSVCR110.dll__chdir]
pop ecx
cmp dword [ebp - 8], 0
je 0x409159
push dword [ebp - 8]
call sub.libav.dll_Ordinal_44293
pop ecx
jmp 0x409163
push dword [ebp - 4]
call dword [sym.imp.MSVCR110.dll__close]
pop ecx
push dword [ebp - 0x30]
call sub.libav.dll_Ordinal_44274
pop ecx
push dword [ebp + 0x10]
call dword [sym.imp.MSVCR110.dll__unlink]
pop ecx
or eax, 0xffffffff
jmp 0x409219
jmp 0x408dc2
push dword [ebp - 0x30]
call sub.libav.dll_Ordinal_44274
pop ecx
cmp dword [ebp - 8], 0
je 0x4091bf
push dword [ebp - 8]
call sub.libav.dll_Ordinal_44293
pop ecx
test eax, eax
je 0x4091bd
push dword [ebp + 0x10]
push str._buildcld:_gzclose___failed_for__s_n
call fcn.0040f051
pop ecx
pop ecx
push dword [ebp + 0x10]
call dword [sym.imp.MSVCR110.dll__unlink]
pop ecx
or eax, 0xffffffff
jmp 0x409219
jmp 0x4091ec
push dword [ebp - 4]
call dword [sym.imp.MSVCR110.dll__close]
pop ecx
cmp eax, 0xffffffff
jne 0x4091ec
push dword [ebp + 0x10]
push str._buildcld:_close___failed_for__s_n
call fcn.0040f051
pop ecx
pop ecx
push dword [ebp + 0x10]
call dword [sym.imp.MSVCR110.dll__unlink]
pop ecx
or eax, 0xffffffff
jmp 0x409219
lea eax, [ebp - 0x304]
push eax
call dword [sym.imp.MSVCR110.dll__chdir]
pop ecx
cmp eax, 0xffffffff
jne 0x409217
lea eax, [ebp - 0x304]
push eax
push str._buildcld:_Cant_return_to_previous_directory__s_n
call fcn.0040f051
pop ecx
pop ecx
or eax, 0xffffffff
jmp 0x409219
xor eax, eax
leave
ret