Function at 0x140001290
Capabilities:
Create http request
Create process on windows
Get common file path
Read data from internet
Receive data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x12b0]
mov eax, 0x13b0
call fcn.140003e50
sub rsp, rax
mov rax, qword [0x140008010]
xor rax, rsp
mov qword [rbp + 0x12a0], rax
xor r13d, r13d
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor r8d, r8d
mov r14d, 1
mov edx, r14d
lea rcx, str.HTTP_Request
call qword [sym.imp.WININET.dll_InternetOpenW]
mov r12, rax
test rax, rax
jne 0x140001350
lea rdx, [0x140005568]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140002ae0
mov rcx, rax
lea rdx, [0x140002cb0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov eax, r14d
mov rcx, qword [rbp + 0x12a0]
xor rcx, rsp
call fcn.140002fe0
lea r11, [rsp + 0x13b0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov qword [rsp + 0x28], r13
mov dword [rsp + 0x20], 0x80000000
xor r9d, r9d
xor r8d, r8d
lea rdx, str.https:__deac_ams.dl.sourceforge.net_project_circuit_2.7.x_2.7.1_logisim_win_2.7.1.exe
mov rcx, r12
call qword [sym.imp.WININET.dll_InternetOpenUrlW]
mov r15, rax
test rax, rax
jne 0x140001387
lea rdx, [0x140005650]
jmp 0x140001301
lea rdx, [rbp + 0x90]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x1400013a9
lea rdx, [0x140005680]
jmp 0x140001301
lea r8, str.downloaded_file.exe
mov edx, 0x104
lea rcx, [rbp + 0x90]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
test eax, eax
je 0x1400013d2
lea rdx, [0x1400056e8]
jmp 0x140001301
xorps xmm0, xmm0
movups xmmword [rbp + 0x68], xmm0
mov qword [rbp + 0x78], r13
mov qword [rbp + 0x80], r13
lea rax, [rbp + 0x90]
mov rbx, 0xffffffffffffffff
inc rbx
cmp word [rax + rbx*2], r13w
jne 0x1400013f2
movabs rsi, 0x7ffffffffffffffe
cmp rbx, rsi
ja 0x140001836
movabs rdx, 0x7fffffffffffffff
mov qword [rbp + 0x80], 7
cmp rbx, 8
jae 0x14000144f
mov qword [rbp + 0x78], rbx
add rbx, rbx
mov r8, rbx
lea rdx, [rbp + 0x90]
lea rcx, [rbp + 0x68]
call sub.VCRUNTIME140.dll_memcpy
mov word [rbp + rbx + 0x68], r13w
jmp 0x1400014f0
mov rax, rbx
or rax, 7
cmp rax, rsi
jbe 0x140001461
lea rcx, [rdx + rdx]
jmp 0x140001489
mov rsi, rax
mov ecx, 0xa
cmp rax, rcx
cmovb rsi, rcx
lea rcx, [rsi + 1]
cmp rcx, rdx
ja 0x140001830
add rcx, rcx
cmp rcx, 0x1000
jb 0x1400014b5
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140001830
mov rcx, rax
call fcn.140003000
test rax, rax
je 0x140001819
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x1400014c7
test rcx, rcx
je 0x1400014c4
call fcn.140003000
mov rdi, rax
jmp 0x1400014c7
mov rdi, r13
mov qword [rbp + 0x68], rdi
mov qword [rbp + 0x78], rbx
mov qword [rbp + 0x80], rsi
add rbx, rbx
mov r8, rbx
lea rdx, [rbp + 0x90]
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
mov word [rdi + rbx], r13w
lea rdx, [rbp + 0x68]
cmp qword [rbp + 0x80], 8
cmovae rdx, qword [rbp + 0x68]
mov rax, qword [rbp + 0x78]
lea rsi, [rdx + rax*2]
lea rdi, [rbp + 0x68]
cmovae rdi, qword [rbp + 0x68]
xorps xmm0, xmm0
movups xmmword [rbp + 0x40], xmm0
mov ebx, 0xf
mov qword [rbp + 0x58], rbx
cmp rdi, rsi
jne 0x140001534
mov qword [rbp + 0x50], r13
mov byte [rbp + 0x40], 0
jmp 0x140001633
mov rax, rsi
sub rax, rdi
sar rax, 1
mov rdx, r13
mov qword [rbp + 0x50], rdx
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
ja 0x14000183c
cmp rax, 0x10
jb 0x1400015f0
mov rbx, rax
or rbx, 0xf
cmp rbx, rcx
jbe 0x140001572
mov rbx, rcx
jmp 0x14000157e
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
mov rcx, rbx
add rcx, 1
mov rax, 0xffffffffffffffff
cmovb rcx, rax
cmp rcx, 0x1000
jb 0x1400015cc
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x14000182a
mov rcx, rax
call fcn.140003000
mov rcx, rax
test rax, rax
je 0x1400017bf
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
mov rdx, qword [rbp + 0x50]
jmp 0x1400015df
test rcx, rcx
je 0x1400015dc
call fcn.140003000
mov rdx, qword [rbp + 0x50]
jmp 0x1400015df
mov rax, r13
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x58], rbx
nop word [rax + rax]
lea rcx, [rbp + 0x40]
cmp rbx, 0x10
cmovae rcx, qword [rbp + 0x40]
movzx eax, byte [rdi]
mov byte [rdx + rcx], al
mov rdx, qword [rbp + 0x50]
inc rdx
mov qword [rbp + 0x50], rdx
add rdi, 2
cmp rdi, rsi
je 0x14000161d
mov rbx, qword [rbp + 0x58]
jmp 0x1400015f0
lea rax, [rbp + 0x40]
cmp qword [rbp + 0x58], 0x10
cmovae rax, qword [rbp + 0x40]
mov byte [rdx + rax], 0
mov rbx, qword [rbp + 0x58]
xor edx, edx
mov r8d, 0x108
lea rcx, [rsp + 0x30]
call sub.VCRUNTIME140.dll_memset
lea rdx, [rbp + 0x40]
cmp rbx, 0x10
cmovae rdx, qword [rbp + 0x40]
lea rcx, [rsp + 0x30]
call fcn.140002530
nop
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, [rsp + 0x30]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator__void_const___ptr64]
test al, al
je 0x140001684
lea rdx, [0x140005710]
jmp 0x140001761
xor edx, edx
mov r8d, 0x1000
lea rcx, [rbp + 0x2a0]
call sub.VCRUNTIME140.dll_memset
lea r9, [rbp + 0x60]
mov r8d, 0x1000
lea rdx, [rbp + 0x2a0]
mov rcx, r15
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x1400016f0
mov eax, dword [rbp + 0x60]
test eax, eax
je 0x1400016f0
mov r8d, eax
lea rdx, [rbp + 0x2a0]
lea rcx, [rsp + 0x30]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::write_char_const____ptr64__long_long___int64_____ptr64]
lea r9, [rbp + 0x60]
mov r8d, 0x1000
lea rdx, [rbp + 0x2a0]
mov rcx, r15
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x1400016b6
lea rcx, [rsp + 0x38]
call fcn.1400029f0
test rax, rax
jne 0x14000171d
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, [rsp + 0x30]
add rcx, rax
xor r8d, r8d
lea edx, [r8 + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
mov rcx, r15
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, r12
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [rsp + 0x28], 5
mov qword [rsp + 0x20], r13
xor r9d, r9d
lea r8, [rbp + 0x90]
lea rdx, str.open
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp eax, 0x20
jg 0x14000177f
lea rdx, [0x140005750]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
call fcn.140002ae0
mov rcx, rax
lea rdx, [0x140002cb0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x140001782
mov r14d, r13d
lea rcx, [rsp + 0x30]
call fcn.140001850
nop
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x1400017cb
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400017c6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400017c6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000303c
mov qword [rbp + 0x50], r13
mov qword [rbp + 0x58], 0xf
mov byte [rbp + 0x40], 0
mov rdx, qword [rbp + 0x80]
cmp rdx, 8
jb 0x14000131d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001820
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001820
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000303c
jmp 0x14000131d
call fcn.140001110
nop
call fcn.140001110
int3
call fcn.1400011b0
nop
call fcn.1400011b0
int3