Function at 0x42b513
Capabilities:
Check if file exists
Delete file
Get file attributes
Get system information on windows

Disassembly:
push 0x7b8
mov eax, 0x529e95
call fcn.004e27d2
mov ecx, dword [ebp + 8]
lea edx, [ebp - 0x31c]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x780], esi
call fcn.0042c8f5
lea edx, [ebp - 0x218]
mov ecx, ebx
call fcn.0042c8f5
xor eax, eax
mov dword [ebp - 0x5a8], 0xf
mov dword [ebp - 0x5ac], eax
mov byte [ebp - 0x5bc], al
mov dword [ebp - 4], eax
lea eax, [ebp - 0x218]
push eax
call fcn.00402ce5
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x5bc]
call fcn.0040c552
xor eax, eax
mov dword [ebp - 0x590], 0xf
mov dword [ebp - 0x594], eax
mov byte [ebp - 0x5a4], al
xor ecx, ecx
push 0xffffffffffffffff
inc ecx
push eax
lea eax, [ebp - 0x5bc]
mov byte [ebp - 4], cl
push eax
lea ecx, [ebp - 0x5a4]
call fcn.0040c5cb
mov edi, str..xml
push edi
call fcn.00402ce5
pop ecx
push eax
push edi
lea ecx, [ebp - 0x5a4]
call fcn.0040c6c1
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x5d4]
call fcn.00409c4d
sub esp, 0x18
mov byte [ebp - 4], 2
lea eax, [ebp - 0x5d4]
mov ecx, esp
push eax
call fcn.00409ca2
call fcn.0042c847
add esp, 0x18
xor ecx, ecx
test al, al
movzx ecx, cl
push 1
pop edi
cmovne ecx, edi
push ebx
mov dword [ebp - 0x78c], ecx
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x42b79a
xor eax, eax
lea ecx, [ebp - 0x98]
mov esi, 0x557b61
mov dword [ebp - 0x76c], eax
push esi
push esi
lea eax, [ebp - 0x31c]
push eax
call fcn.00412f21
push esi
lea ecx, [ebp - 0x53c]
mov byte [ebp - 4], 3
call fcn.00409c4d
lea eax, [ebp - 0x53c]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x76c]
push eax
lea ecx, [ebp - 0x98]
call fcn.00413ed8
push ebx
lea ecx, [ebp - 0x554]
mov dword [ebp - 0x784], edx
mov edi, eax
call fcn.004099b0
xor eax, eax
push 0x38
push eax
lea eax, [ebp - 0x58c]
push eax
call fcn.004fb430
cmp dword [ebp - 0x540], 8
lea ecx, [ebp - 0x58c]
lea eax, [ebp - 0x554]
cmovae eax, dword [ebp - 0x554]
push ecx
push eax
call fcn.0050dc61
mov eax, dword [ebp - 0x570]
add esp, 0x14
mov esi, dword [ebp - 0x574]
xor ecx, ecx
mov dword [ebp - 0x76c], eax
inc ecx
xor eax, eax
push eax
push ecx
lea ecx, [ebp - 0x554]
call fcn.00402226
cmp edi, esi
jne 0x42b6ef
mov eax, dword [ebp - 0x76c]
cmp dword [ebp - 0x784], eax
je 0x42b76e
mov esi, dword [sym.imp.KERNEL32.DLL_DeleteFileW]
push ebx
call esi
push ebx
lea ecx, [ebp - 0x554]
call fcn.004099b0
push 5
pop ebx
mov edi, 0x55b254
mov byte [ebp - 4], bl
push edi
call fcn.00401963
pop ecx
push eax
push edi
lea ecx, [ebp - 0x554]
call fcn.004268f4
cmp dword [ebp - 0x540], 8
lea eax, [ebp - 0x554]
cmovae eax, dword [ebp - 0x554]
push eax
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x42b75a
cmp dword [ebp - 0x540], 8
lea eax, [ebp - 0x554]
cmovae eax, dword [ebp - 0x554]
push eax
call esi
xor eax, eax
lea ecx, [ebp - 0x554]
xor edi, edi
push eax
inc edi
push edi
call fcn.00402226
jmp 0x42b774
xor edi, edi
push 5
inc edi
pop ebx
xor eax, eax
lea ecx, [ebp - 0x53c]
push eax
push edi
call fcn.0040c02b
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 2
call fcn.00411fa0
mov esi, dword [ebp - 0x780]
jmp 0x42b79d
push 5
pop ebx
lea eax, [ebp - 0x7c4]
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemInfo]
mov eax, dword [ebp - 0x7b0]
shl eax, 3
cdq
idiv ebx
push 4
pop ecx
cmp eax, ecx
cmovl eax, ecx
cmp dword [ebp - 0x590], 0x10
push eax
lea ecx, [ebp - 0x5a4]
cmovae ecx, dword [ebp - 0x5a4]
lea eax, [ebp - 0x218]
push ecx
push eax
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x764]
call fcn.00411ffd
sub esp, 0x18
mov byte [ebp - 4], 6
mov ecx, esp
push str.Download
call fcn.00409c4d
push ecx
lea ecx, [ebp - 0x764]
call fcn.004120fc
mov ebx, eax
cmp ebx, edi
je 0x42b864
push 0x2bf20
push dword [ebp - 0x714]
xor eax, eax
mov dword [ebp - 0x718], eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x764]
call fcn.00412856
push eax
mov ecx, esi
call fcn.00409bd9
xor eax, eax
lea ecx, [ebp - 0x53c]
push eax
push edi
call fcn.0040c02b
lea ecx, [ebp - 0x764]
call fcn.004129dc
jmp 0x42bd1e
mov dword [ebp - 0x718], edi
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
or dword [ebp - 0x778], 0xffffffff
xorps xmm0, xmm0
movlpd qword [ebp - 0x770], xmm0
mov edi, eax
movsd xmm0, qword [0x560c20]
lea eax, [ebp - 0x778]
movsd qword [ebp - 0x798], xmm0
xor ebx, ebx
xorps xmm0, xmm0
mov dword [ebp - 0x77c], edi
push eax
mov dword [ebp - 0x774], ebx
mov byte [ebp - 0x765], bl
movsd qword [ebp - 0x7a0], xmm0
call dword [sym.imp.SensApi.dll_IsNetworkAlive]
test eax, eax
je 0x42bc63
mov ecx, dword [ebp - 0x76c]
mov edx, dword [ebp - 0x770]
mov dword [ebp - 0x784], ecx
mov dword [ebp - 0x76c], edx
mov ebx, dword [ebp - 0x704]
cmp dword [ebp - 0x700], ecx
jl 0x42b9bb
jg 0x42b8fc
cmp ebx, edx
jbe 0x42b9bd
mov edi, dword [ebp - 0x70c]
mov eax, ebx
sub eax, edx
mov edx, dword [ebp - 0x700]
push 0
sbb edx, ecx
sub edi, dword [ebp - 0x77c]
pop ecx
sbb ecx, dword [ebp - 0x774]
mov dword [ebp - 0x76c], ecx
js 0x42b993
jg 0x42b92d
xor ecx, ecx
cmp edi, ecx
jbe 0x42b993
mov ecx, eax
call fcn.004e2d60
mulsd xmm0, qword [0x560be0]
mov ecx, edi
mov edx, dword [ebp - 0x76c]
mulsd xmm0, qword [0x560be0]
movsd qword [ebp - 0x788], xmm0
call fcn.004e2d60
divsd xmm0, qword [0x560c10]
movsd xmm1, qword [ebp - 0x788]
divsd xmm1, xmm0
movaps xmm0, xmm1
maxsd xmm0, qword [ebp - 0x7a0]
minsd xmm1, qword [ebp - 0x798]
movsd qword [ebp - 0x7a0], xmm0
movaps xmm0, xmm1
movsd qword [ebp - 0x798], xmm0
mov eax, dword [ebp - 0x700]
mov ecx, dword [ebp - 0x70c]
mov dword [ebp - 0x784], eax
xor eax, eax
mov dword [ebp - 0x76c], ebx
mov dword [ebp - 0x77c], ecx
mov dword [ebp - 0x774], eax
jmp 0x42ba1b
cmp ebx, edx
jne 0x42ba1b
cmp dword [ebp - 0x700], ecx
jne 0x42ba1b
mov ecx, dword [ebp - 0x70c]
push 0
sub ecx, edi
pop edx
sbb edx, dword [ebp - 0x774]
js 0x42ba00
jg 0x42b9e4
cmp ecx, 0xbb8
jb 0x42ba00
cmp byte [ebp - 0x765], 0
movzx eax, byte [ebp - 0x765]
push 1
pop edi
cmove eax, edi
mov byte [ebp - 0x765], al
jmp 0x42ba03
xor edi, edi
inc edi
xor eax, eax
cmp edx, eax
jg 0x42ba9d
jl 0x42ba1b
cmp ecx, 0xea60
jae 0x42ba9d
mov edi, dword [ebp - 0x6ac]
mov eax, edi
sub eax, dword [ebp - 0x6b0]
sar eax, 2
imul eax, eax, 3
cmp dword [ebp - 0x6bc], eax
jbe 0x42ba44
cmp byte [ebp - 0x78c], 0
jne 0x42bb60
cmp dword [ebp - 0x718], 0
je 0x42bd60
push ecx
push dword [ebp - 0x638]
push dword [ebp - 0x63c]
push dword [ebp - 0x700]
push ebx
call fcn.0041af9b
or dword [ebp - 0x778], 0xffffffff
lea eax, [ebp - 0x778]
push eax
call dword [sym.imp.SensApi.dll_IsNetworkAlive]
test eax, eax
je 0x42bc61
mov ecx, dword [ebp - 0x784]
mov edx, dword [ebp - 0x76c]
mov edi, dword [ebp - 0x77c]
jmp 0x42b8e0
push ecx
push ecx
push str.int___thiscall_CDownLoadImpl::SuperDownloadFile_const_wchar_t__const_wchar_t__class_std::basic_string_char_struct_std::char_traits_char__class_std::allocator_char_____
push 0x9a
push str........._srcDownLoadImpl.cpp
push 0x80
lea ecx, [ebp - 0x58c]
call fcn.004064f1
push str.default
push edi
push eax
mov byte [ebp - 4], 9
call fcn.00406584
add esp, 0xc
cmp byte [eax + 0x1c], 0
je 0x42bae4
push str.too_long_no_speed:
lea ecx, [eax + 0x20]
call fcn.00406419
push 0xa
pop ebx
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x58c]
mov dword [ebp - method.el::base::Writer.virtual_0], vtable.el::base::Writer.0
call fcn.004067e3
lea ecx, [ebp - 0x560]
call fcn.00409846
mov byte [ebp - 4], 6
xor eax, eax
push 0x2bf20
push dword [ebp - 0x714]
mov dword [ebp - 0x718], eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea ecx, [ebp - 0x764]
call fcn.004129dc
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x764]
call fcn.00412856
push eax
mov ecx, esi
call fcn.00409bd9
xor eax, eax
push eax
push edi
lea ecx, [ebp - 0x53c]
call fcn.0040c02b
jmp 0x42bd1e
sub edi, dword [ebp - 0x6b0]
push ecx
push ecx
push str.int___thiscall_CDownLoadImpl::SuperDownloadFile_const_wchar_t__const_wchar_t__class_std::basic_string_char_struct_std::char_traits_char__class_std::allocator_char_____
push 0xa6
push str........._srcDownLoadImpl.cpp
push 0x80
lea ecx, [ebp - 0x58c]
sar edi, 2
call fcn.004064f1
push 0xb
pop ebx
xor ecx, ecx
mov byte [ebp - 4], bl
push str.default
inc ecx
push ecx
push eax
call fcn.00406584
mov esi, eax
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x42bbed
push str.____cdn_fail:
lea ecx, [esi + 0x20]
call fcn.00406419
cmp byte [esi + 0x1c], 0
je 0x42bbed
push dword [ebp - 0x6bc]
lea ecx, [esi + 0x20]
call fcn.0040633d
cmp byte [esi + 0x1c], 0
je 0x42bbed
push str.___3_
lea ecx, [esi + 0x20]
call fcn.00406419
cmp byte [esi + 0x1c], 0
je 0x42bbed
push edi
lea ecx, [esi + 0x20]
call fcn.00406388
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x58c]
mov dword [ebp - method.el::base::Writer.virtual_0], vtable.el::base::Writer.0
call fcn.004067e3
lea ecx, [ebp - 0x560]
call fcn.00409846
mov byte [ebp - 4], 6
xor eax, eax
push 0x2bf20
push dword [ebp - 0x714]
mov dword [ebp - 0x718], eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea ecx, [ebp - 0x764]
call fcn.004129dc
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x764]
call fcn.00412856
mov ecx, dword [ebp - 0x780]
push eax
call fcn.00409bd9
xor edi, edi
xor eax, eax
inc edi
jmp 0x42bb4e
xor ebx, ebx
push ecx
push ecx
push str.int___thiscall_CDownLoadImpl::SuperDownloadFile_const_wchar_t__const_wchar_t__class_std::basic_string_char_struct_std::char_traits_char__class_std::allocator_char_____
push 0x7a
push str........._srcDownLoadImpl.cpp
push 0x80
lea ecx, [ebp - 0x58c]
call fcn.004064f1
xor edi, edi
mov byte [ebp - 4], 7
push str.default
inc edi
push edi
push eax
call fcn.00406584
add esp, 0xc
cmp byte [eax + 0x1c], 0
je 0x42bcaa
push str.network_is__no__alive
lea ecx, [eax + 0x20]
call fcn.00406419
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x58c]
mov dword [ebp - method.el::base::Writer.virtual_0], vtable.el::base::Writer.0
call fcn.004067e3
lea ecx, [ebp - 0x560]
call fcn.00409846
mov byte [ebp - 4], 6
push 0x2bf20
push dword [ebp - 0x714]
mov dword [ebp - 0x718], ebx
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea ecx, [ebp - 0x764]
call fcn.004129dc
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x764]
call fcn.00412856
push eax
mov ecx, esi
call fcn.00409bd9
push ebx
push edi
lea ecx, [ebp - 0x53c]
call fcn.0040c02b
push 9
pop ebx
lea ecx, [ebp - 0x764]
call fcn.004194b2
xor eax, eax
lea ecx, [ebp - 0x5d4]
push eax
push edi
call fcn.0040c02b
xor eax, eax
lea ecx, [ebp - 0x5a4]
push eax
push edi
call fcn.0040c02b
xor eax, eax
lea ecx, [ebp - 0x5bc]
push eax
push edi
call fcn.0040c02b
mov eax, ebx
call fcn.004e277c
ret 0xc
push 0x2bf20
push dword [ebp - 0x714]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea ecx, [ebp - 0x764]
call fcn.004129dc
lea ecx, [ebp - 0x764]
call fcn.00412254
mov ecx, dword [ebp - 0x638]
cmp dword [ebp - 0x700], ecx
jl 0x42c01a
mov eax, dword [ebp - 0x63c]
jg 0x42bdad
cmp dword [ebp - 0x704], eax
jb 0x42c01a
cmp byte [ebp - 0x710], 0
jne 0x42bdf3
push ecx
push ecx
push eax
push ecx
push eax
call fcn.0041af9b
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x764]
call fcn.00412856
push eax
mov ecx, esi
call fcn.00409bd9
xor eax, eax
xor edi, edi
push eax
inc edi
push edi
lea ecx, [ebp - 0x53c]
call fcn.0040c02b
mov ebx, edi
jmp 0x42bd1e
lea ecx, [ebp - 0x70c]
call fcn.00411f58
mov ecx, eax
call fcn.004e2d60
mulsd xmm0, qword [0x560bd8]
xor ebx, ebx
push 0x104
push ebx
mulsd xmm0, qword [0x560c08]
cvttsd2si eax, xmm0
movd xmm0, eax
lea eax, [ebp - 0x114]
cvtdq2pd xmm0, xmm0
push eax
divsd xmm0, qword [0x560c08]
movsd qword [ebp - 0x790], xmm0
call fcn.004fb430
movsd xmm0, qword [ebp - 0x790]
lea eax, [ebp - 0x114]
movsd qword [esp + 4], xmm0
mov dword [esp], str._.1fMB_s
push eax
call fcn.0040ef31
pop ecx
pop ecx
push str.int___thiscall_CDownLoadImpl::SuperDownloadFile_const_wchar_t__const_wchar_t__class_std::basic_string_char_struct_std::char_traits_char__class_std::allocator_char_____
push 0xc9
push str........._srcDownLoadImpl.cpp
push 0x80
lea ecx, [ebp - 0x58c]
call fcn.004064f1
xor edi, edi
mov byte [ebp - 4], 0xd
push str.default
inc edi
push edi
push eax
call fcn.00406584
mov esi, eax
add esp, 0xc
cmp byte [esi + 0x1c], bl
je 0x42bec5
push str._Average_speed:
lea ecx, [esi + 0x20]
call fcn.00406419
cmp byte [esi + 0x1c], bl
je 0x42bec5
lea eax, [ebp - 0x114]
push eax
lea ecx, [esi + 0x20]
call fcn.00406419
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x58c]
mov dword [ebp - method.el::base::Writer.virtual_0], vtable.el::base::Writer.0
call fcn.004067e3
lea ecx, [ebp - 0x560]
call fcn.00409846
mov esi, 0x104
lea eax, [ebp - 0x420]
push esi
push ebx
push eax
call fcn.004fb430
push esi
lea eax, [ebp - 0x524]
push ebx
push eax
call fcn.004fb430
movsd xmm0, qword [ebp - 0x798]
lea eax, [ebp - 0x420]
add esp, 0x10
mov esi, str._.1f_MB_s
movsd qword [esp], xmm0
push esi
push eax
call fcn.0040ef31
movsd xmm2, qword [ebp - 0x7a0]
lea eax, [ebp - 0x524]
pop ecx
pop ecx
movsd qword [esp], xmm2
push esi
push eax
call fcn.0040ef31
pop ecx
pop ecx
push str.int___thiscall_CDownLoadImpl::SuperDownloadFile_const_wchar_t__const_wchar_t__class_std::basic_string_char_struct_std::char_traits_char__class_std::allocator_char_____
push 0xce
push str........._srcDownLoadImpl.cpp
push 0x80
lea ecx, [ebp - 0x58c]
call fcn.004064f1
push str.default
push edi
push eax
mov byte [ebp - 4], 0xf
call fcn.00406584
mov esi, eax
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x42bfce
push str._Download_speed_range
lea ecx, [esi + 0x20]
call fcn.00406419
cmp byte [esi + 0x1c], 0
je 0x42bfce
lea eax, [ebp - 0x420]
push eax
lea ecx, [esi + 0x20]
call fcn.00406419
cmp byte [esi + 0x1c], 0
je 0x42bfce
push 0x55d0a4
lea ecx, [esi + 0x20]
call fcn.00406419
cmp byte [esi + 0x1c], 0
je 0x42bfce
lea eax, [ebp - 0x524]
push eax
lea ecx, [esi + 0x20]
call fcn.00406419
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x58c]
mov dword [ebp - method.el::base::Writer.virtual_0], vtable.el::base::Writer.0
call fcn.004067e3
lea ecx, [ebp - 0x560]
call fcn.00409846
lea eax, [ebp - 0x53c]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x764]
call fcn.00412856
mov ecx, dword [ebp - 0x780]
push eax
call fcn.00409bd9
push ebx
jmp 0x42bde0
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x764]
call fcn.00412856
push eax
mov ecx, esi
call fcn.00409bd9
xor eax, eax
lea ecx, [ebp - 0x53c]
xor edi, edi
push eax
inc edi
push edi
call fcn.0040c02b
push 0xc
jmp 0x42bd1d