Function at 0x422f70
Capabilities:
Check if file exists
Delete file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
push ebx
push esi
push edi
push str.DownloadControl____Start
call fcn.0040ff00
push eax
call fcn.00410290
mov esi, dword [ebp + 8]
add esp, 8
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
je 0x4231b1
mov eax, dword [esi + 4]
cmp dword [eax - 0xc], 0
je 0x4231b1
cmp dword [esi + 0x18], 0
je 0x4231b1
push dword [ebp + 0xc]
push esi
call fcn.00422d80
mov edi, eax
test edi, edi
je 0x422fe2
push str.DownloadControl_GetDownloadFileLength_Failure
call fcn.0040ff00
push eax
call fcn.00410290
mov eax, edi
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push dword [esi + 4]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x422ff9
push dword [esi + 4]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [esi + 0x10]
lea ebx, [esi + 0x10]
mov dword [esp + 0x20], ebx
test eax, eax
je 0x423014
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebx], 0
mov ecx, dword [esi + 4]
call fcn.0044c710
test eax, eax
je 0x423190
sub esp, 0x18
mov ecx, ebx
push dword [esi + 4]
call fcn.00422b50
test eax, eax
js 0x423190
mov dword [esp + 0x1c], 0x103
mov ebx, 1
mov dword [esp + 0x10], 0
nop
lea eax, [esp + 0x10]
push eax
push ecx
push esi
call fcn.004231e0
mov edi, dword [esp + 0x10]
push edi
push dword [esi + 0xc]
mov dword [esp + 0x20], eax
push ebx
push eax
push str.DownloadControl____ExE_CurlCode___d__Count___d__CurrentSize___d__ResCode___d
call fcn.0040ff00
push eax
call fcn.00410290
mov eax, dword [esp + 0x30]
add esp, 0x18
test eax, eax
jne 0x423161
cmp edi, 0xce
je 0x42309d
cmp edi, 0xc8
jne 0x423166
mov dword [esp + 0x1c], 0
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x14]
push 1
push eax
push 0
push dword [esi]
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [esp + 0x10], eax
cmp eax, 0xffffffff
jne 0x4230dd
call fcn.00422b30
test eax, eax
js 0x423183
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push 0
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x28]
push ecx
push eax
push dword [esi]
mov dword [esp + 0x30], eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, 0xffffffff
jne 0x423107
call fcn.00422b30
test eax, eax
js 0x423118
push dword [esi]
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x423118
call fcn.00422b30
mov eax, dword [esi]
test eax, eax
je 0x42312b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [esi], 0
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x42313d
mov eax, dword [esp + 0x18]
test eax, eax
cmovne edi, eax
mov dword [ecx], edi
mov esi, dword [esp + 0x1c]
push ebx
push esi
push str.DownloadControl____End_HRESULT___d__Count___d
call fcn.0040ff00
push eax
call fcn.00410290
add esp, 0x10
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp eax, 0x1c
je 0x423171
push 0x1f4
call dword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
cmp ebx, 0x25d
jle 0x423050
jmp 0x4230a5
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
jmp 0x4230e1
push str.DownloadControl_CreateFile_Failure
call fcn.0040ff00
push eax
call fcn.00410290
mov eax, 0x102
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push str.DownloadControl_curlExecuter_Invalid
call fcn.0040ff00
push eax
call fcn.00410290
add esp, 8
mov eax, 0x100
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8