Function at 0x402430
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 0x40249b
push str._buildcld:_Cant_get_path_of_current_working_directory_n
call fcn.00409d50
add esp, 4
or eax, 0xffffffff
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a436
mov esp, ebp
pop ebp
ret
push edi
call dword [sym.imp.MSVCR110.dll__chdir]
add esp, 4
cmp eax, 0xffffffff
jne 0x4024cb
push edi
push str._buildcld:_Cant_access_directory__s_n
call fcn.00409d50
add esp, 8
or eax, 0xffffffff
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a436
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 0x402506
lea eax, [ebp - 0x24]
push eax
push str._buildcld:_Cant_open__s_n
jmp 0x4025c6
push 0x200
lea eax, [ebp - 0x428]
push eax
push esi
call dword [sym.imp.MSVCR110.dll__read]
add esp, 0xc
cmp eax, 0xffffffff
jne 0x40255b
lea eax, [ebp - 0x24]
push eax
push str._buildcld:_Cant_read__s_n
call fcn.00409d50
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.0040a436
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 0x40258c
lea eax, [ebp - 0x24]
push eax
push str._buildcld:_Bad_format_of__s_n
jmp 0x4025c6
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 0x4025f0
push esi
push str._buildcld:_Cant_open__s_for_writing_n
call fcn.00409d50
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.0040a436
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 0x402615
push esi
push str._buildcld:_Cant_write_to__s_n
jmp 0x402632
push 0x40e1c4
call sub.libav.dll_Ordinal_44272
add esp, 4
mov dword [ebp - 0x42c], eax
test eax, eax
jne 0x40266b
push edi
push str._buildcld:_Cant_open_directory__s_n
call fcn.00409d50
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.0040a436
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 0x14], 0
je 0x4026d5
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 0x4026d7
push esi
push str._buildcld:_gzopen___failed_for__s_n
call fcn.00409d50
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.0040a436
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 0x402702
push str._buildcld:_COPYING_file_not_found_n
call fcn.00409d50
mov edi, dword [ebp - 0x430]
add esp, 4
jmp 0x40289b
mov edi, dword [ebp - 0x430]
push str.COPYING
push ebx
push edi
call fcn.0040a070
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4027af
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.00409d50
add esp, 8
mov ecx, str.main
mov eax, ebx
jmp 0x402740
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402760
test dl, dl
je 0x40275c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402760
add eax, 2
add ecx, 2
test dl, dl
jne 0x402740
xor eax, eax
jmp 0x402765
sbb eax, eax
or eax, 1
test eax, eax
je 0x40279d
mov eax, str.safebrowsing
mov edi, edi
mov cl, byte [ebx]
cmp cl, byte [eax]
jne 0x402790
test cl, cl
je 0x40278c
mov cl, byte [ebx + 1]
cmp cl, byte [eax + 1]
jne 0x402790
add ebx, 2
add eax, 2
test cl, cl
jne 0x402770
xor eax, eax
jmp 0x402795
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40289b
push str.Updates_to_main.cvd_or_safebrowsing.cvd_may_require_200MB_of_disk_space_or_more_n
call fcn.00409d50
add esp, 4
jmp 0x40289b
lea eax, [ebp - 0x24]
push 4
push eax
call sub.libav.dll_Ordinal_44340
add esp, 8
test eax, eax
jne 0x402861
lea eax, [ebp - 0x24]
push eax
push ebx
push edi
call fcn.0040a070
add esp, 0xc
cmp eax, 0xffffffff
jne 0x402861
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.00409d50
add esp, 0xc
mov ecx, str.main
mov eax, ebx
jmp 0x402800
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402820
test dl, dl
je 0x40281c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402820
add eax, 2
add ecx, 2
test dl, dl
jne 0x402800
xor eax, eax
jmp 0x402825
sbb eax, eax
or eax, 1
test eax, eax
je 0x40279d
mov eax, str.safebrowsing
mov cl, byte [ebx]
cmp cl, byte [eax]
jne 0x402790
test cl, cl
je 0x40278c
mov cl, byte [ebx + 1]
cmp cl, byte [eax + 1]
jne 0x402790
add ebx, 2
add eax, 2
test cl, cl
jne 0x402832
xor eax, eax
jmp 0x402795
push 4
push str.daily.cfg
call sub.libav.dll_Ordinal_44340
add esp, 8
test eax, eax
jne 0x4028f1
push str.daily.cfg
push ebx
push edi
call fcn.0040a070
add esp, 0xc
cmp eax, 0xffffffff
jne 0x4028f1
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.00409d50
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 0x4028be
push eax
call sub.libav.dll_Ordinal_44293
jmp 0x4028c5
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.0040a436
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 0x402a4d
lea esp, [esp]
cmp word [edi], 0
je 0x402a2f
lea esi, [edi + 3]
mov ecx, 0x40e1c4
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402944
test dl, dl
je 0x402940
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402944
add eax, 2
add ecx, 2
test dl, dl
jne 0x402924
xor eax, eax
jmp 0x402949
sbb eax, eax
or eax, 1
test eax, eax
je 0x402a2f
mov ecx, 0x40e4f0
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402978
test dl, dl
je 0x402974
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402978
add eax, 2
add ecx, 2
test dl, dl
jne 0x402958
xor eax, eax
jmp 0x40297d
sbb eax, eax
or eax, 1
test eax, eax
je 0x402a2f
mov ecx, str.COPYING
mov eax, esi
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4029b0
test dl, dl
je 0x4029ac
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4029b0
add eax, 2
add ecx, 2
test dl, dl
jne 0x402990
xor eax, eax
jmp 0x4029b5
sbb eax, eax
or eax, 1
test eax, eax
je 0x402a2f
mov ecx, str.daily.cfg
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4029e0
test dl, dl
je 0x4029dc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4029e0
add eax, 2
add ecx, 2
test dl, dl
jne 0x4029c0
xor eax, eax
jmp 0x4029e5
sbb eax, eax
or eax, 1
test eax, eax
je 0x402a2f
lea ecx, [ebp - 0x24]
mov eax, esi
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402a10
test dl, dl
je 0x402a0c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402a10
add eax, 2
add ecx, 2
test dl, dl
jne 0x4029f0
xor eax, eax
jmp 0x402a15
sbb eax, eax
or eax, 1
test eax, eax
je 0x402a2f
push esi
mov esi, dword [ebp - 0x430]
push ebx
push esi
call fcn.0040a070
add esp, 0xc
cmp eax, 0xffffffff
je 0x402a7f
push dword [ebp - 0x42c]
call sub.libav.dll_Ordinal_44273
mov edi, eax
add esp, 4
test edi, edi
jne 0x402910
mov esi, dword [ebp - 0x43c]
push dword [ebp - 0x42c]
call sub.libav.dll_Ordinal_44274
add esp, 4
test ebx, ebx
je 0x402b62
push ebx
call sub.libav.dll_Ordinal_44293
add esp, 4
test eax, eax
je 0x402b9f
push esi
push str._buildcld:_gzclose___failed_for__s_n
jmp 0x402b7c
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.00409d50
add esp, 0xc
mov ecx, str.main
mov eax, ebx
mov edi, edi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402ac0
test dl, dl
je 0x402abc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402ac0
add eax, 2
add ecx, 2
test dl, dl
jne 0x402aa0
xor eax, eax
jmp 0x402ac5
sbb eax, eax
or eax, 1
test eax, eax
je 0x402af9
mov eax, str.safebrowsing
mov edi, edi
mov cl, byte [ebx]
cmp cl, byte [eax]
jne 0x402af0
test cl, cl
je 0x402aec
mov cl, byte [ebx + 1]
cmp cl, byte [eax + 1]
jne 0x402af0
add ebx, 2
add eax, 2
test cl, cl
jne 0x402ad0
xor eax, eax
jmp 0x402af5
sbb eax, eax
or eax, 1
test eax, eax
jne 0x402b06
push str.Updates_to_main.cvd_or_safebrowsing.cvd_may_require_200MB_of_disk_space_or_more_n
call fcn.00409d50
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 0x402b29
push eax
call sub.libav.dll_Ordinal_44293
jmp 0x402b30
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.0040a436
mov esp, ebp
pop ebp
ret
push dword [ebp - 0x430]
call dword [sym.imp.MSVCR110.dll__close]
add esp, 4
cmp eax, 0xffffffff
jne 0x402b9f
push esi
push str._buildcld:_close___failed_for__s_n
call fcn.00409d50
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.0040a436
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 0x402bdd
lea eax, [ebp - 0x224]
push eax
push str._buildcld:_Cant_return_to_previous_directory__s_n
call fcn.00409d50
add esp, 8
or eax, 0xffffffff
pop esi
pop edi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040a436
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.0040a436
mov esp, ebp
pop ebp
ret