Function at 0x407264
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x450003
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x46d978]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
push esi
push edi
mov eax, dword [0x46d978]
xor eax, esp
push eax
lea eax, [esp + 0x158]
mov dword fs:[0], eax
mov ebx, ecx
xor edx, edx
xor eax, eax
mov dword [ebx + 0x2c], edx
mov dword [esp + 0x88], 7
mov dword [esp + 0x84], edx
mov word [esp + 0x74], ax
mov dword [esp + 0x160], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], edx
cmp dword [ebx + 0x24], edx
jne 0x407354
push 5
pop esi
push 0xa
pop edi
push str.LibDownloadTask.cpp
lea ecx, [esp + 0x48]
call fcn.004012d4
push 0x23
lea eax, [esp + 0x48]
push eax
push 2
lea ecx, [esp + 0x98]
mov byte [esp + 0x16c], 1
call fcn.00419d97
lea ecx, [eax + 0x28]
mov edx, str.LibDownloadTaskWrapper::Run
mov byte [esp + 0x160], 2
call fcn.00405695
mov edx, str.__url__is_empty_
mov ecx, eax
call fcn.00405695
mov byte [esp + 0x160], 1
lea ecx, [esp + 0x8c]
call fcn.00419f5b
lea ecx, [esp + 0x44]
mov byte [esp + 0x160], 0
call fcn.00401303
jmp 0x40774e
mov esi, 0x45f4f0
mov ecx, edx
mov eax, dword [esi + ecx*4]
cmp eax, eax
jne 0x40738a
inc ecx
cmp ecx, 4
jne 0x40735b
push 0xf8
call fcn.0042dbe8
pop ecx
test eax, eax
je 0x407383
push ecx
mov ecx, eax
call fcn.004288d5
xor edx, edx
jmp 0x407387
xor edx, edx
mov eax, edx
mov dword [ebx + 0x10], eax
cmp dword [ebx + 0x10], edx
jne 0x4073ee
push 5
pop esi
push 9
pop edi
push str.LibDownloadTask.cpp
lea ecx, [esp + 0x48]
call fcn.004012d4
push 0x2b
lea eax, [esp + 0x48]
push eax
push 2
lea ecx, [esp + 0x98]
mov byte [esp + 0x16c], 3
call fcn.00419d97
lea ecx, [eax + 0x28]
mov edx, str.LibDownloadTaskWrapper::Run
mov byte [esp + 0x160], 4
call fcn.00405695
mov edx, str.__download_obj___NULL_
mov ecx, eax
call fcn.00405695
mov byte [esp + 0x160], 3
jmp 0x407332
push 7
pop ecx
xor eax, eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x3c], edx
mov word [esp + 0x2c], ax
mov dword [esp + 0x70], ecx
mov dword [esp + 0x6c], edx
mov word [esp + 0x5c], ax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x30]
push eax
mov byte [esp + 0x168], 6
call fcn.0040780d
mov ecx, dword [ebx + 0x10]
lea edx, [ebx + 8]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
cmp dword [esp + 0x40], 8
lea esi, [esp + 0x2c]
cmovae esi, dword [esp + 0x2c]
lea edx, [ebx + 0x14]
cmp dword [edx + 0x14], 8
jb 0x407449
mov edx, dword [edx]
mov ecx, dword [ebx + 0x10]
push esi
mov eax, dword [ecx]
push edx
call dword [eax + 0xc]
mov ecx, dword [ebx + 0x10]
push 0
mov eax, dword [ecx]
call dword [eax + 0x14]
test eax, eax
jne 0x4075a1
push str.LibDownloadTask.cpp
lea ecx, [esp + 0x48]
call fcn.004012d4
push 0x36
lea eax, [esp + 0x48]
push eax
push 2
lea ecx, [esp + 0x98]
mov byte [esp + 0x16c], 7
call fcn.00419d97
lea ecx, [eax + 0x28]
mov edx, str.LibDownloadTaskWrapper::Run
mov byte [esp + 0x160], 8
call fcn.00405695
mov edx, str.__Start_failed_
mov ecx, eax
call fcn.00405695
lea ecx, [esp + 0x8c]
mov byte [esp + 0x160], 7
call fcn.00419f5b
lea ecx, [esp + 0x44]
call fcn.00401303
push 0
push 1
lea ecx, [esp + 0x64]
call fcn.00404e3f
push 0
push 1
lea ecx, [esp + 0x34]
mov byte [esp + 0x168], 0
call fcn.00404e3f
mov esi, dword [esp + 0x18]
mov edi, esi
jmp 0x40774e
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x2c]
mov ecx, dword [ebx + 0x10]
mov esi, eax
mov eax, dword [ecx]
call dword [eax + 0x28]
mov ecx, eax
test esi, esi
je 0x4075ad
test ecx, ecx
je 0x4075ad
mov eax, dword [ecx + 0xc]
mov edi, dword [ecx + 8]
mov dword [esp + 0x28], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x24], eax
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 8]
mov esi, eax
mov eax, dword [ebx + 0xc]
push 0x18
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
call fcn.0042dbe8
mov edx, eax
pop ecx
test edx, edx
je 0x40757c
mov eax, dword [esp + 0x1c]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x24]
mov dword [edx], vtable.CallBack_3_void__class_ITaskDelegate__unsigned_long_int__unsigned_long_int__unsigned_long_int_.0
mov dword [edx + 8], edi
mov dword [edx + 0xc], eax
mov dword [edx + 0x10], esi
mov dword [edx + 0x14], 0x40a33f
jmp 0x40757e
xor edx, edx
mov eax, dword [0x4717fc]
test eax, eax
je 0x40758c
lea ecx, [eax - 4]
jmp 0x40758e
xor ecx, ecx
mov ecx, dword [ecx + 4]
push 0
mov eax, dword [ecx]
push edx
call dword [eax + 4]
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [ebx + 0x2c], 0
je 0x4074fb
jmp 0x40761e
push str.LibDownloadTask.cpp
lea ecx, [esp + 0x48]
call fcn.004012d4
push 0x3f
lea eax, [esp + 0x48]
push eax
push 2
lea ecx, [esp + 0x98]
mov byte [esp + 0x16c], 9
call fcn.00419d97
lea ecx, [eax + 0x28]
mov edx, str.LibDownloadTaskWrapper::Run
mov byte [esp + 0x160], 0xa
call fcn.00405695
mov edx, str.__Download_state_not_exist_
mov ecx, eax
call fcn.00405695
lea ecx, [esp + 0x8c]
mov byte [esp + 0x160], 9
call fcn.00419f5b
lea ecx, [esp + 0x44]
mov byte [esp + 0x160], 6
call fcn.00401303
cmp dword [ebx + 0x30], 9
jne 0x40767c
cmp dword [esp + 0x70], 8
lea edi, [esp + 0x5c]
cmovae edi, dword [esp + 0x5c]
cmp dword [esp + 0x40], 8
lea esi, [esp + 0x2c]
cmovae esi, dword [esp + 0x2c]
call fcn.00405b6a
push ecx
push edi
push esi
call fcn.0041cde3
push 0xffffffffffffffff
push 0
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x80]
call fcn.00404dac
cmp dword [esp + 0x40], 8
lea eax, [esp + 0x2c]
cmovae eax, dword [esp + 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x407724
cmp dword [ebx + 0x30], 0xb
jne 0x40771c
push str.LibDownloadTask.cpp
lea ecx, [esp + 0x48]
call fcn.004012d4
push 0x59
lea eax, [esp + 0x48]
push eax
push 2
lea ecx, [esp + 0x98]
mov byte [esp + 0x16c], 0xb
call fcn.00419d97
mov esi, eax
mov byte [esp + 0x160], 0xc
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x20]
push eax
push ecx
lea ecx, [esi + 0x28]
mov edx, str.LibDownloadTaskWrapper::Run
call fcn.00405695
mov edx, str.__Libdownload_failed._Error_code:
mov ecx, eax
call fcn.00405695
pop ecx
mov ecx, eax
call fcn.00407a2e
lea ecx, [esp + 0x8c]
mov byte [esp + 0x160], 0xb
call fcn.00419f5b
lea ecx, [esp + 0x44]
mov byte [esp + 0x160], 6
call fcn.00401303
mov ecx, dword [ebx + 0x10]
push 5
mov eax, dword [ecx]
pop esi
call dword [eax + 0x20]
mov dword [esp + 0x14], eax
jmp 0x407728
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov esi, dword [esp + 0x18]
push 0
push 1
lea ecx, [esp + 0x64]
call fcn.00404e3f
push 0
push 1
lea ecx, [esp + 0x34]
mov byte [esp + 0x168], 0
call fcn.00404e3f
mov edi, dword [esp + 0x14]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x407797
mov eax, dword [ecx]
call dword [eax + 0x10]
sub esp, 0x18
lea eax, [esp + 0x8c]
mov ecx, esp
push eax
call fcn.004067c0
mov ecx, dword [ebx + 0xc]
push edi
push esi
call fcn.00409ae7
mov ecx, dword [0x4717fc]
add esp, 0x20
mov edx, eax
test ecx, ecx
je 0x40778a
add ecx, 0xfffffffc
jmp 0x40778c
xor ecx, ecx
mov ecx, dword [ecx + 4]
push 0
mov eax, dword [ecx]
push edx
call dword [eax + 4]
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x4077b0
mov eax, dword [ecx]
push 0
call dword [eax + 4]
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
call dword [eax]
and dword [ebx + 0x10], 0
push 0
push 1
lea ecx, [esp + 0x7c]
call fcn.00404e3f
mov ecx, dword [esp + 0x158]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x140]
xor ecx, esp
call fcn.0042d3d2
mov esp, ebp
pop ebp
ret