Function at 0x41fe20
Capabilities:
Check if file exists
Download url
Get file attributes
Receive data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f1380
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x6b7e40]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x24], eax
mov eax, dword [ebx]
sub eax, 0x10
push eax
call fcn.004046f0
mov esi, dword [ebx + 8]
add eax, 0x10
add esp, 4
mov dword [ebp - 0x20], eax
lea edi, [eax - 0x10]
mov dword [ebp - 4], 0
push edi
mov dword [ebp - 0x38], vtable.CURLDownloadCallback.0
call fcn.004046f0
add eax, 0x10
mov dword [ebp - 0x2c], esi
or esi, 0xffffffff
mov dword [ebp - 0x34], eax
add esp, 4
mov dword [ebp - 0x30], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [edi + 0xc]
mov eax, esi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x41feb7
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 1
push dword [ebx + 4]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x420033
test al, 0x10
jne 0x420033
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x41fef4
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 3
push dword [ebx + 4]
lea eax, [ebp - 0x1c]
push 0x641ad8
push eax
call fcn.00404520
add esp, 0xc
lea ecx, [ebp - 0x20]
push 0x63bfdc
call fcn.004021e0
xor ecx, ecx
call fcn.004051a0
mov edi, eax
push ecx
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
mov esi, esp
push ecx
call fcn.004046f0
add esp, 4
add eax, 0x10
push 0
push 0
mov dword [esi], eax
lea eax, [ebp - 0x1c]
push eax
push 0x1f91
push str.C:_amintegration_tools_setupishield_sldim_baseUtilities.cpp
push 1
push 1
mov ecx, edi
call fcn.004055a0
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
or esi, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x41ff8a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0
mov byte [ebp - 4], 5
push dword [ebx + 4]
call fcn.004afdd8
mov dword [ebp - 4], 3
jmp 0x420013
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
mov ecx, esi
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x420033
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [ebp - 0x38]
push eax
push 0
push dword [ebx + 4]
push dword [ebx]
push 0
call dword [sym.imp.urlmon.dll_URLDownloadToFileW]
mov edi, eax
test edi, edi
jns 0x420173
call fcn.004a4516
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x42006c
push 0x80004005
call fcn.00402040
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
push edi
mov byte [ebp - 4], 8
push dword [ebx + 4]
lea eax, [ebp + 8]
push dword [ebx]
push str.Failed_to_download_url:__s_to__s_using_URLDownloadFile__code__d_
push eax
call fcn.00404520
add esp, 0x14
lea ecx, [ebp - 0x20]
push 0x63bfdc
call fcn.004021e0
xor ecx, ecx
call fcn.004051a0
mov edi, eax
push ecx
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
mov esi, esp
push ecx
call fcn.004046f0
add esp, 4
add eax, 0x10
push 0
push 0
mov dword [esi], eax
lea eax, [ebp + 8]
push eax
push 0x1fa4
push str.C:_amintegration_tools_setupishield_sldim_baseUtilities.cpp
push 1
push 1
mov ecx, edi
call fcn.004055a0
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x20]
add edx, 0xfffffff0
or ecx, 0xffffffff
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x420103
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x2c], 0
mov esi, dword [ebp + 8]
je 0x420151
push ecx
lea eax, [esi - 0x10]
mov dword [ebp - 0x28], esp
mov edi, esp
push eax
call fcn.004046f0
add eax, 0x10
add esp, 4
mov dword [edi], eax
push 4
push 0
push 0
push 0
mov byte [ebp - 4], 0xa
mov eax, dword [ebx]
push 0
push ecx
sub eax, 0x10
mov edi, esp
push eax
call fcn.004046f0
add eax, 0x10
mov dword [edi], eax
add esp, 4
mov byte [ebp - 4], 8
call dword [ebp - 0x2c]
add esp, 0x1c
lea edx, [esi - 0x10]
or esi, 0xffffffff
mov byte [ebp - 4], 1
lea eax, [edx + 0xc]
mov ecx, esi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x42017a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x42017a
mov dword [ebp - 0x18], 1
push ecx
mov ecx, ebx
call fcn.004201c0
mov dword [ebp - 4], 0xffffffff
mov edi, dword [ebp - 0x34]
add edi, 0xfffffff0
mov dword [ebp - 0x38], vtable.CURLDownloadCallback.0
lea eax, [edi + 0xc]
lock xadd dword [eax], esi
dec esi
test esi, esi
jg 0x4201aa
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret