Function at 0x10013610
Capabilities:
Check if file exists
Create process on windows
Create process suspended
Delete file
Download url
Receive data

Disassembly:
mov eax, 0x12bc
call fcn.10019d90
mov eax, dword [0x10022018]
xor eax, esp
mov dword [esp + 0x12b4], eax
push ebx
push ebp
push esi
push edi
xor ebx, ebx
push 0x3ff
lea eax, [esp + 0xc5]
push ebx
push eax
mov byte [esp + 0xcc], bl
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x7ff
lea ecx, [esp + 0x4c5]
push ebx
push ecx
mov byte [esp + 0x4cc], bl
call sub.MSVCR90.dll_memset
add esp, 0xc
xor eax, eax
lea ebx, [ebx]
mov cl, byte [eax + 0x10022b00]
mov byte [esp + eax + 0xc0], cl
inc eax
cmp cl, bl
jne 0x10013670
lea edx, [esp + 0xc0]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
lea edi, [esp + 0xc0]
dec edi
mov al, byte [edi + 1]
inc edi
cmp al, bl
jne 0x10013698
mov ax, word [0x1001e6d4]
mov word [edi], ax
lea eax, [esp + 0xc0]
dec eax
mov cl, byte [eax + 1]
inc eax
cmp cl, bl
jne 0x100136b1
mov ecx, dword [str.vcrd_x86_10.exe]
mov edx, dword [0x1001e6dc]
mov dword [eax], ecx
mov ecx, dword [0x1001e6e0]
mov dword [eax + 4], edx
mov edx, dword [0x1001e6e4]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
call fcn.100134f0
mov ecx, 0xf
test eax, eax
je 0x1001374a
mov esi, str.VCRD_10_is_already_installed_so_exiting_directly_from_function
lea edi, [esp + 0x4c0]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea ecx, [esp + 0x4c0]
movsb byte es:[edi], byte [esi]
call fcn.10002780
push 0x10022b00
push str.TRUE
push str.ISINSTALLED
push str.VCRD10
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x10013ae2
lea ecx, [esp + 0xc0]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x10013ae2
mov esi, str.VCRD_10_is_not_installed_so_downloading_package_for_vcrd_10
lea edi, [esp + 0x4c0]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x4c0]
call fcn.10002780
push 0x10022b00
push str.FALSE
push str.ISINSTALLED
push str.VCRD10
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push ebx
push ebx
lea edx, [esp + 0xc8]
push edx
push str.https:__download.microsoft.com_download_1_6_5_165255E7_1014_4D0A_B094_B6A430A6BFFC_vcredist_x86.exe
push ebx
call sub.urlmon.dll_URLDownloadToFileA
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jl 0x100137d0
mov esi, dword [sym.imp.MSVCR90.dll_sprintf]
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x4c4]
push str.Package_downloaded_successfully_:__s
push ecx
call esi
add esp, 0xc
lea ecx, [esp + 0x4c0]
call fcn.10002780
mov edi, 1
jmp 0x10013801
call ebp
mov esi, dword [sym.imp.MSVCR90.dll_sprintf]
push eax
lea edx, [esp + 0xc4]
push edx
lea eax, [esp + 0x4c8]
push str.Failed_to_download_package_:__s__GLE_:__d
push eax
call esi
add esp, 0x10
lea ecx, [esp + 0x4c0]
call fcn.10002780
xor edi, edi
lea ecx, [esp + 0xc0]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x100138fa
push 0x1ff
lea edx, [esp + 0xcc5]
push ebx
push edx
mov byte [esp + 0xccc], bl
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x40
lea eax, [esp + 0x28]
push ebx
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
lea edx, [esp + 0xc0]
push edx
lea eax, [esp + 0xcc4]
xor ecx, ecx
push str.curl.exe__o__s_https:__download.microsoft.com_download_1_6_5_165255E7_1014_4D0A_B094_B6A430A6BFFC_vcredist_x86.exe
push eax
mov dword [esp + 0x2c], 0x44
mov dword [esp + 0x58], 1
mov word [esp + 0x5c], cx
call esi
add esp, 0xc
lea ecx, [esp + 0xb0]
push ecx
lea edx, [esp + 0x24]
push edx
push ebx
push ebx
push 0x8000020
push ebx
push ebx
push ebx
lea eax, [esp + 0xce0]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x100138e0
mov ecx, dword [esp + 0xb0]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [esp + 0xb0]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0xc
mov esi, str.Package_downloaded_using_curl_:_VC_redist.x86.exe
lea edi, [esp + 0x4c0]
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x4c0]
movsw word es:[edi], word [esi]
call fcn.10002780
jmp 0x10013902
call ebp
push eax
lea eax, [esp + 0x4c4]
push str.Failed_to_download_package_using_curl_:_VC_redist.x86.exe_Error_code_:__d
push eax
call esi
add esp, 0xc
jmp 0x10013ab0
cmp edi, ebx
je 0x10013abc
mov ecx, dword [str.__q__norestart]
mov edx, dword [0x1001e920]
mov eax, dword [0x1001e924]
push 0x3ff
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb4], ecx
mov cx, word [0x1001e928]
mov dword [esp + 0xb8], edx
mov dl, byte [0x1001e92a]
lea eax, [esp + 0xec5]
push ebx
push eax
mov word [esp + 0xc8], cx
mov byte [esp + 0xca], dl
mov byte [esp + 0xecc], bl
call sub.MSVCR90.dll_memset
add esp, 0xc
xor eax, eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
jmp 0x10013980
mov cl, byte [esp + eax + 0xc0]
mov byte [esp + eax + 0xec0], cl
inc eax
cmp cl, bl
jne 0x10013980
lea eax, [esp + 0xb0]
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x100139a0
lea edi, [esp + 0xec0]
sub eax, edx
dec edi
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x100139b1
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push 0x44
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x6c]
push ebx
push ecx
call sub.MSVCR90.dll_memset
mov ecx, 6
mov esi, str.Shell_to_vcrd_10_package
lea edi, [esp + 0x4cc]
rep movsd dword es:[edi], dword [esi]
add esp, 0xc
lea ecx, [esp + 0x4c0]
mov dword [esp + 0x68], 0x44
movsb byte es:[edi], byte [esi]
call fcn.10002780
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x6c]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
lea ecx, [esp + 0xee0]
push ecx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x10013ad8
push 0x2328
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.100134f0
test eax, eax
je 0x10013a9a
mov ecx, 9
mov esi, str.Vcrd_10_package_installed_successfully
lea edi, [esp + 0x4c0]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea ecx, [esp + 0x4c0]
movsb byte es:[edi], byte [esi]
call fcn.10002780
push 0x10022b00
push str.TRUE
push str.ISINSTALLED
push str.VCRD10
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea edx, [esp + 0xc0]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
je 0x10013ae2
lea eax, [esp + 0xc0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x10013ae2
mov ecx, 7
mov esi, str.Vcrd_10_package_install_failed
lea edi, [esp + 0x4c0]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x4c0]
call fcn.10002780
push 0x10022b00
push str.FALSE
push str.ISINSTALLED
push str.VCRD10
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
jmp 0x10013ae2
mov ecx, str.VCRD_10_package_CreateProcess_failed
call fcn.10002780
mov ecx, dword [esp + 0x12c4]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.100190a2
add esp, 0x12bc
ret