Function at 0x408ff0
Capabilities:
Check if file exists
Delete file
Get file attributes

Disassembly:
push 0xffffffffffffffff
push 0x43e998
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x451d80]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
mov esi, ecx
cmp dword [esi + 0x46c], 1
je 0x409048
cmp dword [esi + 0x4a8], 0
jne 0x409048
cmp dword [0x4561dc], 0
mov dword [esi + 0x46c], 1
je 0x409048
push 1
push 1
push esi
call fcn.00405ee0
xor edi, edi
lea ebx, [ebx]
test edi, edi
jbe 0x40908d
mov eax, 0x51eb851f
mul dword [esi + 0x440]
mov ebx, edx
shr ebx, 5
js 0x409080
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [esi + 0x4a0], 0
jne 0x4093f5
sub ebx, 1
jns 0x409066
cmp dword [esi + 0x4a0], 0
jne 0x4093f5
cmp dword [esi + 0x42c], 0
je 0x4091e4
mov ebx, dword [esi + 4]
test ebx, ebx
mov dword [esi + 0x59c], 0
mov eax, dword [0x45353c]
mov dword [esp + 0x18], eax
je 0x409101
mov ecx, ebx
shr ecx, 0x10
jne 0x4090ca
movzx eax, bx
push eax
lea ecx, [esp + 0x1c]
call fcn.00406c40
jmp 0x409101
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebp, eax
test ebp, ebp
je 0x409101
mov ecx, ebp
lea edx, [esp + 0x18]
call fcn.00406e10
test eax, eax
je 0x409101
mov edx, dword [esp + 0x18]
add ebp, ebp
push ebp
push ebx
add ebp, 2
push ebp
push edx
call fcn.004267df
push eax
call fcn.00406a60
add esp, 0x14
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x20]
push ecx
mov dword [esp + 0x30], 0
call fcn.00407030
mov eax, dword [eax]
mov ebp, dword [esp + 0x30]
push ebp
mov ecx, eax
call fcn.0040b8d0
mov eax, dword [esp + 0x1c]
lea edx, [eax - 0xc]
cmp edx, 0x45352c
je 0x409153
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x409153
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff4
push eax
call fcn.00419273
add esp, 4
mov dword [esp + 0x28], 0xffffffff
mov eax, dword [esp + 0x18]
lea ecx, [eax - 0xc]
cmp ecx, 0x45352c
je 0x409181
lea ebx, [eax - 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x409181
push ebx
call fcn.00419273
add esp, 4
lea ebx, [esi + 0x224]
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4091cb
mov edx, dword [esi + 0x43c]
push edx
push edi
push str.download_md5_file_begin_..._dwCurRetryTimes_d__m_dwRetryTimes_d
push 0
mov eax, 1
call fcn.0040a010
add esp, 0x10
lea eax, [esi + 0x598]
push eax
push ebx
lea edx, [esi + 0x5a0]
lea ecx, [esi + 0x5a4]
push ebp
call fcn.0040c0c0
jmp 0x409222
lea ecx, [esi + 0x5a0]
push ecx
lea edx, [esi + 0x5a4]
push edx
lea eax, [esi + 0x598]
push eax
mov edx, ebp
jmp 0x409219
mov ecx, dword [esi + 0x43c]
push ecx
push edi
push str.get_download_file_info_begin_..._dwCurRetryTimes_d__m_dwRetryTimes_d
push 0
mov eax, 1
call fcn.0040a010
add esp, 0x10
lea edx, [esi + 0x5a0]
push edx
mov edx, dword [esp + 0x34]
lea eax, [esi + 0x5a4]
push eax
lea ecx, [esi + 0x598]
push ecx
mov ecx, dword [esp + 0x40]
call fcn.0040bbc0
mov ecx, eax
test ecx, ecx
mov dword [esi + 0x59c], eax
jne 0x409283
cmp dword [esi + 0x42c], eax
je 0x4092c2
lea ebx, [esi + 0x224]
push ebx
call fcn.0040f7c0
add esp, 4
test eax, eax
jne 0x4092c2
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [esi + 0x43c]
add edi, 1
cmp edi, eax
jae 0x4092b3
mov edx, dword [esi + 0x440]
push edx
push eax
push edi
push str.pDownloader__GetFileInfo_failed___MD5WRONG__CurRetryTimes_d__RetryTimes_d__RetryDelayTime_dms
push 0
mov eax, 4
call fcn.0040a010
add esp, 0x14
jmp 0x409050
mov eax, dword [esi + 0x43c]
add edi, 1
cmp edi, eax
jae 0x4092eb
mov edx, dword [esi + 0x440]
push edx
push eax
push edi
push ecx
push str.pDownloader__GetFileInfo_failed___ret_d__CurRetryTimes_d__RetryTimes_d__RetryDelayTime_dms
push 0
mov eax, 4
call fcn.0040a010
add esp, 0x18
jmp 0x409050
mov edi, 0xd
call fcn.00408680
jmp 0x4093f5
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 4]
mov edx, dword [eax]
push ecx
push edx
push str.GetFileInfo_success__FileSize_lld
push 0
mov eax, 1
call fcn.0040a010
add esp, 0x10
mov eax, 1
jmp 0x4093f7
mov eax, ecx
add eax, 0xffffffff
cmp eax, 0xe
ja case.0x4092f9.7
jmp dword [eax*4 + 0x409410]
mov edi, 0xe
call fcn.00408680
jmp 0x4093f5
mov edi, 1
call fcn.00408680
jmp 0x4093f5
mov edi, 3
call fcn.00408680
jmp 0x4093f5
mov edi, 4
call fcn.00408680
jmp 0x4093f5
mov edi, dword [esi + 0x42c]
neg edi
sbb edi, edi
and edi, 7
add edi, 5
call fcn.00408680
jmp 0x4093f5
mov edi, 7
call fcn.00408680
jmp 0x4093f5
mov edi, 0x14
call fcn.00408680
jmp 0x4093f5
mov edi, 2
call fcn.00408680
jmp 0x4093f5
mov edi, 0xa
call fcn.00408680
jmp 0x4093f5
cmp dword [0x4561dc], 0
mov dword [esi + 0x46c], 7
mov dword [esi + 0x468], 8
je 0x4093cb
push 7
push 1
push esi
call fcn.00405ee0
cmp dword [0x4561dc], 0
je 0x4093cb
mov eax, dword [esi + 0x468]
push eax
push 0
push esi
call fcn.00405ee0
mov ecx, dword [esi + 0x220]
mov edx, dword [esi]
mov eax, dword [edx + 0xa4]
push ecx
push 8
mov ecx, esi
call eax
push eax
push 8
push str.task_error___SetErrorStatus__d_:__s___task:_s
mov ebx, 4
call fcn.004156d0
add esp, 0x10
xor eax, eax
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 8