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

Disassembly:
push 0x7b8
mov eax, 0x52b73a
call fcn.004e41bf
mov ecx, dword [ebp + 8]
lea edx, [ebp - 0x31c]
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x748], esi
call fcn.0042c2f2
lea edx, [ebp - 0x218]
mov ecx, ebx
call fcn.0042c2f2
xor eax, eax
mov dword [ebp - 0x570], 0xf
mov dword [ebp - 0x574], eax
mov byte [ebp - 0x584], al
mov dword [ebp - 4], eax
lea eax, [ebp - 0x218]
push eax
call fcn.00402c84
pop ecx
push eax
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x584]
call fcn.0040c4f2
xor eax, eax
mov dword [ebp - 0x558], 0xf
mov dword [ebp - 0x55c], eax
mov byte [ebp - 0x56c], al
xor ecx, ecx
push 0xffffffffffffffff
inc ecx
push eax
lea eax, [ebp - 0x584]
mov byte [ebp - 4], cl
push eax
lea ecx, [ebp - 0x56c]
call fcn.0040c56b
mov edi, str..xml
push edi
call fcn.00402c84
pop ecx
push eax
push edi
lea ecx, [ebp - 0x56c]
call fcn.0040c661
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x59c]
call fcn.00409c00
sub esp, 0x18
mov byte [ebp - 4], 2
lea eax, [ebp - 0x59c]
mov ecx, esp
push eax
call fcn.00409c55
call fcn.0042c244
add esp, 0x18
xor ecx, ecx
test al, al
movzx ecx, cl
push 1
pop edi
cmovne ecx, edi
push ebx
mov dword [ebp - 0x75c], ecx
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x42b19a
xor eax, eax
lea ecx, [ebp - 0x98]
mov esi, 0x56204c
mov dword [ebp - 0x734], eax
push esi
push esi
lea eax, [ebp - 0x31c]
push eax
call fcn.00412ea7
push esi
lea ecx, [ebp - 0x53c]
mov byte [ebp - 4], 3
call fcn.00409c00
lea eax, [ebp - 0x53c]
mov byte [ebp - 4], 4
push eax
lea eax, [ebp - 0x734]
push eax
lea ecx, [ebp - 0x98]
call fcn.00413e5e
push ebx
lea ecx, [ebp - 0x554]
mov dword [ebp - 0x734], eax
mov dword [ebp - 0x74c], edx
call fcn.0040996a
cmp dword [ebp - 0x540], 8
lea ecx, [ebp - 0x554]
cmovae ecx, dword [ebp - 0x554]
xor eax, eax
push eax
push 0x80
push 3
push eax
push edi
push closesocket
push ecx
call dword [sym.imp.KERNEL32.DLL_CreateFileW]
mov edi, eax
xor eax, eax
push eax
cmp edi, 0xffffffff
jne 0x42b0bb
xor ecx, ecx
inc ecx
push ecx
lea ecx, [ebp - 0x554]
call fcn.004021c6
xorps xmm0, xmm0
movlpd qword [ebp - 0x758], xmm0
mov edi, dword [ebp - 0x754]
mov esi, dword [ebp - 0x758]
jmp 0x42b0df
push edi
call dword [sym.imp.KERNEL32.DLL_GetFileSize]
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
xor eax, eax
xor ecx, ecx
inc ecx
mov edi, eax
push eax
push ecx
lea ecx, [ebp - 0x554]
call fcn.004021c6
cmp dword [ebp - 0x734], esi
jne 0x42b0ef
cmp dword [ebp - 0x74c], edi
je 0x42b16e
mov esi, dword [sym.imp.KERNEL32.DLL_DeleteFileW]
push ebx
call esi
push ebx
lea ecx, [ebp - 0x554]
call fcn.0040996a
push 5
pop ebx
mov edi, 0x55d29c
mov byte [ebp - 4], bl
push edi
call fcn.00401903
pop ecx
push eax
push edi
lea ecx, [ebp - 0x554]
call fcn.00426334
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 0x42b15a
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.004021c6
jmp 0x42b174
xor edi, edi
push 5
inc edi
pop ebx
xor eax, eax
lea ecx, [ebp - 0x53c]
push eax
push edi
call fcn.0040bfcb
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 2
call fcn.00411f40
mov esi, dword [ebp - 0x748]
jmp 0x42b19d
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 - 0x558], 0x10
push eax
lea ecx, [ebp - 0x56c]
cmovae ecx, dword [ebp - 0x56c]
lea eax, [ebp - 0x218]
push ecx
push eax
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x72c]
call fcn.00411f9c
sub esp, 0x18
mov byte [ebp - 4], 6
mov ecx, esp
push str.Download
call fcn.00409c00
push ecx
lea ecx, [ebp - 0x72c]
call fcn.0041209b
mov ebx, eax
cmp ebx, edi
je 0x42b264
push 0x2bf20
push dword [ebp - 0x6dc]
xor eax, eax
mov dword [ebp - 0x6e0], eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x72c]
call fcn.004127f5
push eax
mov ecx, esi
call fcn.00409b66
xor eax, eax
lea ecx, [ebp - 0x53c]
push eax
push edi
call fcn.0040bfcb
lea ecx, [ebp - 0x72c]
call fcn.00412978
jmp 0x42b71e
mov dword [ebp - 0x6e0], edi
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
or dword [ebp - 0x740], 0xffffffff
xorps xmm0, xmm0
movlpd qword [ebp - 0x738], xmm0
mov edi, eax
movsd xmm0, qword [0x562ad0]
lea eax, [ebp - 0x740]
movsd qword [ebp - 0x768], xmm0
xor ebx, ebx
xorps xmm0, xmm0
mov dword [ebp - 0x744], edi
push eax
mov dword [ebp - 0x73c], ebx
mov byte [ebp - 0x72d], bl
movsd qword [ebp - 0x758], xmm0
call dword [sym.imp.SensApi.dll_IsNetworkAlive]
test eax, eax
je 0x42b663
mov ecx, dword [ebp - 0x734]
mov edx, dword [ebp - 0x738]
mov dword [ebp - 0x74c], ecx
mov dword [ebp - 0x734], edx
mov ebx, dword [ebp - 0x6cc]
cmp dword [ebp - 0x6c8], ecx
jl 0x42b3bb
jg 0x42b2fc
cmp ebx, edx
jbe 0x42b3bd
mov edi, dword [ebp - 0x6d4]
mov eax, ebx
sub eax, edx
mov edx, dword [ebp - 0x6c8]
push 0
sbb edx, ecx
sub edi, dword [ebp - 0x744]
pop ecx
sbb ecx, dword [ebp - 0x73c]
mov dword [ebp - 0x734], ecx
js 0x42b393
jg 0x42b32d
xor ecx, ecx
cmp edi, ecx
jbe 0x42b393
mov ecx, eax
call fcn.004e4750
mulsd xmm0, qword [0x562a90]
mov ecx, edi
mov edx, dword [ebp - 0x734]
mulsd xmm0, qword [0x562a90]
movsd qword [ebp - 0x750], xmm0
call fcn.004e4750
divsd xmm0, qword [0x562ac0]
movsd xmm1, qword [ebp - 0x750]
divsd xmm1, xmm0
movaps xmm0, xmm1
maxsd xmm0, qword [ebp - 0x758]
minsd xmm1, qword [ebp - 0x768]
movsd qword [ebp - 0x758], xmm0
movaps xmm0, xmm1
movsd qword [ebp - 0x768], xmm0
mov eax, dword [ebp - 0x6c8]
mov ecx, dword [ebp - 0x6d4]
mov dword [ebp - 0x74c], eax
xor eax, eax
mov dword [ebp - 0x734], ebx
mov dword [ebp - 0x744], ecx
mov dword [ebp - 0x73c], eax
jmp 0x42b41b
cmp ebx, edx
jne 0x42b41b
cmp dword [ebp - 0x6c8], ecx
jne 0x42b41b
mov ecx, dword [ebp - 0x6d4]
push 0
sub ecx, edi
pop edx
sbb edx, dword [ebp - 0x73c]
js 0x42b400
jg 0x42b3e4
cmp ecx, 0xbb8
jb 0x42b400
cmp byte [ebp - 0x72d], 0
movzx eax, byte [ebp - 0x72d]
push 1
pop edi
cmove eax, edi
mov byte [ebp - 0x72d], al
jmp 0x42b403
xor edi, edi
inc edi
xor eax, eax
cmp edx, eax
jg 0x42b49d
jl 0x42b41b
cmp ecx, 0xea60
jae 0x42b49d
mov edi, dword [ebp - 0x674]
mov eax, edi
sub eax, dword [ebp - 0x678]
sar eax, 2
imul eax, eax, 3
cmp dword [ebp - 0x684], eax
jbe 0x42b444
cmp byte [ebp - 0x75c], 0
jne 0x42b560
cmp dword [ebp - 0x6e0], 0
je 0x42b760
push ecx
push dword [ebp - 0x600]
push dword [ebp - 0x604]
push dword [ebp - 0x6c8]
push ebx
call fcn.0041af78
or dword [ebp - 0x740], 0xffffffff
lea eax, [ebp - 0x740]
push eax
call dword [sym.imp.SensApi.dll_IsNetworkAlive]
test eax, eax
je 0x42b661
mov ecx, dword [ebp - 0x74c]
mov edx, dword [ebp - 0x734]
mov edi, dword [ebp - 0x744]
jmp 0x42b2e0
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 - 0x7a0]
call fcn.004064ae
push str.default
push edi
push eax
mov byte [ebp - 4], 9
call fcn.00406541
add esp, 0xc
cmp byte [eax + 0x1c], 0
je 0x42b4e4
push str.too_long_no_speed:
lea ecx, [eax + 0x20]
call fcn.004063d6
push 0xa
pop ebx
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x7a0]
mov dword [ebp - method.el::base::Writer.virtual_0], vtable.el::base::Writer.0
call fcn.004067a0
lea ecx, [ebp - 0x774]
call fcn.00409800
mov byte [ebp - 4], 6
xor eax, eax
push 0x2bf20
push dword [ebp - 0x6dc]
mov dword [ebp - 0x6e0], eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea ecx, [ebp - 0x72c]
call fcn.00412978
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x72c]
call fcn.004127f5
push eax
mov ecx, esi
call fcn.00409b66
xor eax, eax
push eax
push edi
lea ecx, [ebp - 0x53c]
call fcn.0040bfcb
jmp 0x42b71e
sub edi, dword [ebp - 0x678]
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 - 0x7a0]
sar edi, 2
call fcn.004064ae
push 0xb
pop ebx
xor ecx, ecx
mov byte [ebp - 4], bl
push str.default
inc ecx
push ecx
push eax
call fcn.00406541
mov esi, eax
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x42b5ed
push str.____cdn_fail:
lea ecx, [esi + 0x20]
call fcn.004063d6
cmp byte [esi + 0x1c], 0
je 0x42b5ed
push dword [ebp - 0x684]
lea ecx, [esi + 0x20]
call fcn.004062fa
cmp byte [esi + 0x1c], 0
je 0x42b5ed
push str.___3_
lea ecx, [esi + 0x20]
call fcn.004063d6
cmp byte [esi + 0x1c], 0
je 0x42b5ed
push edi
lea ecx, [esi + 0x20]
call fcn.00406345
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x7a0]
mov dword [ebp - method.el::base::Writer.virtual_0], vtable.el::base::Writer.0
call fcn.004067a0
lea ecx, [ebp - 0x774]
call fcn.00409800
mov byte [ebp - 4], 6
xor eax, eax
push 0x2bf20
push dword [ebp - 0x6dc]
mov dword [ebp - 0x6e0], eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea ecx, [ebp - 0x72c]
call fcn.00412978
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x72c]
call fcn.004127f5
mov ecx, dword [ebp - 0x748]
push eax
call fcn.00409b66
xor edi, edi
xor eax, eax
inc edi
jmp 0x42b54e
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 - 0x7a0]
call fcn.004064ae
xor edi, edi
mov byte [ebp - 4], 7
push str.default
inc edi
push edi
push eax
call fcn.00406541
add esp, 0xc
cmp byte [eax + 0x1c], 0
je 0x42b6aa
push str.network_is__no__alive
lea ecx, [eax + 0x20]
call fcn.004063d6
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x7a0]
mov dword [ebp - method.el::base::Writer.virtual_0], vtable.el::base::Writer.0
call fcn.004067a0
lea ecx, [ebp - 0x774]
call fcn.00409800
mov byte [ebp - 4], 6
push 0x2bf20
push dword [ebp - 0x6dc]
mov dword [ebp - 0x6e0], ebx
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea ecx, [ebp - 0x72c]
call fcn.00412978
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x72c]
call fcn.004127f5
push eax
mov ecx, esi
call fcn.00409b66
push ebx
push edi
lea ecx, [ebp - 0x53c]
call fcn.0040bfcb
push 9
pop ebx
lea ecx, [ebp - 0x72c]
call fcn.00419402
xor eax, eax
lea ecx, [ebp - 0x59c]
push eax
push edi
call fcn.0040bfcb
xor eax, eax
lea ecx, [ebp - 0x56c]
push eax
push edi
call fcn.0040bfcb
xor eax, eax
lea ecx, [ebp - 0x584]
push eax
push edi
call fcn.0040bfcb
mov eax, ebx
call fcn.004e4169
ret 0xc
push 0x2bf20
push dword [ebp - 0x6dc]
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
lea ecx, [ebp - 0x72c]
call fcn.00412978
lea ecx, [ebp - 0x72c]
call fcn.004121f3
mov ecx, dword [ebp - 0x600]
cmp dword [ebp - 0x6c8], ecx
jl 0x42ba1a
mov eax, dword [ebp - 0x604]
jg 0x42b7ad
cmp dword [ebp - 0x6cc], eax
jb 0x42ba1a
cmp byte [ebp - 0x6d8], 0
jne 0x42b7f3
push ecx
push ecx
push eax
push ecx
push eax
call fcn.0041af78
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x72c]
call fcn.004127f5
push eax
mov ecx, esi
call fcn.00409b66
xor eax, eax
xor edi, edi
push eax
inc edi
push edi
lea ecx, [ebp - 0x53c]
call fcn.0040bfcb
mov ebx, edi
jmp 0x42b71e
lea ecx, [ebp - 0x6d4]
call fcn.00411ef8
mov ecx, eax
call fcn.004e4750
mulsd xmm0, qword [0x562a88]
xor ebx, ebx
push 0x104
push ebx
mulsd xmm0, qword [0x562ab8]
cvttsd2si eax, xmm0
movd xmm0, eax
lea eax, [ebp - 0x114]
cvtdq2pd xmm0, xmm0
push eax
divsd xmm0, qword [0x562ab8]
movsd qword [ebp - 0x760], xmm0
call fcn.004fce20
movsd xmm0, qword [ebp - 0x760]
lea eax, [ebp - 0x114]
movsd qword [esp + 4], xmm0
mov dword [esp], str._.1fMB_s
push eax
call fcn.0040eed3
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 - 0x7a0]
call fcn.004064ae
xor edi, edi
mov byte [ebp - 4], 0xd
push str.default
inc edi
push edi
push eax
call fcn.00406541
mov esi, eax
add esp, 0xc
cmp byte [esi + 0x1c], bl
je 0x42b8c5
push str._Average_speed:
lea ecx, [esi + 0x20]
call fcn.004063d6
cmp byte [esi + 0x1c], bl
je 0x42b8c5
lea eax, [ebp - 0x114]
push eax
lea ecx, [esi + 0x20]
call fcn.004063d6
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x7a0]
mov dword [ebp - method.el::base::Writer.virtual_0], vtable.el::base::Writer.0
call fcn.004067a0
lea ecx, [ebp - 0x774]
call fcn.00409800
mov esi, 0x104
lea eax, [ebp - 0x420]
push esi
push ebx
push eax
call fcn.004fce20
push esi
lea eax, [ebp - 0x524]
push ebx
push eax
call fcn.004fce20
movsd xmm0, qword [ebp - 0x768]
lea eax, [ebp - 0x420]
add esp, 0x10
mov esi, str._.1f_MB_s
movsd qword [esp], xmm0
push esi
push eax
call fcn.0040eed3
movsd xmm2, qword [ebp - 0x758]
lea eax, [ebp - 0x524]
pop ecx
pop ecx
movsd qword [esp], xmm2
push esi
push eax
call fcn.0040eed3
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 - 0x7a0]
call fcn.004064ae
push str.default
push edi
push eax
mov byte [ebp - 4], 0xf
call fcn.00406541
mov esi, eax
add esp, 0xc
cmp byte [esi + 0x1c], 0
je 0x42b9ce
push str._Download_speed_range
lea ecx, [esi + 0x20]
call fcn.004063d6
cmp byte [esi + 0x1c], 0
je 0x42b9ce
lea eax, [ebp - 0x420]
push eax
lea ecx, [esi + 0x20]
call fcn.004063d6
cmp byte [esi + 0x1c], 0
je 0x42b9ce
push 0x55ef5c
lea ecx, [esi + 0x20]
call fcn.004063d6
cmp byte [esi + 0x1c], 0
je 0x42b9ce
lea eax, [ebp - 0x524]
push eax
lea ecx, [esi + 0x20]
call fcn.004063d6
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x7a0]
mov dword [ebp - method.el::base::Writer.virtual_0], vtable.el::base::Writer.0
call fcn.004067a0
lea ecx, [ebp - 0x774]
call fcn.00409800
lea eax, [ebp - 0x53c]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x72c]
call fcn.004127f5
mov ecx, dword [ebp - 0x748]
push eax
call fcn.00409b66
push ebx
jmp 0x42b7e0
lea eax, [ebp - 0x53c]
push eax
lea ecx, [ebp - 0x72c]
call fcn.004127f5
push eax
mov ecx, esi
call fcn.00409b66
xor eax, eax
lea ecx, [ebp - 0x53c]
xor edi, edi
push eax
inc edi
push edi
call fcn.0040bfcb
push 0xc
jmp 0x42b71d