Function at 0x4024d0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x43c
mov eax, dword [0x413080]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x43c], eax
xor eax, eax
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x438], eax
lea eax, [ebp - 0x224]
push 0x200
push eax
mov dword [ebp - 0x434], ebx
call dword [sym.imp.MSVCR110.dll__getcwd]
add esp, 8
test eax, eax
jne 0x40253b
push str._buildcld:_Cant_get_path_of_current_working_directory_n
call fcn.00409df0
add esp, 4
or eax, 0xffffffff
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a4d6
mov esp, ebp
pop ebp
ret
push edi
call dword [sym.imp.MSVCR110.dll__chdir]
add esp, 4
cmp eax, 0xffffffff
jne 0x40256b
push edi
push str._buildcld:_Cant_access_directory__s_n
call fcn.00409df0
add esp, 8
or eax, 0xffffffff
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a4d6
mov esp, ebp
pop ebp
ret
push esi
push ebx
push str._s.info
lea eax, [ebp - 0x24]
push 0x20
push eax
call sub.libav.dll_Ordinal_44276
mov ebx, dword [sym.imp.MSVCR110.dll__open]
lea eax, [ebp - 0x24]
push 0x8000
push eax
call ebx
mov esi, eax
add esp, 0x18
cmp esi, 0xffffffff
jne 0x4025a6
lea eax, [ebp - 0x24]
push eax
push str._buildcld:_Cant_open__s_n
jmp 0x402666
push 0x200
lea eax, [ebp - 0x428]
push eax
push esi
call dword [sym.imp.MSVCR110.dll__read]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4025fb
lea eax, [ebp - 0x24]
push eax
push str._buildcld:_Cant_read__s_n
call fcn.00409df0
lea eax, [ebp - 0x224]
push eax
mov eax, dword [sym.imp.MSVCR110.dll__chdir]
call eax
push esi
call dword [sym.imp.MSVCR110.dll__close]
add esp, 0x10
or eax, 0xffffffff
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a4d6
mov esp, ebp
pop ebp
ret
push esi
mov byte [ebp - 0x228], 0
call dword [sym.imp.MSVCR110.dll__close]
lea eax, [ebp - 0x428]
push 0xa
push eax
call dword [sym.imp.MSVCR110.dll_strchr]
mov ecx, eax
add esp, 0xc
test ecx, ecx
jne 0x40262c
lea eax, [ebp - 0x24]
push eax
push str._buildcld:_Bad_format_of__s_n
jmp 0x402666
lea eax, [ebp - 0x228]
sub eax, ecx
push eax
push 0x20
push ecx
call sub.MSVCR110.dll_memset
mov esi, dword [ebp - 0x43c]
push 0x1a4
push 0x8501
push esi
call ebx
mov ebx, eax
add esp, 0x18
mov dword [ebp - 0x430], ebx
cmp ebx, 0xffffffff
jne 0x402690
push esi
push str._buildcld:_Cant_open__s_for_writing_n
call fcn.00409df0
lea eax, [ebp - 0x224]
push eax
mov eax, dword [sym.imp.MSVCR110.dll__chdir]
call eax
add esp, 0xc
or eax, 0xffffffff
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a4d6
mov esp, ebp
pop ebp
ret
push 0x200
lea eax, [ebp - 0x428]
push eax
push ebx
call dword [sym.imp.MSVCR110.dll__write]
add esp, 0xc
cmp eax, 0x200
je 0x4026b5
push esi
push str._buildcld:_Cant_write_to__s_n
jmp 0x4026d2
push 0x40e1cc
call sub.libav.dll_Ordinal_44272
add esp, 4
mov dword [ebp - 0x42c], eax
test eax, eax
jne 0x40270b
push edi
push str._buildcld:_Cant_open_directory__s_n
call fcn.00409df0
lea eax, [ebp - 0x224]
push eax
mov eax, dword [sym.imp.MSVCR110.dll__chdir]
call eax
mov eax, dword [sym.imp.MSVCR110.dll__close]
push ebx
call eax
push esi
call dword [sym.imp.MSVCR110.dll__unlink]
add esp, 0x14
or eax, 0xffffffff
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a4d6
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
je 0x402775
mov eax, dword [sym.imp.MSVCR110.dll__close]
push ebx
call eax
push str.ab9f
push esi
call sub.libav.dll_Ordinal_44290
mov ebx, eax
add esp, 0xc
mov dword [ebp - 0x438], ebx
test ebx, ebx
jne 0x402777
push esi
push str._buildcld:_gzopen___failed_for__s_n
call fcn.00409df0
lea eax, [ebp - 0x224]
push eax
mov eax, dword [sym.imp.MSVCR110.dll__chdir]
call eax
push dword [ebp - 0x42c]
call sub.libav.dll_Ordinal_44274
push esi
call dword [sym.imp.MSVCR110.dll__unlink]
add esp, 0x14
or eax, 0xffffffff
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a4d6
mov esp, ebp
pop ebp
ret
xor ebx, ebx
push 4
push str.COPYING
call sub.libav.dll_Ordinal_44340
add esp, 8
test eax, eax
je 0x4027a2
push str._buildcld:_COPYING_file_not_found_n
call fcn.00409df0
mov edi, dword [ebp - 0x430]
add esp, 4
jmp 0x40293b
mov edi, dword [ebp - 0x430]
push str.COPYING
push ebx
push edi
call fcn.0040a110
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40284f
mov ebx, dword [ebp - 0x434]
push ebx
push str._buildcld:_Cant_add_COPYING_to_new__s.cld___please_check_if_there_is_enough_disk_space_available_n
call fcn.00409df0
add esp, 8
mov ecx, str.main
mov eax, ebx
jmp 0x4027e0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402800
test dl, dl
je 0x4027fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402800
add eax, 2
add ecx, 2
test dl, dl
jne 0x4027e0
xor eax, eax
jmp 0x402805
sbb eax, eax
or eax, 1
test eax, eax
je 0x40283d
mov eax, str.safebrowsing
mov edi, edi
mov cl, byte [ebx]
cmp cl, byte [eax]
jne 0x402830
test cl, cl
je 0x40282c
mov cl, byte [ebx + 1]
cmp cl, byte [eax + 1]
jne 0x402830
add ebx, 2
add eax, 2
test cl, cl
jne 0x402810
xor eax, eax
jmp 0x402835
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40293b
push str.Updates_to_main.cvd_or_safebrowsing.cvd_may_require_200MB_of_disk_space_or_more_n
call fcn.00409df0
add esp, 4
jmp 0x40293b
lea eax, [ebp - 0x24]
push 4
push eax
call sub.libav.dll_Ordinal_44340
add esp, 8
test eax, eax
jne 0x402901
lea eax, [ebp - 0x24]
push eax
push ebx
push edi
call fcn.0040a110
add esp, 0xc
cmp eax, 0xffffffff
jne 0x402901
mov ebx, dword [ebp - 0x434]
push ebx
lea eax, [ebp - 0x24]
push eax
push str._buildcld:_Cant_add__s_to_new__s.cld___please_check_if_there_is_enough_disk_space_available_n
call fcn.00409df0
add esp, 0xc
mov ecx, str.main
mov eax, ebx
jmp 0x4028a0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4028c0
test dl, dl
je 0x4028bc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4028c0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4028a0
xor eax, eax
jmp 0x4028c5
sbb eax, eax
or eax, 1
test eax, eax
je 0x40283d
mov eax, str.safebrowsing
mov cl, byte [ebx]
cmp cl, byte [eax]
jne 0x402830
test cl, cl
je 0x40282c
mov cl, byte [ebx + 1]
cmp cl, byte [eax + 1]
jne 0x402830
add ebx, 2
add eax, 2
test cl, cl
jne 0x4028d2
xor eax, eax
jmp 0x402835
push 4
push str.daily.cfg
call sub.libav.dll_Ordinal_44340
add esp, 8
test eax, eax
jne 0x402991
push str.daily.cfg
push ebx
push edi
call fcn.0040a110
add esp, 0xc
cmp eax, 0xffffffff
jne 0x402991
push dword [ebp - 0x434]
push str._buildcld:_Cant_add_daily.cfg_to_new__s.cld___please_check_if_there_is_enough_disk_space_available_n
call fcn.00409df0
add esp, 8
lea eax, [ebp - 0x224]
push eax
mov eax, dword [sym.imp.MSVCR110.dll__chdir]
call eax
mov eax, dword [ebp - 0x438]
add esp, 4
test eax, eax
je 0x40295e
push eax
call sub.libav.dll_Ordinal_44293
jmp 0x402965
push edi
call dword [sym.imp.MSVCR110.dll__close]
add esp, 4
push dword [ebp - 0x42c]
call sub.libav.dll_Ordinal_44274
push esi
call dword [sym.imp.MSVCR110.dll__unlink]
add esp, 8
or eax, 0xffffffff
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a4d6
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x42c]
call sub.libav.dll_Ordinal_44273
mov edi, eax
add esp, 4
test edi, edi
je 0x402aed
lea esp, [esp]
cmp word [edi], 0
je 0x402acf
lea esi, [edi + 3]
mov ecx, 0x40e1cc
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4029e4
test dl, dl
je 0x4029e0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4029e4
add eax, 2
add ecx, 2
test dl, dl
jne 0x4029c4
xor eax, eax
jmp 0x4029e9
sbb eax, eax
or eax, 1
test eax, eax
je 0x402acf
mov ecx, 0x40e4f8
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402a18
test dl, dl
je 0x402a14
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402a18
add eax, 2
add ecx, 2
test dl, dl
jne 0x4029f8
xor eax, eax
jmp 0x402a1d
sbb eax, eax
or eax, 1
test eax, eax
je 0x402acf
mov ecx, str.COPYING
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402a50
test dl, dl
je 0x402a4c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402a50
add eax, 2
add ecx, 2
test dl, dl
jne 0x402a30
xor eax, eax
jmp 0x402a55
sbb eax, eax
or eax, 1
test eax, eax
je 0x402acf
mov ecx, str.daily.cfg
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402a80
test dl, dl
je 0x402a7c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402a80
add eax, 2
add ecx, 2
test dl, dl
jne 0x402a60
xor eax, eax
jmp 0x402a85
sbb eax, eax
or eax, 1
test eax, eax
je 0x402acf
lea ecx, [ebp - 0x24]
mov eax, esi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402ab0
test dl, dl
je 0x402aac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402ab0
add eax, 2
add ecx, 2
test dl, dl
jne 0x402a90
xor eax, eax
jmp 0x402ab5
sbb eax, eax
or eax, 1
test eax, eax
je 0x402acf
push esi
mov esi, dword [ebp - 0x430]
push ebx
push esi
call fcn.0040a110
add esp, 0xc
cmp eax, 0xffffffff
je 0x402b1f
push dword [ebp - 0x42c]
call sub.libav.dll_Ordinal_44273
mov edi, eax
add esp, 4
test edi, edi
jne 0x4029b0
mov esi, dword [ebp - 0x43c]
push dword [ebp - 0x42c]
call sub.libav.dll_Ordinal_44274
add esp, 4
test ebx, ebx
je 0x402c02
push ebx
call sub.libav.dll_Ordinal_44293
add esp, 4
test eax, eax
je 0x402c3f
push esi
push str._buildcld:_gzclose___failed_for__s_n
jmp 0x402c1c
mov ebx, dword [ebp - 0x434]
push ebx
lea eax, [edi + 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.00409df0
add esp, 0xc
mov ecx, str.main
mov eax, ebx
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402b60
test dl, dl
je 0x402b5c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402b60
add eax, 2
add ecx, 2
test dl, dl
jne 0x402b40
xor eax, eax
jmp 0x402b65
sbb eax, eax
or eax, 1
test eax, eax
je 0x402b99
mov eax, str.safebrowsing
mov edi, edi
mov cl, byte [ebx]
cmp cl, byte [eax]
jne 0x402b90
test cl, cl
je 0x402b8c
mov cl, byte [ebx + 1]
cmp cl, byte [eax + 1]
jne 0x402b90
add ebx, 2
add eax, 2
test cl, cl
jne 0x402b70
xor eax, eax
jmp 0x402b95
sbb eax, eax
or eax, 1
test eax, eax
jne 0x402ba6
push str.Updates_to_main.cvd_or_safebrowsing.cvd_may_require_200MB_of_disk_space_or_more_n
call fcn.00409df0
add esp, 4
lea eax, [ebp - 0x224]
push eax
mov eax, dword [sym.imp.MSVCR110.dll__chdir]
call eax
mov eax, dword [ebp - 0x438]
add esp, 4
test eax, eax
je 0x402bc9
push eax
call sub.libav.dll_Ordinal_44293
jmp 0x402bd0
push esi
call dword [sym.imp.MSVCR110.dll__close]
add esp, 4
push dword [ebp - 0x42c]
call sub.libav.dll_Ordinal_44274
mov eax, dword [ebp - 0x43c]
push eax
call dword [sym.imp.MSVCR110.dll__unlink]
add esp, 8
or eax, 0xffffffff
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a4d6
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x430]
call dword [sym.imp.MSVCR110.dll__close]
add esp, 4
cmp eax, 0xffffffff
jne 0x402c3f
push esi
push str._buildcld:_close___failed_for__s_n
call fcn.00409df0
push esi
call dword [sym.imp.MSVCR110.dll__unlink]
add esp, 0xc
or eax, 0xffffffff
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a4d6
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x224]
push eax
mov eax, dword [sym.imp.MSVCR110.dll__chdir]
call eax
add esp, 4
cmp eax, 0xffffffff
jne 0x402c7d
lea eax, [ebp - 0x224]
push eax
push str._buildcld:_Cant_return_to_previous_directory__s_n
call fcn.00409df0
add esp, 8
or eax, 0xffffffff
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a4d6
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
pop esi
pop edi
xor ecx, ebp
xor eax, eax
pop ebx
call fcn.0040a4d6
mov esp, ebp
pop ebp
ret