Function at 0x40a2ca
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
push edi
mov edi, eax
call fcn.0040cbd2
test eax, eax
je 0x40a2f5
mov eax, dword [edi + 0xa0]
push 0
push 7
push eax
push 0xffffffffffffffff
mov esi, edi
call fcn.0040d07a
push 6
pop esi
call fcn.0040a26a
and dword [esp + 0x10], 0
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push dword [esp + 0x10]
call ebx
mov ecx, dword [0x4d4770]
push eax
push str._INFO___d___start_download__retry__d_
call fcn.00414401
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x28], esp
push str.retrytips
call fcn.004029c1
mov ecx, dword [esp + 0x2c]
call fcn.00416bf1
call fcn.0040b6a3
mov esi, eax
push esi
push dword [esp + 0x14]
mov dword [esp + 0x14], esi
call ebx
mov ecx, dword [0x4d4770]
push eax
push str._INFO___d___start_download__retry__d__result__d_
call fcn.00414401
add esp, 0x10
test esi, esi
je 0x40a38c
cmp esi, 1
je 0x40a4c7
lea eax, [esp + 0xc]
push eax
mov ecx, edi
call fcn.0040c03d
cmp eax, 0xd
je 0x40a4f4
cmp eax, 0xa
je 0x40a4f4
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc], eax
test eax, eax
jne 0x40a432
call ebx
mov ecx, dword [0x4d4770]
push eax
push str._INFO___d___wait_for_download_finished.
call fcn.00414401
pop ecx
pop ecx
mov eax, edi
call fcn.0040cc28
mov dword [esp + 0xc], eax
test eax, eax
jne 0x40a41d
mov ecx, dword [edi + 0x50]
xor edx, edx
test ecx, ecx
jle 0x40a3e0
mov eax, dword [edi + 0x58]
add eax, 0x11c
cmp dword [eax], 0
je 0x40a400
inc edx
add eax, 0x120
cmp edx, ecx
jl 0x40a3d1
call ebx
mov ecx, dword [0x4d4770]
push eax
push str._INFO___d___download_finished.
call fcn.00414401
pop ecx
pop ecx
push 1
mov esi, edi
call fcn.0040cc02
jmp 0x40a41d
call ebx
mov ecx, dword [0x4d4770]
push eax
push str._ERROR___d___download_failed_
call fcn.00414401
pop ecx
pop ecx
mov dword [esp + 0xc], 0xe
lea eax, [esp + 0xc]
push eax
mov ecx, edi
call fcn.0040c03d
cmp eax, 0xd
je 0x40a4f4
cmp dword [esp + 0xc], 0xc
je 0x40a440
cmp dword [esp + 0xc], 0xb
jne 0x40a46f
push dword [edi + 0x44]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileW]
call esi
mov eax, dword [edi + 0x44]
cmp dword [eax - 0xc], 0
je 0x40a46f
lea eax, [esp + 0x14]
push eax
push edi
call fcn.0040bb1d
push dword [eax]
call esi
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.00402a23
mov esi, edi
call fcn.0040ad62
mov esi, dword [esp + 0x10]
cmp esi, 9
je 0x40a4f8
cmp dword [esp + 0xc], 0
je 0x40a4f8
and dword [esp + 0xc], 0
add esi, 3
test esi, esi
jle 0x40a4b6
push 0x64
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x40a4df
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
inc dword [esp + 0xc]
cmp dword [esp + 0xc], esi
jl 0x40a492
inc dword [esp + 0x10]
cmp dword [esp + 0x10], 0xa
jl 0x40a308
jmp 0x40a533
push 1
mov esi, edi
call fcn.0040cc02
mov eax, edi
call fcn.0040cbd2
test eax, eax
je 0x40a533
push 0
jmp 0x40a524
call ebx
mov ecx, dword [0x4d4770]
push eax
push str._WARN___d___download_delay_retry__cancel.
call fcn.00414401
pop ecx
pop ecx
xor eax, eax
jmp 0x40a536
push dword [esp + 0xc]
push esi
call ebx
mov ecx, dword [0x4d4770]
push eax
push str._INFO___d___download_finished__retry__d___result__d_.
call fcn.00414401
add esp, 0x10
mov eax, edi
call fcn.0040cbd2
test eax, eax
je 0x40a533
push dword [esp + 0xc]
mov esi, edi
push 2
push dword [edi + 0xa0]
push 0xffffffffffffffff
call fcn.0040d07a
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret